We specify the E Language in two layers. First, we present the E grammar, and show an expansion to Kernel-E. Kernel-E is a small subset of E -- every valid Kernel-E program is also an E program of the same meaning. Kernel-E is a small lambda language suitable for analysis by automatic program analyzers. In the following sections, we present each construct of the E grammar. For each, we give both an informal and a formal meaning. If the construct is also part of the Kernel-E subset, we simply point to the corresponding section of the Kernel-E manual for its formal meaning. Otherwise, we show the canonical expansion of the construct to Kernel-E. This expansion is the only precise meaning of these constructs.
|
||||||||||||
Unless stated otherwise, all text on this page which is either unattributed or by Mark S. Miller is hereby placed in the public domain.
|