ACM Home Page
Please provide us with feedback. Feedback
Programming with variable functions
Full text PdfPdf (1.35 MB)
Source International Conference on Functional Programming archive
Proceedings of the third ACM SIGPLAN international conference on Functional programming table of contents
Baltimore, Maryland, United States
Pages: 105 - 116  
Year of Publication: 1998
ISBN:1-58113-024-4
Also published in ...
Author
Martin Odersky  University of South Australia
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 1,   Downloads (12 Months): 21,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/289423.289433
What is a DOI?

ABSTRACT

What is a good method to specify and derive imperative programs? This paper argues that a new form of functional programming fits the bill: where variable functions can be updated at specified points in their domain.Traditional algebraic specification and functional programming are a powerful pair of tools for specifying and implementing domains of discourse and operations on them. Recent work on evolving algebras has introduced the function update in algebraic specifications, and has applied it with good success in the modelling of reactive systems. We show that similar concepts allow one to derive efficient programs in a systematic way from functional specifications. The final outcome of such a derivation can be made as efficient as a traditional imperative program with pointers, but can still be reasoned about at a high level.Variable functions can also play an important role in the structuring of large systems. They can subsume object-oriented programming languages, without incurring the latter's problems with pointer aliasing and modularity.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
AP94
P. Achten and R. Plasmeijer. Towards distributed interactive programs in the functional programming language Clean. In J. Glauert, editor, Proceedings of the 6th International Workshop on the Implementation of Funtional Languages, pages 28.1- 28.16. University of East Anglia, Norwich, UK, 1994.
Bak92
 
BBD+96
 
Bij89
 
BR94
Egon D. BSrger and Dean Rosenzweig. A mathematical definition of full Prolog. Science of Computer Programming, 1994.
 
BS94
 
Bur72
R.M. Burstall. Some techniques for proving correctness of programs which alter data structures. In B. Meltzer and D. Michie, editors, Machine Intelligence 7, pages 23-50. Edinburgh University Press, 1972.
 
Bur82
Warren Burton. An efficient functional implementation of FIFO queues. Information Processing Letters, 14:205-206, 1982.
CF91
CH97
 
Dij76
 
GH93
 
GHJV94
 
Gir87
 
Gur95
 
Har79
 
HJ89
 
HM81
Robert Hood and Robert Melville. Real-time queue operations in pure Lisp. Information Processing Letters, 13:50-53, 1981.
Hoa71
 
Hoa72
C.A.R. Hoare. Proof of correctness of data representations. Acta lnformatica, 1'271- 281. 1972.
 
Hoa73
 
Hö193
 
HPW92
Paul Hudak, Simon Peyton Jones, and Philip Wadler. Report on the programming language Haskell' a non-strict, purely functional language, version 1.2. Technical Report YALEU/DCS/RR-777, Yale University Department of Computer Science, March 1992.
 
Hug85
 
HW73
C.A.R. Hoare and Niklaus Wirth. An axiomatic definition of the programming language Pascal. Acta Informatica, 2'335-355, 1973.
 
KH98
 
LM92
Patrick Lincoln and John Mitchelk Operational aspects of linear lambda calculus. In Seventh Annual IEEE Symposium on Logic in Computer Science, Santa Cruz, California, pages 235-246, Los Alamitos. California, June 1992. IEEE Computer Society Press.
 
Mas88
 
Mog89
 
Mog91
 
Möl93
 
Möl97
 
MOTW95
 
MPW92
 
MT91
Ian Mason and Carolyn Talcott. Equivalence in functional languages with side effects. Journal of Functional Programming, 1(3):287-327, July 1991.
 
Ode92
Oka97
ORH93
Rey79
 
SBL+91
 
SDDS86
 
SF93
Amr Sabry and John Field. Reasoning about explicit and implicit representations of state. In SIPL '93 A CM SIGPLAN Workshop on State in Programming Languages, Copenhagen, Denmark, pages 17-30, June 1993. Yale University Research Report YALEU/DCS/RR-968.
Wad90a
 
Wad90b
Philip Wadler. Linear types can change the world! In M. Broy and C. Jones, editors, IFIP TC 2 Working Conference on Programming Concepts and Methods, Sea of Galilee, Israel, pages 347-359. North Holland, April 1990.
Wad92
WH66