JSONライブラリ

Flash版が形になってきたので、忘れる前に、Java版を作ろうと思って、http://json.org/ から、Javaのライブラリをダウンロード。 しかし、使い方が分からない。 サイトを見ると、JSONValueなるものがあって、JSONValue.parse(json_str)とやれば良いと書いて…

階乗の計算ができるようになった!

葵の開発ですが、ついに、階乗の計算ができるようになりました。 長かった!(と言っても3ヶ月ですが...) ここまで、とても苦しかったのですが、後は、工夫して、いろいろな機能をつけていくだけです。 (ライブラリ作りも時間がかかりますが、これはとても…

JSONを使う

JSONでググると、ActionScriptでJSONが使えないとか、そういうブログが一番上に出てきてびっくり。 しかし、http://json.org/ からActionScript1/2/3に対応したクラスファイルがダウンロードできます。使い方は簡単。 // actionscript2 try { // decode var …

中間言語のVM原型が出来た

葵の中間言語を実行するVMはほとんどただのスタックマシン。なので、半日で原型が楽々完成。 簡単な計算と、文字列の表示ができました。 保存形式をJSONにして良かったッス。解析処理をほとんど書かずにすみました。 コミットしておやすみなさい。今日は早く…

中間コードのフォーマットを考える

なんとなくパーサーができてきました。既に、葵の中間コードのニーモニックは決まっていたのですが、具体的な書き出しフォーマットに関しては、ちょっと悩んでいます。 というのも、葵は普通のスタックマシンなので、特に悩む部分はないように思うのですが、…

jayのyyDebugが便利

それほど期待せず使っていたjavaのコンパイラコンパイラのjayですが、yyDebugクラスを自分で定義できるので、サンプルで用意されていた yyDebugパッケージからいくつか使ってみました。yyDebugは、Interfaceになっていて、自由にデバッグクラスを拡張できる…

macで動くようになりました

先日まで、Windowsで作業していたので、葵の現行バージョンでJava版、葵の中間コードの定義などを書いていたのですが、macosxに開発環境を移動させたので、macosxでも葵を動かす必要に迫られました。とりあえず動けば良いというわけで、automakeとか使わずに…

開発順序を再度考える

葵IRコンパイラ(日本語プログラム→葵IL)... 2月中に作る 日本語プログラムのトークン分解 関数登録 外部ファイルインクルード(ネームスペース+関数表の作成) 構文解析 中間言語出力(ラベル解決など) Javaで葵VMプロトタイプ(葵IRの実行) ... 3月中…

葵が予定より遅れている理由を考える

1月末です。いきなり予定より遅れてます。 以下に思い当たる節を列挙してみました。 思ったより雑用が多かった 原稿などの仕事の片付け サクラの素材王決定戦(http://oto.chu.jp/)コンテスト準備など 調べもの・検証作業 Flash Lite2.0に対応している端末の…

Flash Lite2.0対応携帯を品定め

今度作る葵では、携帯電話で葵を動くようにします。 それで、葵を動作させるターゲットとなる携帯は、Flash Lite2.0の対応機種です。 現在はまだFlash Lite2.0対応機種は一部のみですが、今後、Javaアプリ並に普及すると思います。 ただ、将来は大丈夫と思っ…

進捗状況

プロジェクト概要 今まで「葵」は、サーバーサイドのプログラミング言語だったのですが、、今回は、クライアントサイド(Flash Player上)で動くプログラミング言語として作ります。Webブラウザの中で動くだけでなく、Flash Lite2.0に対応した携帯電話でも動…

進捗状況

Jay(yacc for java)の使い方がだいたい分かる。 JavaとJavaScriptの違いに悩む 今更ながらJUnit便利だなぁと感心する ↑の本に、JUnitの簡単な使い方が乗ってたので使ってみたら、JUnitとEclipseの素晴らしい連携に今更ながら感心したのでした。

Jay(yacc for java)で躓いた

Jayのサンプルを見ながら、文法定義を書いたのですが、サンプルの通り書けば動くのですが、自分なりに書くと、 トークンの定義で「a token appears on the lhs of a production」というエラーが出て動かないのです。 %{ // 間違った定義 %} %token <void> EOL %tok</void>…

中間コードコンパイラ作成開始

葵の中間コードコンパイラをC#かJavaのどちらかで書き直そうと思っていて、人力検索で質問してみました。 question:1168075289 私が思っていた通りの回答があり、結局、Javaでやることにしました。 そして、コンパイラコンパイラは、yaccに書き方が近い、jay…

C#のコンパイラコンパイラjayのサンプル

jayは、yacc for java だそうで、yaccを使ったことあれば、なんとなく使えそうです。 jayのC#版が、monoに入ってます。 以下に、C#版jayの使い方のサンプルがありました。 これだけ分かれば自分でも使えそうです。 http://diary.lightnovels.net/mass/200302…

C#とJava、インタプリタ作るならどっち?

先日から、葵の中間コードコンパイラをC#かJavaのどちらかで書き直そうと思っていました。 そこで、人力検索で質問してみました。 question:1168075289昨日の日記でも書いていますが、こんな質問に誰もレスしてくれないと思っていました。しかし、今日、レス…