Title Author(s) Citation Issue Date URL ミニコン用コンパイラー NIT-FORTRAN について Design of NIT-FORTRAN Compiler for Mini-Computer 丹羽, 敏行; 本田, 行雄 名古屋工業大學學報, 23: 349-357 1972-03-31 http://repo.lib.nitech.ac.jp/handle/123456789/1538 Rights Type Textversion Departmental Bulletin Paper publisher ・名古屋工業大学学術機関リポジトリは、名古屋工業大学内で生産された学術情報を 電子的に収集・保存・発信するシステムです。 ・論文の著作権は、著者または出版社が保持しています。著作権法で定める権利制限 規定を超える利用については、著作権者に許諾を得てください。 ・Textversion に「Author」と記載された論文は、著者原稿となります。 実際の出版社版とは、レイアウト、字句校正レベルの異同がある場合もあります。 ・Nagoya Institute of Technology Repository Sytem is built to collect, archive and offer electronically the academic information produced by Nagoya Institute of Technology. ・The copyright and related rights of the article are held by authors or publishers. The copyright owners' consents must be required to use it over the curtailment of copyrights. ・Textversion "Author " means the article is author's version. Author version may have some difference in layouts and wordings form publisher version. 名古屋工顎大学学報 349 第23巻(1971) ミ ニコン用コンパイラー NtT_F6RTRANについて 羽 丹 子 電 工 行 雄 田 敏 行・本 学 教 室 (1971年9月13日受理) Design Tosbiyuki NIWA and DePartment various Then are the merits, 3000 and is equations is have to been 13, be given sample 45 after use by sec. cpu wbicb 〃Co皿pile and use・ has NIT-FORTRAN tile over grammar program tlle for used instructional or This be to mini-computer scientific practiced・ the executionl out carried for 1971) and speed The easy able designed bigb especially, handling. JIS solutions FORTRAN■ new many compilers for insufficient are HoNDA uf Electronics FORTRAN several They purposes. Mini-Computer Yukio September (Received Tbere for Compiler NIT-FORTRAN of solves 20 level simultaI一eOuS Twenty Go''metl-od・ times. <CPロ> 1.ま え が き 語 長 サイクルタイム 最近,ミニコン(超′J\型電子計算機)が多方面で種々 16ピッ†+パリティビット 1.5〃s 活用されており,特に研究室単位での科学技術計算用と 記憶容量 4 Kw-32Kw して,また高等学校などにおける情報処理教育用とし 演算方式 並列2進法 て,今後著しい普及が見込まれている。 命令数 39(基本) +5 アドレス方式 1招方式,ページ式 間接アドレス 指定可 FORTRANなどのコンパイラも用意されるようにな 修 飾 Bレジスタ修飾 った。しかし,研究用,教育用として,まだ不充分な点 割 込 4レベル このような背景から,ソフトウエアの面では,ミニ コンといえどもアセンブラほもちろん BASIC, が多い。 そこで,筆者らもミニコン用として, ベルの FORTRAN JIS3000 コンパイラを作成し, NIT- FORTRANと名付け,デバッグもほぼ完了したので, その概要を報告するo 2.ハードウェアの構成と仕様 コンパイラ開発の対象としたミニコンは, ように,基本構成(記憶容量4Kw+入出力タイプライ グ)に近いものとした。その仕様は次の通りである。 Fig.1の レ (オプション) 350 Bulletin 入出力制御 Nagoya of lnstitute of Technology γol. (4)文 BUS方式 <入出力装置> 23 (1971) 法 本FORTRANのレベルは,補助入出力文を除いて タイプライタ JIS 1000字/分 フォトテープl) 500字/秒 -ダ 3000に準ずる。ただし,能率を落さない限りでき るだけ拡張するようにした。また,あくまで上向きの互 換性を考え, 3.コンパイラの仕様 JIS 本FORTRANの設計にあたり,研究用だけでなく, JIS規格以外の記述をさけた。 3000を拡張した部分は次のとうりである。 a)入出力変換にA変換を許し,文字データも扱え るようにした。 教育用としても充分使用できるよう配慮した結果,次の b)文番号及びSTOP文とPAロSE文に続く定数 ような種々の特長を持たせることができた。 (1)最小機器構成 に65535までのものを許す。 Fig. c)継続行数を制限しない。 1にも示したように,基本構成+4Kwの低価 格のシステムから使用することができる。 d) (2)翻訳と実行の芋川頁 Compile and DIMENSION文は,添字付変数を使用する前 であれば,どこに置いてもよい。 Goを原則とするが,ソース・プログ e) FあるいはE変換でEあるいはF塑のデータを 入力することができる。 ラムが長くて,オブジェクト・プログラムが記憶装置に (5)プログラムとデータの記述形式 そのままでは入り切らない場合ほ,メッセジ印刷と同時 に自動的にオブジェクト・プログラムをパンチ出力す プログラムは固定欄形式とし,データについては,デ る。オブジェクT-・プログラムは2進のままで出力さ ータとFORMATの作成を容易にするために,自由櫛形 れ,いつでも再入力し,実行することができる。 式と固定橋形式の折衷式とした,すなわち, (3)オブジェクト・プログラムの形 翻訳,実行の方法には一般にFig. FORMAT 中の偶の巾wおよび数値の型が入力データと対応ずけら 2のように2通り れるが,改行コードあるいはスペースがw桁内にあれ ば,その改行コードあるいはスペースをデータの切れ目 の方法がある。 とみなす。 a)トランスレータ形式-・・・これほ,コンパイラが (6)エラーメッセジ ソース・プログラムを翻訳した結果得られるオブジ 教育用という観点から,エラーメッセジほコンパイル ェクト・プログラムが機械語になっていて,それを 実行して目的の処理を行う方法である。一般に,こ 時59,実行時15とできるだけ数を多くし親切なものとし た。また,エラーメッセジ出力後も翻訳に支障のない限 の方法ではコンパイラの構成が複雑になるが,実行 り,そのステートメントの残りのエラーもチェックし, 時間が短縮される。 軽度のエラーに対しては,適当な形にオブジ工クト化す b)インタープ1)一夕形式・・・・・・これは,ソース・プ る。 ログラムをコード化された形のオブジェクト・プロ エラーメッセジは3つのレベルに分類され,軽度のも グラムに翻訳し,プログラムによってこれらのコー ドを解釈しながら実行する方法である。この方法で のに対してほ無視して実行することが可能,中度のもの は,コンパイラの構成が簡単になるが,実行時間が に対しては実行は不可能,重度の場合はコンパイル中止 長くなる。 となる。また,実行時においては,それぞれのレベルに 応じて,演算続行,演算一時停止,演算中止というよう 一般に,ミニコンのように/J\容量の記憶装置しか持た ない場合は,実行速度を犠牲にしてコンパイラを簡単に するのが普通で,市販のミニコン用FORTRAN になる。 は全 てインタプリ一夕形式をとっている。本FORTRAN (7)操 作 翻訳から実行までの操作はできるだけ簡単にし,原則 では,あえて前者のT.ランスレーダ形式を採用し,実行 として, 速度の向上をはかったo うにした。また,翻訳時にスイッチ・レジスタを用い SCCの値をセッ十するのは一度だけですむよ て,入力機器の選択と1ステートメソ十ずつの処理が自 インタープリータ形式 由に指定できるようにし,デバッグの便をはかった。 4.翻訳ルーチン トランスレータ形式 すでに述べたように,算術代入文及び無条件GO Fig・ 2 Compiling and executing method 文などは直接機械語の形のオブジェクトになるが,その TO 名古屋工業大学学報 351 第23巻(1971) 73 Fig. 72 word 5 Statment wor area read 4-2.ステートメント分類ルーチン 読み込まれたステートメントが,テーブルにある D ⊂) D O 'オ ク フ■_ ー TO, FORTRAN語文字列(GO ズ ー ⊂コ ン DO, FORMAT ど)で始まっているかどうかをチェックし,一致すれ ば,その文字列に対応する各ステ一丁メンTl処理)t'-チ ンに分岐し,一致しない場合は算術代入文とみなして処 P A S U T C エ R 引 ド ∈ T の コ (Fig. 書 ■ ー U 文 し R 3 字 列 地 ド 暮育代人文 王推するステートルト 処確ルーチン の処理JL -テン N Fig. Fig. 6) P L 敦 ン 理する。 0 A 実 ∈ Formats of object 6 Statement sort program 他のステートメン†のオブジェクト形式をFig.3に示す。 routine 4-3.シラブル・リード・ルーチン 翻訳ルーチンを構成する主なプログラムは シラブル・ (1)ステートメン†読み込みルーチン 1) -ド・ルーチンは変数処理ルーチンと定 数処理)I,-テンとで構成され,読み込まれた文字列が変 (2)ステートメント分類/レーテン (3)シラブ/t'・ 数か定数かに応じてそれぞれの処理ルーチン-分岐す 1)-ド・)t'-チン る。 (4)ステートメント処理ルーチン 変数処理ルーチンでは,変数が新しく定義されたもの (5)オブジェク†格納ルーチン かどうかを判定し,新しい変数ならば,変数名か関数名 である。 あるいはサブルーチン名かを判定し,それぞれに番地を 4-1.ステートメント読み込みルーチン 割り当てる。 ソース・プログラムを1行読み込んで,所定のバッフ 17に格納する.読み込んだステートメン†が注釈行であ れば,その上に次の1行を読み込み,継続行の処理をす る。 定数処理ルーチンでは,読み込まれた文字列(lo逸 数)を2進の整定数あるいは実定数に変換し,割り当て られた番地に格納する。 (Fig.4) (Fig. 7) バッファはFig.5のような構成で,ソースの1字が 1語に対応し, す。また, 1行は72字までとし73字以降は読み飛ば 72字以内に改行コードがあれば72字までスペ ースをつめる。 Fig. 7 Syllable read routine 4-4.ステートメント処理ルーチン このルーチンは,代入文,制御文,入出力文,宣言 文,およびFORMAT文を機械語命令に変換し,オブ ジェクー格納ルーチンを用いて,主記憶装置に格納する Fig. 4 Statement read routine か,あるいはパンチ出力する。 (Fig. 8-20) な 352 Bulletin of Nagoya lnstitute of Technology γol. 23 (1971) 4-5.オブジェクト格納ルーチン 翻訳されたオブジェクト・プログラムを1語ずつ主記 憶装置に格納する。途中で1passのオブジェクT.領域 に入り切らなくなれば,それまでに格納したオブジェク ト・プログラムを,再入力用 LOADERで読み込み可 能な形のバイナリ・モードにしてパンチ出力する。以 後, 1ステートメント翻訳するごとにオブジェクト・プ ログラムをパンチ出力する。 パンチ出力するとき,次の点が問題になる。 (1)オブジェクト・プログラム格納開始番地がずれ る。 (2)オブジェクト・プログラムの長さが, 2pass Fig. に切り替った時点では不定である。 Compile 9 and (3)テーブル類もー緒にパンチ出力しなければなら routine computed of GO GO TO statement TO statement ないo システム入力用のブート・ストラップでほバイナ1) ・ テープの先頭に,格納開始番地,語数,実行開始番地の 3語がパンチされていなければならないので,上の形の パンチ出力されたオブジェクト・プログラムに対しては 別の形のプログラム(LOADER)を用意しなければな らない。 Fig. 8 Compile statement routine of Fig. 10 Compile routine of arithmetic Fig. ll Compile routine of DO statement arithmetic Fig. 12 Compile statement routine of CONTINUE IF 名古屋工業大学学報 PAUS E文 353 第23巻(1971) STOP文 メインルーチンヘ 復帰するプログラ ムを格納 Fig. 15 Compile routine of R ETURN statemerlt Fig・ 13 Compile of routine PAUSE/STOP statement Fig・ 16 Compile routine of READ/WRITE statement Fig. 14 Compile routine of CALL statement Fig. 18 Compile of routine DIMENSION statemerlt Fig. 17 CoT11pile routine of FORMAT statement 354 Fig. 19 Compile Bulletin of routine of lnstitute Nagoya Technology of γol. 23 (1971) SUBROUTINE statement Fig. 21 Object store routine 5.実行ルーチン 次のステートメントヘ 翻訳されたオブジェクト・プログラムを処理実行する ルーチンは次のようなプログラムで構成されている。 (1)演算実行ルーチン (2)計算塾GO TO文実行ルーチン 文実行ルーチン (3)算術IF (4) DO文実行ルーチン (5) DO close実行ルーチン (6) PAUSE/STOP文実行ルーチン (7) CALL文実行ルーチン (8) RETURN文実行ルーチン (9) READ/WRITE文実行ルーチン Fig. 20 Compile routine END of (10) FORMAT文実行ルーチン statement (ll)オブジェクト再入力用LOADER Ta.ちle 1 Arithmetic 内 2倍長のデ-メをロ-ドする LD TD 2倍長のデータを格納する and subroutines 容 "記 IFIX FLOAT AD 倍精度加算 TABS SD 倍精度減算 ABS MD 倍精度乗算 SIN DD 倍精度除算 FA 浮動′ト数点加算 ATAN FS 浮動′J、数点減算 TANE FM FD POW 1 POW2 POW 3 COS 号 lntrinsic functions 容 内 実数形-整数形 整数形-実数形 l∬【(整数形) 】xl (実数形) SlnX COSX tanLIx tallb∬ 浮動小数点乗算 EXP 浮動小数点除算 ALOG べき乗(整数の整数乗) SQRT べき乗(実数の整数乗) ISIGN 符号のつけかえ(整数形) べき乗(実数の実数乗) SIGN 符号のつけかえ(実数形) e・)- logtノX ヽ//: xL 名古屋工業大学学報 355 第23巻(1971) 5-1.演算実行ルーチン 補助ルーチンを除いた各種の演算サブルーチンを,組 み込み関数と共にTable lに示す。 5-2.制御ステートメント実行ルーチン GO 制御ステートメントは無条件 ずれもFig. Bootstrap TOを除いて,い の入口 3のような2語以上で構成されているが, いずれも実行時の処理は簡単である。 5--3.入出力ステートメント実行ルーチン READ文, WRITE文の実行は, 容を参照しながら, Fig. FORMATの内 22のような形で行われる。 FORMAT文に制御の流れがきた時は,エンド・コ ードまで読み飛ばし,次の命令の実行に移る。 5-4.オブジェクト再入力用 LOAI)ER Fig. パンチ出力されたオブジェクTl イラーの一部を壊して再入力する。 (Fig. 23) Loader 6.文 法 本FORTRANで使用できるステートメントは次の WRJTE .READ 23 ・プログラムをコンパ とうりである。 (1)算術代入文 (2)無条件GO TO支 (3)計算型GO TO支 (4)算術'IF文 (5) DO文 (6) CONTINUE文 (7) STOP文 (8) PAUSE文 (9) CALL文 (10) RETURN文 (ll) READ支 (12) WRITE文 (13) FORMAT文 (14) DIMENSION文 任5) SUBROUTINE文 (16)文関数定義文 (17) END文 主な制限事項は次のとうりである。 (1)整定数の絶対値は 2147483647 (281-1)を越 えてはならない。 (2)実定数の絶対値は約10士38 を越えてはならな い。 (3)実定数は小数部,整数部とも9桁までとする。 Fig. 22 READ/WRITE executer (4)変数名は4文字までとする。 (5)文番号は65535以内の符号のつかない整定数 356 Bulletin Nagoya of institute of Technology (変数の数) + (定数の数) L-E ≦256 600 (7)文番号は96個までとする。 CONTINUE AA-A(L, (8) DOの深さは10重(入出力リスTl中のDOほ Ⅰ) 5, IF(AA)3, 含まない)までとする。 5 WRITE (9)配列は2次元までとする。 H, (ll) FORMAT中の変換記号ほⅩ, A, 9999 3DO700K-I, Ⅰ, F, NI ALK-A(L, Eのみとする。 す び 本FORTRAN 700 K) A(L, K)-A(I, A(I, K)-ALK 200 に,種々の大虫,小虫が見つけられ,その都度コンパイ A(I, N1 ∫)-A(Ⅰ, ∫)/AA ラの改造を行って,現在はデバッグもほぼ完了したと思 DO300K-1, われる。 IF(I-K)1,300, 1 いままでの使用結果から次の諸点が明らかとなり,雫 (1)コンパイル速度 PTR の性能に負うところ が多く, HIPACIO3のほぼ3倍であるt〕 A(K, 300 CONTINUE 100 CON■TINUE C BY TANEOUS program C LINEAR T. EQUATIONS SEP. FORMAT (Ⅰ4) 1020 FORMAT (F20. 5) 1030 FORMAT(24HNUMBERS WRITE A 6, 1040 FORMAT 1050 FORMAT(/5X, 1060 FORMAT '71 EQUATIONS (E15.7, ; 2HX(, (22ENO /) 4E16.7) UNIQUE 12, 3H )-, E14.7) SOLロTION !.T.I) (20, 21) END 1010) N (3)システム入力に要する時間 PTRの性能とコンパイラーのコンパクトさが Nl-N+1 READ(5, 1020) ((A(Ⅰ, ∫), ∫-1, (6, 1030) N 500 WRITE(6, る23秒で, FORTRANシ′ステム・テープを読 (4)コンパイル量 1040) (A(Ⅰ, ∫), ∫-1, Nl) 1pass で実行することのできるソース・プロ グラムの大きさは最大200ステートメンTlであっ N AA-0. たが,これはIFと DO600K-I, AAB-ABS N) HIPACIO3の1/10以下にあた み込むことができる。 Ⅰ-1,N DOIOOI-1, 大きく効いて, Nl) Ⅰ-1, WRITE 500 OF (6, 1000) READ(5, DO ELIMI BY Ⅰ3/r14HCOEFFICIENTS C DIMENSION N (A (K, IF(AAB-AA)600, GO TOが多かったから で,普通は100ステートメントぐらいまで可能で ある。 I)) 600, 2 N) SIMUL itキ METHOD GAロSS-JORDAN OF EQUATIONS NIWA Ⅰ-1, Nl), SOLUTION 1010 N-, SIMUL J) 1050) (Ⅰ,A(Ⅰ, (57H*** NATION い)は45秒である。 C J)-AKI*A(I, ¥*/) 程式)の場合,清算時間(入出力時間を含まな Sample FORMAT TANEOUS と同程度 24のサンプル・プログラム(20元連立方 24 N1 J)-A(K, WRITE(6, 1000 整形数演算の場合HIPACIO3の2倍程度 Fig. 1 I) 400J-Ⅰ, 400 (2)実行速度(莱,除算オプションなし) 実数形演算の場合HIPACIO3 N AKI-A(K, DO 用的には,まず満足のできるものであろう。 コンパイル速度は K) 4DO200J-1, が一応完成してから8ケ月ほどの間 Fig. 3 (6, 1060) STOP (1q)配列として使用する変数名ほ最大15個とする。 7.む (]-97り 23 2 AA-AAB でなけれはならない。 (6) Vol. 今後の問題点としては,オブジ工クト領域を小さくし 名古屋工業大学学報 ないで,できるだけ文法の制限をゆるめ,拡張が容易な 終りに,本FORTRANの開発に当り,種々ご便宜を ところほ含める。すなわち, (1) COMMON文, 357 第23巻(1971) はかっていただいた沖電気工業株式会社関係各位,なら EQUIVALENCE 文を入れ びにプログラミングを手伝っていただいた丸永哲男氏と 雁木秀一氏,また日頃適切なご助言をいただく名古屋大 る。 学理学部近藤一郎助教投の方々に深く感謝いたします。 (2) FUNCTION文を入れる。 (3)変数名を5ノ-6字までにする。 参 (4)型宣言文を入れる。 (5)改行制御を可能にする。 などである。またハードウエアの拡張に伴う, TRANシ′ステムの拡張を容易にすることも重要な課題 考 文 献 1)宇野,和久田,山崎,栗田;沖電気時報, FOR・ (1971) 2)岸田孝一;システム・プログラム入門,日本出版 協会 である。 3) JISハンドブック(情報処理),日本規格協会 88, p.I
© Copyright 2026 Paperzz