The Scheme Programming Language
暂无分享,去创建一个
Publisher Summary The Scheme Programming Language was developed in 1975. The goal was to build a Lisp-like prototype of Carl Hewitt's Actors system. To their surprise, after removing several layers of syntactic and semantic sugar, what remained was an extension of an applicative order λ-calculus supporting state and first class continuations. Since then, there have been four revisions of the language definition and an effort is underway to create an IEEE standard for Scheme. Scheme today still stands as an extended λ-calculus with declarative and imperative components. It is in use at numerous universities and research centers as the first programming language for students or at the core of research projects or software products. Due to its Lisp origin, the basic syntactic units of Scheme are fully parenthesized expressions. The basic control structure of Scheme is procedure application. Procedures are either represented as λ-expressions or are primitive, operating on numbers, strings, symbols, cons pairs, lists, vectors, and global I/O streams. Scheme is call-by-value, that is, procedures are applied to the values of their arguments, in contrast to ALGOL 60 and lazy languages. A convenient way to delay the evaluation of an expression is to define it as a parameterless procedure. Applying this procedure to no arguments entails the evaluation of the delayed expression. This makes it simple to define streams, as illustrated by the solution to the extended Hamming problem.
[1] T G Muchnick,et al. On some extensions of syntactic error recovery technique based on phrase markers , 1986, SIGP.
[2] E E Kohlbecker,et al. Syntactic extensions in the programming language LISP , 1986 .
[3] D. H. Bartley,et al. Revised4 report on the algorithmic language scheme , 1991, LIPO.