Communications of the ACM
Abstract data types and the development of data structures
Communications of the ACM
Abstract data types and software validation
Communications of the ACM
Communications of the ACM
The next 700 programming languages
Communications of the ACM
POPL '73 Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Proceedings of the International Colloquium on Formalization of Programming Concepts
HOPE: An experimental applicative language
LFP '80 Proceedings of the 1980 ACM conference on LISP and functional programming
The specification and application to programming of abstract data types.
The specification and application to programming of abstract data types.
Report on the programming language Euclid
ACM SIGPLAN Notices
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
SIMULA 67 common base language, (Norwegian Computing Center. Publication)
ACE: an automatic complexity evaluator
ACM Transactions on Programming Languages and Systems (TOPLAS)
Conception, evolution, and application of functional programming languages
ACM Computing Surveys (CSUR)
Static type inference in a dynamically typed language
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ICSE '85 Proceedings of the 8th international conference on Software engineering
Grammars for functional languages
CSC '86 Proceedings of the 1986 ACM fourteenth annual conference on Computer science
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Functional specifications of a text editor
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
Mechanical analysis of program complexity
SLIPE '85 Proceedings of the ACM SIGPLAN 85 symposium on Language issues in programming environments
Operational specification languages
ACM '83 Proceedings of the 1983 annual conference on Computers : Extending the human resource
Hi-index | 0.00 |
This paper begins by presenting arguments for including data abstraction and compile time type checking in functional programming languages, and discussing in general terms the mechanisms required to provide support for these features. It then goes on to present brief introductions to the algebraic style of formally specifying abstract data types and to the FP style of writing functional programs. The middle section describes a version of FP that includes type checking and data abstraction. The key to this is the development of a framework for describing the FP type system in terms of the already existing algebra of FP programs. The paper concludes with an example program illustrating the style of FP programming made possible by our extensions.