[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article
Free access

The Illinois functional programming interpreter

Published: 01 July 1987 Publication History

Abstract

The Illinois Functional Programming (IFP) language is a modified version of Backus' FP(1). IFP has the same side-effect free combinator style of Backus FP, while introducing an ALGOL-like syntax and structure. While IFP superficially appears to be an inefficient language to execute, its simplicity makes it quick to interpret. Functions are always monadic and there are no variable or parameter names. Furthermore, combinator-style languages allow common housekeeping operations to be condensed into efficient machine-language primitives.By reference-counting, the interpreter can often convert call-by-value to destructive call-by-reference while preserving referential transparency. The interpreter has an expression cache which can improve the asymptotic time of some combinatorial functions. IFP function definitions are stored as UNIX files, so much of UNIX's functionality is immediately borrowed into the IFP environment, e.g. ls, more, and grep.Benchmarks indicate that IFP is an order of magnitude faster than Berkeley FP[2], and is competitive with interpreted von-Neumann languages such as BASIC. The interpreter can parallel process on shared-memory multiprocessors, e.g. the Encore Multimax. IFP currently runs on machines as varied as the IBM PC, VAX, and CRAY-XMP.

References

[1]
1. Backus, John. Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs. CACM (August 1978) vol. 21, 8, pp. 613-641.
[2]
2. Baden, Scott. Berkeley FP User's Manual, Rev. 4.1. UNIX Programmers Manual (July 27, 1983).
[3]
3. Robison, Arch D. Illinois Functional Programming: A Tutorial. BYTE (February 1987) vol. 12, 2, pp. 115-125.
[4]
4. Iverson, Kenneth. A Programming Language. (1962).
[5]
5. Loeliger, R. G. Threaded Interpretive Languages. (1981).
[6]
6. Hilden, J. Elimination of Recursive Calls Using a Small Table of "Randomly" Selected Function Values. BIT (1976) vol. 16-1, pp. 60-73.
[7]
7. Keller, Robert M. and M. Ronan Sleep. Applicative Caching. ACM Transactions on Programming Languages and Systems (January 1986) vol. 8, 1, pp. 88-108.
[8]
8. Foderaro, John K., Keith L. Sklower and Kevin Layer. The FRANZ LISP Manual. UNIX Programmer's Manual - Supplementary Documents (June 1983).
[9]
9. Robison, Arch D. A Functional Programming Interpreter. M.S. Thesis, University of Illinois at Urbana-Champaign (January 1987).

Cited By

View all

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 22, Issue 7
July 1987
291 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/960114
Issue’s Table of Contents
  • cover image ACM Conferences
    SIGPLAN '87: Papers of the Symposium on Interpreters and interpretive techniques
    July 1987
    291 pages
    ISBN:0897912357
    DOI:10.1145/29650
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 July 1987
Published in SIGPLAN Volume 22, Issue 7

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)83
  • Downloads (Last 6 weeks)12
Reflects downloads up to 31 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (1994)Linear logic and permutation stacks—the Forth shall be firstACM SIGARCH Computer Architecture News10.1145/181993.18199922:1(34-43)Online publication date: 1-Mar-1994
  • (2009)Copy-on-write in the PHP languageACM SIGPLAN Notices10.1145/1594834.148090844:1(200-212)Online publication date: 21-Jan-2009
  • (2009)Copy-on-write in the PHP languageProceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/1480881.1480908(200-212)Online publication date: 21-Jan-2009
  • (2006)Functional implementations of continuous modeled animationPrinciples of Declarative Programming10.1007/BFb0056621(284-299)Online publication date: 2-Jun-2006
  • (2002)Component Architecture of the Tecolote FrameworkComputing in Object-Oriented Parallel Environments10.1007/3-540-49372-7_19(183-190)Online publication date: 15-Aug-2002
  • (1990)BT-Server FP InterpreterProceedings of the Fifth Distributed Memory Computing Conference, 1990.10.1109/DMCC.1990.556329(1147-1152)Online publication date: 1990
  • (1988)An improved replacement strategy for function cachingProceedings of the 1988 ACM conference on LISP and functional programming10.1145/62678.62719(269-276)Online publication date: 1-Jan-1988
  • (1988)A data flow approach to the evaluation of FP programsProceedings of the 1988 ACM sixteenth annual conference on Computer science10.1145/322609.323131(586-592)Online publication date: 1-Feb-1988

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media