2010-01-01から1年間の記事一覧

レーシングゲーム弄る

だいぶ前だけど、色々パラメータ弄って遊んでました。 http://wonderfl.net/c/dIuj

スタックに全関数型情報を入れる

ってことを考えてみてました。 x86 の場合は普通はリターンアドレスの1つ前に call 関数アドレス があるので、相対的に関数アドレスが分かるのですが関数ポインタを使った場合や、API呼び出しの時などが呼び出し規約が変わったり、オペコードが変わるので関…

コレクションの翻訳に突っ込みを入れる。

id:kmizuさんのツイッターで呟いていたのでちょっとだけ、ご意見させてもらったら全部対応してもらってしまいました。 ありがとうございます。http://eed3si9n.github.com/scala-collections-doc-ja/凄く見やすくなっている。不満に思ったところがことごとく…

JAWS仙台0会に参加する

アマゾンのサーバー使ってクラウドだぜーな会でした。 色々突っ込んで技術的な話が聞けて面白かった。 もう、サーバを上げたり下げたりしまくりで運用してしまえばコスト浮いていいらしい。 ってことが分かった。

今は谷

どうも、調子に乗りすぎたようで疲れた。 ってことで、家でごろごろな今日この頃です。 でもまぁ、櫻井ファンのために<いるのか? ブログを書いてみる次第です。

まだまだ時間はあんぞ

今の若者は、、、なんていうとアレなんだけど、今の若者は案外いいこと言います。 ONE OK ROCK の「自分 Rock」がいいです。 焦ってた自分がいるわけだけど、励まされます。映像は精神科医がうつ病の薬売って儲けてて、うつ病の薬を打つと元気になるという怖…

本色々

なんか、服を買おうかと思ってユニクロに行ってみるも、太ったせいか似合うと思える服がない。 う、これはやばいんじゃということで、服屋さんをうろついてみて、まずいと思った。 で、ストレス発散に色々本を買った。1.やさしいコンパイラの作り方 この本…

Tigerいろいろ

Tigerの実装を探してみたリンク集です。http://tiger64comp.svn.sourceforge.net/viewvc/tiger64comp/ http://strategoxt.org/Tiger http://www.ohloh.net/p/lrde-tc/ http://hackage.haskell.org/package/tiger https://github.com/aryx/tiger http://edwar…

エグザイルのファンになりつつある

朝の連ドラ>バレーの応援>エグザイル魂 で火がつきつつあります。 サーフィンの板に絵を書いてたのが嬉しくて。

人のプログラムコードに合わせる

俺も合わせます。 で、出来るだけ綺麗といわれる確率の高いコードを書きます。 自由って言われると困ります。 てのもあれなので、そのときはタブ4で書きます。

ちゅうにびょう

おそらく私は死ぬまでちゅうにびょうであります!

金曜日に突然オフィス引越しを言い渡され<おおげさ

1日で大部分の引越しを済ませました。 物件などは自分で探してないので何も苦労してません(w おしまい。 いや、環境が変わって体調を崩したか。 そう、崩したのです。<だからどうしたという

タイガー意味解析

タイガーっていうと、タイガーマイコンジャー炊きたて♪ ってのがありますね。おなかすいた。えーと、意味解析を読み始めました。セマンティックスです。 意味解析といえば記号表ってのがまず出てきます。 記号表は要するに連想配列、マップ、ハッシュマップ…

情報という名のプレゼント

id:w_oさんが27歳の誕生日を迎えたそうです。 おめでとうございます。どうも、大崎に住んでいるらしいので、以前大崎に住んでいたことがある先輩としてwww ちょっと古い大崎情報をプレゼントしようと思います。 プレゼントというよりは、昔の思い出に浸っ…

tiger作る

もはや、タイガーブックは読んでいませんでした。 大域的エラー復帰というのがあるらしい。ふーんって思ったくらいです。とにかく、コンパイルを通す。エラーは100個くらいあって気が滅入りました。 でも、型エラーが続いているだけなので、 それを1個ず…

tiger book読む

tiger bookを読むといいつつ、全然本は読んでません。 ひたすら文法というかJCUPと格闘してます。 コンフリクトは無くなったのが以下のソースです。 まだ、コンパイラは通らないと思います。 JCUPでは名前を使ってバインディングできる素晴らしい機能がある…

tiger book読む

amd64tigerのソースが参考になるはずと、読んでみました。 mosmlいう処理系用に書かれていて、mosmlっていうのはどうもモスクワ大学製のsmlコンパイラらしいということで、 トークンのシンボル名がどうもロシア語で書かれている!! っていう点を除けば、参…

tiger bookに再度挑む

smlのコードをScalaに素直に移植していけばと思っていたのですが、 字句解析器ジェネレータとパーサジェネレータが前提。 そして、Scalaにはyaccやlexの実装がない。 パーサコンビネータはあるけど、移植に手間がかかること請け合い。 うー、Javaの実装もあ…

tiny-cをscalaに移植する。(7)

[Scala]tiny-cをscalaに移植する。(7)今回は、lisp級マクロを組み込みました。 作業的には以前作っていたものをコピしただけなので、数十分の作業でした。 (コピペだけなら、数十秒で、動作確認に数十分、ブログ書くのに数十分です。) mac (add1('a)) ( a + …

tiny-cをscalaに移植する。(6)

マクロを組み込もうと思っていたのですが、その前にリファクタリングをしました。ScalaにはListがそのままあるので、AST内にあるLISTをなくして、ScalaのListに置き換えました。 これにより、list操作関数は消すことが出来ました。また、余計なマッチングが…

tiny-cをscalaに移植する。(5)

今日は tiny-c のフロントエンドをC言語風式言語 Compact を使うように書き換えました。 ソースでいうとCLex.javaとcparser.yをcompact.scalaとcompact2ast.scalaに置き換えを行いました。https://github.com/hsk/ctinyc処理内容compact.scalaで文字列をタプ…

mincamlj

同じような感じで、Scala版MinCamlを修正しました。 http://github.com/hsk/mincamlj/blob/master/src/emit_x86.scala 行数は増えたけど、見通しはよくなったんじゃないかと思います。

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

前回は、とりあえず、ゴリゴリとScalaに移植した状態でした。 ソース読みたくないって思ってた理由を考えてみました。 アセンブラの出力部分とコード生成部が一緒になっていて どんなアセンブラの命令を使っているのかがわからず、 めんどくさいと思っている…

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ネット対戦ゲームにも使われているそうで、なかなか興味深いです。 サーバーサイドで…