IEEE 1178-1990 (R2008) pdf free.IEE Standard for the Scheme Programming Language.
IEEE 1178 gives an overview of Scheme’s semantics. A detailed informal semantics is the subject of Sections 3through 6. For reference purposes,Appendix A provides a formal semantics of Scheme.
Following Algol, Scheme is a statically scoped programming language.Each use of a variable is associated with alexically apparent binding of that variable; for this reason static scoping is also referred to as lexical scoping.
Scheme has latent as opposed to manifest types. Types are associated with values rather than with variables.(Someauthors refer to languages with latent types as weakly typed or dynamically typed languages.) Other languages withlatent types are APL,Snobol, and other dialects of Lisp. Languages with manifest types (sometimes referred to asstrongly typed or statically typed languages) include Algol 60,Pascal, and C.
The values of Scheme expressions are called objects. This use of the term“object”predates, and should not beconfused with, its use in object-oriented programming languages.All objects created in the course of a Schemecomputation, including procedures and continuations, have unlimited extent. No Scheme object is ever destroyed.Thereason that implementations of Scheme do not (usually!) run out of storage is that they are permited to reclaim thestorage occupied by an object if they can prove that the object cannot possibly matter to any future computation. Otherlanguages in which most objects have unlimited extent include APL and other Lisp dialects.
Implementations of Scheme are required to be properly tail-recursive [4].This allows the execution of an iterativecomputation in constant space, even if the iterative computation is described by a syntactically recursive procedure.Thus with a tail-recursive implementation, iteration can be expressed using the ordinary procedure-call mechanics, sothat special iteration constructs are useful only as abbreviations.
Scheme procedures are objects in their own right. Procedures can be created dynamically, stored in data structures,returned as results of procedures, and so on.Other languages with these properties include Common Lisp and ML.
One distinguishing feature of Scheme is that continuations,which in most other languages only operate behind thescenes, also have “first-class”status. Continuations are useful for implementing a wide variety of advanced controlconstructs, including non-local exits, backtracking, and coroutines (see 6.9).
Arguments to Scheme procedures are always passed by value, which means that the actual argument expressions areevaluated before the procedure gains control, whether the procedure needs the result of the evaluation or not. ML,C,and APL are three other languages that always pass arguments by value. This is distinct from the lazy-evaluationsemantics of Haskell [2], or the call-by-name semantics of Algol 60, where an argument expression is not evaluatedunless its value is needed by the procedure.
Scheme’s model of arithmetic is designed to remain as independent as possible of the particular ways in whichnumbers are represented within a computer. In Scheme, every integer is a rational number, every rational is a real, andevery real is a complex number. Thus the distinction between integer and real arithmetic,so important to manyprogramming languages,does not appear in Scheme. In its place is a distinction between exact arithmetic,whichcorresponds to the mathematical ideal, and inexact arithmetic on approximations. As in Common Lisp, exactarithmetic is not limited to integers.IEEE 1178 pdf download.
IEEE 1178-1990 (R2008) pdf free
Note:
Can you help me share this website on your Facebook or others? Many thanks!