2010-05-01から1ヶ月間の記事一覧

Sendai.as

仙台でActionScriptの勉強会がしたい! ってはなしがあったのでいろいろとお話してきました。 議論が出来たらとおもって、適当に話題提供しつつ、話しかけてたのだけど 結構反応があまりなかったので残念といえば残念な結果だったかもしれません。 でも、や…

構文木からAST(2)

タプルからASTに変換するプログラムを書いてみました。 今回は大部分のステートメントに対応しています。 エラー出力をどうするかの問題がありますが、とりあえず、構文木→抽象構文木の変換がどのようにやれば出来るのかが明確になったと思います。以下ソース

タプルからAST作成

構文木のパーサはそこそこ出来ていて構文木を嘗め回すインタプリタは作成しました。 JVMは構文木を嘗め回すのが妙に速いのでそれなりのスピードで動いてくれます。 しかしコンパイラを作る場合は抽象構文木(AST)に変換する必要があります。 通常の構文解析な…

短いオフサイドルールなパーサ字句解析器

HaskellやPythonオフサイドルールのパーサレキサーをjavascriptで書いてみました。 例はわざとレアなケースで書いてあります。 <script> Array.prototype.toString = function() { return "[" + this.join(",") + "]" } function run() { var ls = (document.getElem…

マクロは低級な言語でより生きる。

高級言語なら多態性やクロージャ、遅延評価等によって表現力を豊かに出来ます。 マクロでも表現力を豊かにすることは可能です。 しかし処理を追いかけにくいので高級言語では好まれません。 一方、低級言語ではスピードが求められます。多態性を使うようなテ…

Flash cola

言語ゲームのプロペラさんがFlash上でLispをLispでSWFファイルにコンパイルして実行できるという、 Flash Colaを完成させたそうです。 すごい。自分も考えてみてはいたんですけど、あきらめちゃっていました。 実際に作れるか作れないかの違いは大きい。 Fla…

の提案

2chでいろいろな議論があるなか叩かれつつも考えが進んだので文章にしてみました。 日本語は苦手ですが、それなりにがんばったつもりです。 一般的な言語は文脈自由文法により定義されます。 文脈自由文法とは文章の流れによって構文が変わることがなく文脈…