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