Linear Lisp -- A Linear Lisp Machine with FREE, COPY, EQUAL and Assignment

A Linear Lisp Machine with FREE, COPY, EQUAL and Assignment

FREE, COPY, EQUALと代入を備えたLinear Lispマシン

In the previous section, we described a Linear Lisp Machine in which FREE, COPY and EQUAL had to be programmed.

前のセクションでは、私達はFREE, COPY, EQUALがプログラムされたLinear Lispマシンについて述べました。

Now that we have seen how to implement these three functions, we will describe a new machine in which they are primitive operations--e.g., they are implemented in microcode.

今、私達はどのようにこれらの3つの関数が実装されるかを見た、私達はそれらがプリミティブな操作である新しいマシンについて述べます(例えば、それらはマイクロコードで実装されます)。

This revision will not provide much additional efficiency, but it will provide a more traditional set of primitive operations.

この改訂版はさらなる能力を提供しないでしょう、しかしそれはより従来的なプリミティブな操作の集合を提供するでしょう。

r1:=r2: /* r1, r2 cannot be the same register. */
{FREE(r1); COPY(r2,r1);}

r1:=CAR(r2): /* r1, r2 cannot be the same register. */
{r3<->CAR(r2); r1:=r3; r3<->CAR(r2);}

r1:=CDR(r2): /* r1, r2 cannot be the same register. */
{r3<->CDR(r2); r1:=r3; r3<->CDR(r2);}

RPLACA(r1,r2): /* CAR(r1):=r2. r1, r2 cannot be the same register. */
{r3<->CAR(r1); r3:=r2; r3<->CAR(r1);}

RPLACD(r1,r2): /* CDR(r1):=r2. r1, r2 cannot be the same register. */
{r3<->CDR(r1); r3:=r2; r3<->CDR(r1);}

Using this new set of operations, we can now program our Lisp interpreter in the traditional way, although this interpreter will now be slower unless we have taken precautions to avoid extraneous copying.

この新しい操作の集合を使うことは、私達が今従来の方法で、このインタプリタは現在は遅くて私達は事前に注意して余分なコピーを避けなければならないが、私達のLispインタプリタをプログラムすることを可能にします。

This interpreter is still linear logic, in which there is no sharing, however, so operations like RPLACX cannot create loops.

このインタプリタは依然としてそれらは共有のない線型論理に基づきます、しかしながら、RPLACXのような操作はループを生成できません。


>> Lively Linear Lisp
>> Abstract
>> Introduction
>> A Linear Lisp Machine
>> A Linear Lisp Machine with FREE, COPY, EQUAL and Assignment
>> Dataflow-like Producer/Consumer EVAL
>> Reconstituting Trees from Fresh Frozen Concentrate
>> Linear Lisp EVAL
>> Implications for Real Multiprocessors
>> Conclusions and Previous Work

0 件のコメント: