File tree 1 file changed +1
-1
lines changed
1 file changed +1
-1
lines changed Original file line number Diff line number Diff line change 1
1
# Micro-Plan
2
2
## 1978年の8bitマイコン用プログラム言語のコンパイラの再現
3
3
4
- マイクロプランは、1978年のbit誌(共立出版)のマイクロコンピュータ用プログラム増刊号に、「マイクロプランのプロセッサ」として、戸村哲氏が公表された小さな言語であり、増刊号には、その文法[BNF](/microplan-syntax-bnf.txt)、コンパイラ、ローダ、インタプリタ、コンパイラ初期化用のID表が掲載された 。ソースコードは、マイクロプランで記述され、約400行、11kBのサイズであった。これを実際にコンパイルすると、分岐命令、コール命令の参照が未定義で残されたR-Codeが生成される。この未定義参照をR-Codeローダが解決して、Q-Codeに変換する。Q-Codeは、仮想機械Qマシンの機械命令であり、Q-Codeインタプリタが実行する。マイクロプランコンパイラは、最終的に2kBほどのQ-Codeとして実行される。当時、最も小さなTiny BASICが2kBほどであったので、コンパイラとしては非常にコンパクトであった。R-CodeローダとQ-Codeインタプリタは、8080マイコンのアセンブリコードで記述されており、両方合わせた実行コードは1kBほどであったので、4kBのメモリがあれば、自分自身をコンパイルすることができた。ただし、ジャンプ命令、コール命令のオフセットが12bitしかないので、メモリ空間はわずか4kBであった。
4
+ マイクロプランは、1978年のbit誌(共立出版)のマイクロコンピュータ用プログラム増刊号に、「マイクロプランのプロセッサ」として、戸村哲氏が公表された小さな言語であり、増刊号には、その文法[BNF](/microplan-syntax-bnf.txt)、コンパイラ、ローダ、インタプリタ、[コンパイラ初期化用のID表](/Compiler-nametable.txt)が掲載された 。ソースコードは、マイクロプランで記述され、約400行、11kBのサイズであった。これを実際にコンパイルすると、分岐命令、コール命令の参照が未定義で残されたR-Codeが生成される。この未定義参照をR-Codeローダが解決して、Q-Codeに変換する。Q-Codeは、仮想機械Qマシンの機械命令であり、Q-Codeインタプリタが実行する。マイクロプランコンパイラは、最終的に2kBほどのQ-Codeとして実行される。当時、最も小さなTiny BASICが2kBほどであったので、コンパイラとしては非常にコンパクトであった。R-CodeローダとQ-Codeインタプリタは、8080マイコンのアセンブリコードで記述されており、両方合わせた実行コードは1kBほどであったので、4kBのメモリがあれば、自分自身をコンパイルすることができた。ただし、ジャンプ命令、コール命令のオフセットが12bitしかないので、メモリ空間はわずか4kBであった。
5
5
6
6
Microplanで書かれたMicroplanコンパイラをCで書き直した。負数のdiv, mod の仕様が、Cと旧microplanでは異なるようだ。
7
7
You can’t perform that action at this time.
0 commit comments