The operations on lists are divided into three classes:
For the access functions car and cdr, the accessed
heap entries have to be dereferenced
because they could have
been created by REL
in the context of free variables
(which were bound later) and
then passed to LL. Entries put on the stack
have always to be
dereferenced
in order to avoid unnecessary dereferencing when multiply
accessing arguments or local variables.
Dereferencing
is denoted by
.