タグ

SECDに関するyouzのブックマーク (6)

  • SECD Mania

    SECD is an extremly simple virtual machine for functional programming. This package provides a collection of different SECD implementations. All they follow the wonderful book: Peter Henderson, "Functional Programming: Application and Implementation", 1980, Prentice Hall This package is useful for educational purposes or as a starting point for LISP implementation. The last machines from the packa

    youz
    youz 2008/10/01
    SECDマシンのPascalによる様々な実装
  • SECDマシン - Wikipedia

    SECDマシンとは、関数型言語のコンパイラのターゲット(目的機械)を意図し、後に大きな影響を与えた抽象機械である。SECD は Stack(スタック)、Environment(環境)、Code(コード)、Dump(ダンプ)の略であり、それぞれ仮想機械にあるレジスタの名称となっている。これらのレジスタはメモリ上の連結リストを指している。 Peter J. Landinの考案によるもので、1964年のComputer Journal誌が初出である。ラムダ計算式を評価するものだが、Landin の発表した説明は非常に抽象的で、(操作的意味論のように)実装にかなりの自由度が与えられていた。SECDマシンはより詳細化された形態で説明されることが多く、例えば Peter Henderson の Lispkit Lisp コンパイラは SECDマシンをベースとして1980年に登場している。以降、いくつか

  • ちょっと草植えときますね型言語 Grass

    _, ._ ( ・ω・) んも〜 ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)wvwwWWwvwwWwwvwwwwWWWwwWw wWWWWWWwwwwWwwvwWWwWwwvwWWW 作ってみたwwwww とりあえず公開wwwwwwwっうぇ 日語版はてきとーです.きっと英語版のほうが詳しいです. 実装 インタプリタ Interpreter written in Standard ML (accept US-ASCII only) by UENO Katsuhiro Interpreter written in Ruby by UENO Katsuhiro Interpreter written in ニコスクリプト Interpreter written in Prolog by zick Interpreter written in Java b

  • Grass the grass-planting programming language

    ちょっと草植えときますね型言語 Grass _, ._ ( ・ω・) んも〜 ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)wvwwWWwvwwWwwvwwwwWWWwwWw wWWWWWWwwwwWwwvwWWwWwwvwWWW 作ってみたwwwww とりあえず公開wwwwwwwっうぇ つ 日語 Implementations Interpreters Interpreter written in Standard ML (accept US-ASCII only) by UENO Katsuhiro Interpreter written in Ruby by UENO Katsuhiro Interpreter written in NicoScript Interpreter written in Prolog by zick Interpre

    youz
    youz 2008/10/01
    wとWとvのみで記述する芝生系関数型言語。
  • Mini_0 - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記

    今回はSECD ManiaのMini_0 SECDマシンのjavascript版です。 このマシンは Henderson を継承しています。 オリジナルの Henderson コンパイラはただ1つだけ 算術構文を使っています - (ADD (QUOTE 1) x)。 1. SECDからすべての算術コードを削除し、 INC コードを追加しました。: INC (x s) e c d --> (x+1 s) e c d2. INTEGER 命令を追加しました。 3. コンパイラを以下のような式が通るように変更しました。 (quote 7) の代わりに 7 (quote nil) の代わりに nil4. compiler.lisp と compiler.secd の全テキストを大文字から小文字に変更しました。 ソース セルフコンパイルサンプル javascript版セルフコンパイルサンプル

    Mini_0 - Scala で TAPLを勉強しつつ LLVM コンパイラを作る日記
  • Monkey Coder: The SECD Machine

    youz
    youz 2008/10/01
  • 1