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

tinycをscalaに移植する。(3)

今日は、コンパイラの移植をしました。 唯の移植作業なので、ゴリゴリ作業してコンパイル通れば、あとはちょいちょいっと Null Pointer Exception を消して完成。 とりあえず、test.cのコンパイルが通ってアセンブラのコードがなんか表示されました。 アセン…

tiny-cを移植中

とりあえず、悩んでる暇あったらコード書けってことでインタプリタが動くところまではゴリゴリ書きました。 文字列処理以外はうまく動いているっぽいので、これでOKってことにしました。 時間ないし、気合い入れて完成度を上げる必要があるものでもないの…

tiny-cをscalaに移植する。

移植し始めました。 scalaで書きなれるため、簡単なコンパイラってことで。 http://github.com/hsk/stinycソースはこちら。 レキサは手がき、パーサはjavaのパーサジェネレータでアセンブラを出力するものを作るのが目標。 問題は、tiny-cのコンパイラは完全…

Cの.hからAdaへのトランスレータ Head Master

世の中には様々なプログラミング言語が多数存在しています。 その中でOSに近いライブラリのほとんどはC言語のヘッダーファイルにより定義されています。 C以外の言語ではCのヘッダファイルを読み込み変換して使うことになります。 この変換作業のことをポー…

進捗

Scala版Tigerはそういうわけで、レキサの部分で停止してます。 その代わり、と言っては何ですが、tiny-CをScalaに移植しています。tini-C http://www.hpcs.is.tsukuba.ac.jp/~msato/lecture-note/comp-lecture/このtiny-Cは昔、D言語に移植してみたことはあ…

美しく効率的なレキサ

Scalaで美しくて効率的なレキサーを作りたいと思っています。 やりたいことは1.ファイルストリームから読み込む。 2.正規表現マッチングを使ってトークンを作成する。 3.マッチしたら返すyieldを使った実装にする。ここで、ファイルストリームから読み…

CoffieScript

RubyとPythonと関数型言語風のJavaScriptにコンパイルされるCoffieScriptってのがあるそうです。 http://journal.mycom.co.jp/articles/2010/01/13/coffeescript/menu.htmlネット対戦ゲームにも使われているそうで、なかなか興味深いです。 サーバーサイドで…

コンパイラインストラクチャ作成ロードマップ

ダイヤモンド言語作りのロードマップを書いて置きます。 これを数年〜10年くらいで行う予定です。1.Scalaでネイティブな命令型言語のコンパイラの美しい作法を探す。 C言語風言語の関数型言語であるScalaで記述することで美しいインフラストラクチャを目指…

タイガーブックchap4の抽象構文木

scalaだと、こんな感じになるんじゃないかっと。 class Absyn { type Pos = Int abstract case class Absyn(pos:Pos) abstract case class Var(override val pos:Pos) extends Absyn(pos) abstract case class Exp(override val pos:Pos) extends Absyn(pos)…

ふつパイラを読む

完全じゃないですけど、軽く目を通してみました。 オブジェクト指向で、visitorパターン使って作るという感じでした。 自分が目指しているのは関数型言語で命令型言語を作ることなので、タイガーブックがあっているのだなと 思いました。mincamlは関数型言語…

カルチャーショック

JQueryの本を嫌々読みました(笑 そう。嫌々に。体をよじらせながら。 ちゃんと理解しようとすると偉いしんどい。 どーせ、使わないし。とか、そんなもん使わなくてもやりたいことはできるとか。 もろもろの、受け付けない感情が湧いてきて、嫌なわけです。 …

で四則演算コンパイラ

自分のライフワークである、言語作りですが、いよいよオリジナルコンパイラを作っていこうと思っています。 で、まずは、四則演算できるだけのコンパイラだよなってことで以下のサイトを参考に作ってみました。 http://www.sol.dti.ne.jp/~yoshinor/mysoft/S…

環境指向言語

昨今、関数型言語とオブジェクト指向言語の融合が行われています。 Objective CamlやScalaがそれです。 しかし、現在ではまだ完全とは言えない状況です。 統一理論的な考え方を作り出すことで融合はスムーズに行えると言えるでしょう。 オブジェクトもクロー…

プロジェクト・グル・メンテーション(仮)

1.妄想言語メンテーション(仮)を開発し優勝を目指します。 名前は孟宗竹でもいいかもしれません。2.インフラストラクチャとしてmincamlを採用 mincamlはチェアマンである住井さんが作成した非常に美しいソースで有名です。 ということで話題性は抜群でしょ…

tanakhさんついにICFP Programming Contest 2010 優勝する

ICFP Programming Contest とは世界の最強のプログラミング言語を決めるコンテストです。 Pure Pure Code ++ が見事1位ということで、感極まるものがあります。 思えば、tanakhさんがD言語をDisっているところに、嫌そんなことはないよ。D言語最高だぜー!…