2013-03-01から1ヶ月間の記事一覧
水曜日にSML#の公開講座の最終回に参加してきました。 で、最後ってことで公開講座懇親会をするということで行ってきました。 で、日記書き始めると、SML#よりもScalaが素晴らしいみたいな話になってしまうので寝かせておいたのでした。おお、憧れの大堀先生…
とにもかくにも、言語を作り続けてます。 ここの所の作業は以下のようになってます。 SML#へ移植してみる Scala版でopenglを動かす SML#バージョンでもopenglを動かす 型チェックを厳しく エラーが1行だけど、位置情報がそこそこ出るようにする switch文の…
予約に失敗してD言語ハッカソン行けなかったので移植はコンパイルを通した状態で断念しました。 後しばらくは、Dの集まりもないだろう。やっぱりSML#だなということで、SML#に黙々と移植をしてました。 いちお、作っていたテストは全部通って、OpenGLを動か…
D言語のオフ会があるようなので、出てみたいなぁと思いつつ、ネタがない。 Scalaのコンパイラの話をしたいけど、それじゃ、ぜんぜんD言語じゃない。 ということで、2500行くらいなら、移植も楽なはずと思って、Dに移植し始めてみました。 パーサコンビネータ…
結構黙々とコンパイラを作ってました。 話したい人は話してくださいとの事だったので、せっかくなので現状作っている言語の ソースをざざっと、話してきました。id:kmizu さんに以下のように書き換えると短くなると指摘してもらいました。 case class EOp(op…
そこそこコンパイラ言語が動いているので、 GCありの言語用の保守的GCを作ってみました。 スピードは例によって気にしてないので遅いと思います。これを 完全なGCに出来たら良いなと思うけど、どうしたらいいのかなと。 #include <stdio.h> #include <stdlib.h> typedef struct </stdlib.h></stdio.h>…
Lispのような構文定義可能なマクロを実現させたい。 しかし大量にあるマクロを扱うとなると線形探索でのパターンマッチングではとても遅くなってしまいます。幅優先探索にしてツリー状にマクロのデータを保存して、範囲をしぼるとかいう手もあるでしょうし、…
#define BEGIN { #define END } のような括弧の対応が合わないマクロは凶悪です。 これに対応できる構造化されたマクロのアイディアが必要です。こいつらは、ネストした括弧の中におさめることができなかったりします。 #def (#BEGIN) ({) #def (#END) (}) …
複数行に渡るマクロを書く場合、行末に、\をつければ可能ですが、あれは汚いです。\を付けない書き方をしたいです。 #def (#add($a,$b)) { ($a + $b) } みたいに書けたほうがよいでしょう。
現状のC言語のマクロはネストしないのが常識のようになっていて非常に汚く感じます。 少なくともgccでは、プリプロセッサが行頭になくてはならない訳ではないようです。なので、#ifdef等があったらネストして書いたら良いと思うのですが、ネストしないで書き…
おお、すげぇ。http://d.hatena.ne.jp/ytqwerty/20130301#p1すごい。mingwの条件付きでのみだそうですが、 windows.hのAdaへの自動変換が出来たそうです。でもって、どのプロジェクトでも出来てないってのは嘘だったそうです。すいません。TODO: 内容を修正…