Javaのサブセットコンパイラの作成

  • 3
    Like
  • 0
    Comment
More than 1 year has passed since last update.

この記事は言語実装 Advent Calendar 2015ML Advent Calendar 2015の19日目の記事です。

今日はJavaのサブセットのコンパイラCamljoos0[1]について書くザマス。
joos0[2]というおデンマークはオーフス大学の授業用に作成された由緒正しいJavaのサブセット言語があったのでザマス。joos0はおフランス製のOCamlで書かれていたザマス。
オーフス大学経路1

スクリーンショット 2015-12-02 22.04.55.png
スクリーンショット 2015-12-02 22.06.30.png

日本から飛行機でたった13時間25分で着いて、その後、車か電車で1時間ってトコロザマス。ほとんどまっすぐ電車が通ってて便利ザマスね。

オーフス大学経路2

ミーも一度、おデンマークに行って寿司を食った覚えがあるザマス。

https://web.archive.org/web/20020613131007/http://web500.com/tempfiles/92.asp?funcpostinglink=157&funcpostingID=1&funcextensionID=515

探したらコペンハーゲンのここらへんに行ったみたいザマス。

Nansensgade 19, Floors 7 and 8
1366 Copenhagen K

スクリーンショット 2015-12-02 22.10.46.png

完全にネタになってるザマスね。もうミーは疲れたザマス。本題に移るザマス。

camljoos0

joos0はお作法的に、どうもJava等のお作法で作られていて長ったらしかったザマス。そこでミーの登場でザマス。ミーは MinCaml的に書き換えてjoos0をたった1行に書き換えてやったザマス。いや、1行は嘘ザマス。物の例えザマス。でもかなり短くなった事は間違いないザマス。

そういう事でですね、joos0っていう言語があったのですけど、Javaっぽい作りだったので、4000行のコードを2600行位まで書き換える事が出来ました。MinCamlのように書き換えたらかなり短く出来ましたっていう話でした。

ScalaをOCamlで描きたい場合にもしかしたら参考になるかもしれないし、ならないかもしれません。
MokkosuをOCamlに移植したらスッキリしそうだなぁなんて思う今日この頃です。

参考文献

This post is the No.19 article of 言語実装 Advent Calendar 2015