source-academy/js-slang

CSE machine: Add statement sequences to Source

NhatMinh0208 opened this issue · 0 comments

Background

Per #1537, the CSE machine is to separate the evaluation of block statements into two steps: environment creation and block unpacking. This was handled through a subtype of BlockStatement called RawBlockStatement (see #1538), but it is rather inelegant. Ideally we wish to express the idea of block statements without environments as a separate grammatical construct.

Proposal

To that end, we introduce the concept of a statement sequence. A statement sequence is simply a sequence of statements to be evaluated in succession. It is semantically distinct from a block statement in that no environments are created for a statement sequence.

Implementation

  • Statement sequences have been implemented for the CSE machine - see #1575.