Skip to content

Commit 1d4b3d2

Browse files
authoredFeb 19, 2022
Update README.md
1 parent ed68c6c commit 1d4b3d2

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed
 

‎README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Micro-Plan
22
## 1978年の8bitマイコン用プログラム言語のコンパイラの再現
33

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であった。
55

66
Microplanで書かれたMicroplanコンパイラをCで書き直した。負数のdiv, mod の仕様が、Cと旧microplanでは異なるようだ。
77

0 commit comments

Comments
 (0)
Please sign in to comment.