This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.
Source for wiki ChezReplSemantics version 1
author
arcfide
comment
ipnr
99.31.15.163
name
ChezReplSemantics
readonly
0
text
= REPL Semantics of Chez Scheme =
== Introduction ==
Chez Scheme represents an example of a high-speed incremental compiler with an interactive environemnt that follows a traditional lisp REPL behavior. It is interesting to note that Chez Scheme achieves high performance while still providing a dynamic environment, though the optimizations that Chez Scheme can make are limited by the top level semantics.
== Official Documentation ==
The Chez Scheme User's Guide Version 8 provides a chapter on the [http://www.scheme.com/csug8/use.html#./use:h3 Interaction Environment] of Chez Scheme. The reader is referred to this reading for the full description.
== Important Key REPL Semantics ==
* Expressions are entered at the REPL one at a time
* Each expression received is expanded and evaluated in the current interaction environment before the next expression that is entered is processed
* Files that are `load`ed by reading each form in the file and processing each in turn, as if they had been entered by hand into the REPL
* There is a single interaction environment containing bindings to macro transformers and procedures
* The initial environment is the Chez Scheme default environment
* All initial bindings are immutable
* Definitions are mutable
* Initial bindings may be redefined
* A parameter exists that allows you to alter the interaction environment using `environment` controls
* All identifiers are considered implicitly bound if not already defined
* This allows recursive definitions to be entered one at a time
* As a result, top-level identifiers will mess with `free-identifier=?`, requiring auxilary syntaxes to be explicitly bound instead of implicitly used
* Top level identifiers are not optimized away, since they may be reassigned
time
2010-02-16 02:15:48
version
1