ACM Home Page
Please provide us with feedback. Feedback
The Illinois functional programming interpreter
Full text PdfPdf (585 KB)
Source Conference on Programming Language Design and Implementation archive
Papers of the Symposium on Interpreters and interpretive techniques table of contents
St. Paul, Minnesota, United States
Pages: 64 - 73  
Year of Publication: 1987
ISBN:0-89791-235-7
Also published in ...
Author
A. D. Robison  University of Illinois at Urbana-Champaign, Department of Computer Science, 1304 W . Springfield Ave., Urbana IL
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 29,   Citation Count: 4
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/29650.29657
What is a DOI?

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

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.

1
 
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
 
5
 
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
 
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).


INDEX TERMS

Classification:
  D. Software
  D.3 PROGRAMMING LANGUAGES
      D.3.2 Language Classifications

          Nouns: FP
      D.3.3 Language Constructs and Features
          Subjects: Data types and structures
      D.3.4 Processors
          Subjects: Interpreters


General Terms:
Design, Languages