Sun、JavaをGPLでオープンソース化
■ このスレッドは過去ログ倉庫に格納されています
0147デフォルトの名無しさん
2006/12/25(月) 22:11:56コンパイラがどういうものなのかわからんのなら、たぶんすぐに実装するのは無理だと
思うので、まずコンパイラ関係の本を読んで勉強した方が良いと思うが、一応アドバイスしてみる。
まず前提として、コンパイラの動作は大まかに次の4つのフェーズに分けることができる(実際には
意味解析はもっと細分化されていたり、最適化のためのフェーズがあったりするが)。
字句解析 -> 構文解析 -> 意味解析(型チェックや到達不能コードの解析など) -> コード生成
で、gotoを実装するためには次の3つを行えば良い。
(1). 構文解析に手を加えて、goto LABEL; という文を認識できるようにするとともに、ブロックの任意の
箇所にLABELを定義できるようにする。
(2). 意味解析に手を加えて、goto LABEL; でgoto先のLABELが存在していることをチェックする
(3). コード生成に手を加えて、goto LABEL; をJavaバイトコードのgoto命令に変換する
■ このスレッドは過去ログ倉庫に格納されています