タグ

lexerに関するsomemoのブックマーク (3)

  • JavaCC,ANTLR,パーサコンビネータを触ってみた - pocketberserkerの爆走

    某場所にて以下のような課題が出た。 いわゆるΣ計算の構文を解析するParserと解析結果にあわせた処理を行うVisitorの作成 書式は sum i : NUMBER .. NUMBER of expression 変数はiで固定、iを1つ目のNUMBERから2つ目のNUMBERまで変化させながらexpressionを計算 expressionは四則演算を行う。括弧を使用できること。 jjtreeを用いて実装せよ たとえば"sum i : 3 .. 5 of 1 + 2 * i"が27になる、みたいな形ですね。 でまぁ、jjtreeというかJavaCCだけだと 戦略というか方向性というか 時間短縮のため変数iはキーワードとしておく 変数が1つしかない仕様なので記号表は作らない Visitorのフィールドでiの当該値を記憶する あとはその場の勢いで追加実装したりしています。 JavaCC,j

    JavaCC,ANTLR,パーサコンビネータを触ってみた - pocketberserkerの爆走
  • 100行で書く俺様プログラミング言語コンパイラAltJS編 - Qiita

    プログラミングをしたことがあるひとなら、誰でも1度くらい自分の理想の言語を作ってみたいと思うのではないでしょうか。このテキストは、オリジナルのプログラミング言語のコンパイラ作成を通して、パーサコンビネータの使い方を紹介していくものです。 2分でわかる、俺の俺による俺のためのプログラミング言語を作る大まかな手順 自分のオリジナルなプログラミング言語を作るには、典型的には次のような手順を踏みます。 既存のプログラミング言語を使ってみる その既存の言語の気に入らないところを徹底的になじる(ただし心のなかで) 己の内に秘める中二力を卍解し、最強プログラミング言語の仕様を妄想する コンパイラを作る その言語を教典とする宗教団体を設立し、慈悲深き終身の独裁者を名乗る 自分の言語が思ったよりしょぼいことに気付く 桶屋が儲かる このテキストではこのうち手順 4 だけ、特にコンパイラのパーサ部分を解説します

    100行で書く俺様プログラミング言語コンパイラAltJS編 - Qiita
  • つくって学ぶプログラミング言語 RubyによるScheme処理系の実装

    プログラミングをより深く理解するための近道は、プログラミング言語を実装してみること。SchemeのサブセットをRubyで実装していくことで、プログラムはどう実行されるのか、その基がはっきり分かります。 ※書はCC BYにより配布されています。上記の「買い物かごへ」ボタンからは有償で購入できます。無料で入手したい場合は、下記リンクよりダウンロードしてください。なお、有償版も無償版も内容は同一です。 EPUB版PDF版内容紹介プログラムは書けても、その基礎となっている計算機科学(コンピュータサイエンス) の理解があやふやな人を、著者は多く見てきました。プログラミングに自信があるという人が、もう一歩先に進める道を示したいというのが、この文書を書き始めた動機です。 この文書を読むことで次の効果が得られることを期待しています。 プログラミング言語とは何かを深く理解することで、プログラミングのレベ

    つくって学ぶプログラミング言語 RubyによるScheme処理系の実装
  • 1