タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

lispとrubyに関するkazutanakaのブックマーク (3)

  • 簡略版 S 式の LL(1) 文法による構文 - Tociyuki::Diary

    Lisp 処理系以外でも S 式を解釈できると何かと便利だろうと、BNF を書いてみることにしました。簡略版で十分と、リストはクォートとドット対に限り、複合リテラルは扱わず、シンボルと整数・浮動小数点数・文字列を字句にまとめ記号 ATOM として受け入れることにします。ブロックコメントは使わないことにして、空白と行単位コメントは字句解析で読み飛ばすことにします。ドットは、リストの同一レベルには一回だけ使え、左側には一個以上、右側には一個のリストが必要です。ドットを使わないリストはゼロ個以上のリストの並びになります。最初に、素直に EBNF 風に記述します。 input : list* ; list : '(' list* (list '.' list )? ')' | "'" list | ATOM ;これを BNF へ書き直していきます。input の書き直しは定石通りです。非終端記号

    簡略版 S 式の LL(1) 文法による構文 - Tociyuki::Diary
  • Life with Cygwin

    沖ソフトウェア株式会社は、沖通信システム株式会社および株式会社沖インフォテックと平成22年10月1日をもって合併いたしました。新会社名は、株式会社OKIソフトウェアとなります。3社が行っております事業は新会社にて従来通り継続いたします。

  • L2Lisp in Ruby:CodeZine

    はじめに P.Graham著『On Lisp』に示されているように、現代的なLispプログラミングでは静的スコープ(字句的スコープ)と末尾呼出し(末尾再帰を含む)の最適化のもとでのマクロが重要な意味をもちます。しかし、今まで処理系作成の初心者が内部に手を入れやすい手頃な大きさの実装が事実上ありませんでした。 ここでは、そういったモダンな特徴を備えた小さなLispインタープリタL2LispをRubyで作ってみます。L2Lisp(Little Lambda Lisp)は、Lispの理論的背景であるラムダ算法(lambda calculus)に対し、有力なLisp方言であるSchemeと同程度に忠実である一方、その他の点では広く普及しているEmacs Lispのサブセットとしたオリジナルの小型Lispです。 実行例としてtak関数を定義し、実行する様子を示します。Ruby以外に必要なのはL2Li

  • 1