「SECDマシン」の版間の差分
削除された内容 追加された内容
編集の要約なし |
編集の要約なし |
||
1行目:
'''SECDマシン'''とは、[[関数型言語]]の[[コンパイラ]]のターゲット(目的機械)を意図し、後に大きな影響を与えた[[抽象機械]]である。SECD は '''S'''tack(スタック)、'''E'''nvironment(環境)、'''C'''ode(コード)、'''D'''ump(ダンプ)の略であり、それぞれ仮想機械にあるレジスタの名称となっている。これらのレジスタはメモリ上の[[連結リスト]]を指している。
Peter J. Landinの考案によるもので、1964年のComputer Journal誌が初出である。[[ラムダ計算]]式を評価するものだが、Landin の発表した説明は非常に抽象的で、([[操作的意味論]]のように)実装にかなりの自由度が与えられていた。SECDマシンはより詳細化された形態で説明されることが多く、例えば Peter Henderson の Lispkit Lisp コンパイラは SECDマシンをベースとして[[1980年]]に登場している。以降、いくつかの実験的コンパイラが SECDマシンをターゲットとして使用してきた。また、[[ISWIM]]を提案した "The Next 700 Programming Languages" でも参考文献として挙げられている。
[[1989年]]、[[カルガリー大学]]の研究者がSECDマシンをハードウェアで実装する研究を行った。
|