属性付正規翻訳記法と属性付構文向き翻訳
(昭和58年5月31日 原稿受付)
情報工学教室 山之上 卓
〃 安 在 弘 幸
Attributed Regular Translation Form and Attributed Syntax−Directed Translation
by Takashi YAMANOUE
Hiroyuki ANZAI
Ab8traet
Attributed Regular Translation Form(qrammar), a kind of attributed syntax−directed translation schemes, is presented by augumenting RTF given by the previous reports. The scheme is aUowable to attach attributes to the nonterminal and the action symbols, and to use assignment−statements, write−statements and predicates directly instead of the action symbols asSociated with them. The scheme is transformed into an attributed syntax−directed translator by our compiler generating tool MYLANG.
As examples, some schemes defining the calculation of arithmetic expressions and the recognition and translation of context−sensitive languages are shown together with resωts 6f、
execution of systems which were transformed from the schemes by MYLANG. Furthermore,
translation of if−statement is discussed, and a BASIC program and its executed result are shown,
concerned with a mini−BASIC compiler developed by MYLANG.
Lまえがき 我々は前継までで示したオートマトンの醐生成シ
ステムを拡張して,属性付オートマトンの自動生成シス Knuthによって与えられた属性文法(attribute テムMYLANGを開発した。このシステムは,属性付 grammer)1}は,言語処理系の生成システムの道具とし RTFを入力することによって,属性付RTFで定義され て最も有望なものの一つである。これは今までの構文解 た属性付構文向き翻訳を行う系を自動的に生成する。
析の技術をそのまま使って言語の構文と意味の仕様を与 本システムを用いてmin輌一BASICのコンパイラを開 えることができるからである。 発することができた。4章において,mmi−BASICのIF 本報告では,前報告までで示した正規翻訳記法(Reg・ 文を例にとって, mini−BASICのコンパイラにおける属 ular Translation Form.:RTF)14)・6)・7}を拡張して,属性 性付構文向き翻訳を説明する。
を加えた属性付正規翻訳記法(Attributed Regular なお本システムは,UCSD PASCALシステム,九工大 Translation Form:属性付RTF)を与える。属性付 情報処理教育センター,九大大型計算機センターで稼動 RTFは,属性付構文向き翻訳(attributed syntax−di一 している。
rected translation)を行う系を定義する。
_ 2.属性付RTF RTFに属性を付加することによって, RTFの中で言
語の意味を表すことができるようになるばかりでなく, Knuthは属性文法(attribute grammer)を与えたと)こ BNFや拡張BNFなどの記法では定義できなかった広 れは文脈自由文法において,プログラム言語の意味を記 い範囲の文法も定義できるようになる。 述するために,非終端記号に属性と呼ばれるパラメータ
を付加させ,属性の間の関係の記述を与えて,意味の形 (・哺F
式化を計ったものである。属性には相続属性と合成属性が くs>.......[PLi§コ..:...、
ある。導出木において,相続属性は根から枝の方向へ属 i ウピ ロめ
性の値が移動することを表し,合成属性は枝から根の方 (・・ACTI。欄
向へ属性の値が移動することを表す。属性の値はse・ P良oεξ;¥(E(祷CPLusコ宮粁)PLus・
mantlc rulesによって定められる。Lewisらは文脈自由 εN;:°x+Y 文法に活動記号を加えてtranslation grammerを定義
(鋳?εND簑)
し,これに属性を加えて attributed translation
(a)RTF grammerとしたきL3)Wattは属性の値によって,すなわ
ち文脈に依存して生成規則の適用を変えることができる
ことを示した61これをrule splittingといい,それによ (祷?R了F .
る構文解析の方法を属性向き構文解析(attribute−dir㏄ted 〈5>・......[(x・.x,Y}コ......、
parsing) と言うさ, ウεND鯵) :
属性付正規翻訳記法(attributed regular translation (b)属性付RTF form:属性付RTF)は正規翻訳記法(regular trans・
. 図2.1属性付RTFによる簡潔な記法 latlon form:RTF)を以下のように増強したものであ
る。
1.RTFに属性を付加した。ここで属性は通常のプログ の中に入れる。
ラム言語における変数に対応している。非終端記号と [?(Pぴ1,x2…メ。ノ)]
活動記号に付加する属性には相続属性と合成属性の2 活動記号[α]の記号列としての意味を次のように 種類があるが,これはサブルーチンの引数における値 定義する。
引数と変数引数にそれぞれ対応している。例えば非終 α=▼?(Pα1,κ2,…,x。力▼の場合 端記号に付けられる属性は次のように記述される。 [α]= λifP向, x2,…,劣,ノ 〈X(A1, A2/A3, A4)〉 φif not P{泌1,κ2,…x認ノ
ここでA1, A2, A3, A4が属性である。このように, α=▼?(Pぴ1, x2,…,κ。ノ)ワでない場合 属性は▼(▼▼)▼でかこんで表している。A2とA3の間に [α]=λ.
ある▼/▼は相続属性と合成属性を区別するのに用い つまり活動記号の中に述語を入れることによって,
る。▼/▼の左側にある名前が相続属性であり,右側にあ その真偽により入力文字列を制御することができる るのが合成属性である。この例ではA1, A2が相続属性 訳である。例えば[〜ぴ=γ刀▼α▼は述語κ=夕が であり,A3, A4が合成属性である。非終端記号が相続 真のときはλ▼α▼=▼♂となり,劣=yが偽のときは
属性しか持たない場合には〈X(A1, A2/)〉のように φ▼α▼=φとなる。
書き,合成属性しか持たない場合には〈X(/A1, A2)〉 属性付RTFの例として,算術式の演算系を定義した のように書く。 属性付RTFと活動ルーチンを図一2.2(a)に示す。この例 2.活動記号の増強を行った。 で活動ルーチンは数字の読み取りと,整数への変換を
(i)活動記号の中で直接に代入文や出力文を記述でき 行っている。この属性付RTFをMYLANGに入力する る。このことによって簡潔に翻訳系の定義を行える ことによって生成された演算系の実行結果(属性付構文 ようになる。例えば今まで図一2.1(a)のように記述し 向き翻訳の結果)を図一2.2(b)で示す。
ていたものは,図一2こ1(b)のように書けばよい。 生成された演算系に対して,
(ii)活動記号の中に述語を導入した。このことによっ 〜3+4×9.
て属性付RTFの中でrule splittingを表すことが を入力したときにできる導入木と属性の値の流れを図 できる。 −2.3に示す。この例では述語は使っていないが,これは 述語P(泊,κ2…,x。)は次のように書いて活動記号 次の章で別の例をあげて示す。
{芦?CAし1CU筒》
(得?RTF
<P>禽( ? 〈E(!X)〉 . 〔 URlTεLN(X))コ}帽
くε《ノX)〉■〈τ《 X)〉 ◆ 〈T《ノX1)〉[《XlロX◆X1)] ◆ ρ一 〈T(!X1)〉〔《X,雷X−X1}])●」
〈T(ノX}〉エ《F《ノX)》 特 《F(!X1》〉[(X,ロX筒X1}] ◆ ノ 〈F(!X1)〉[《X書富X/X1}])債:
〈F( X}〉容く1N†EGε費(ノX》〉◆ 〈E(!X)〉 》 5
《1NTε6εP《!X}〉■[CL]【NUH][CON〕([NUH〕[CONコ)何〔NVAP] 6
?εNO筒)
《鯵?ACTION筒,
PPOCEOUPE εXECUTE: )A費 NAHε8SY門80L;
PPOCε09」Pε(日〔Cしコ■鋳)CL↓ 8εGIN NAHE.雷゜ εNO;
PPOCεOUPE{特〔NUH]8併}NUH 5 BEGlN TNUHBερ E「↓0;
PρOCεOUPE《掲〔CON3.%,CON: 8εG墓ト1ト6AHE:雷CONCAT(NAド!E.CH) ENO;
ρρOCεDU間ε(● 【NVARコ●筒)ANVA爵9εGIN STACK 1[5了P1〕83N)Aρ(NAHε} εNO;
《冊ウε〜0聾}
(a)属性付RTFと活動記号による算術式演算系の定義
●
令!聯2聯3寺4+5十6・卜7◆84⇔◆10.
55
?3◆4パ9−:3ハノ3◆5.
1白
NO費HAL Eト沿
(a)をMYLANGに入力することによって生成された演算系の実行結果 図2.2算術式演算系
<P> A・B・C・を定義した属性付RTF,算術式と論理式の逆 ポーランド記法への変換を定義した属性付RTF及びプ ? 〈(認〉 . 〔(u良ITεLNI認)コ ログラム図式としての属性付RTFをあげる。なお,これ
一
らの属性付RTFはMYLANGに入力することによっ て,属性付構文向き翻訳を行う系に変換される。この系 ?《㍊〉Ψ了(ノ36}>t(豆.《ぷ1)、 は実際に実行することができる。
3.1. 文脈依存言語AnBηCπを定義する属性付RTF BNF記法や拡張BNF記法では文脈自由の範囲の言
できる。例としてAηBりぴ,鬼≧1,を定義する属性付 RTFを図一3.1に示す。これは文脈依存の言語として有 3
Kは℃ の回数を表す。すべての回数を数え終わった後,
図2 3 竪舗霊集;鮭;㍊を入力 これらの雛を相繍性として〈T( K/)〉}・引き渡
す。〈T(1,」,K/)〉では属性1,」, Kが等しいかどうか を判定している。1=J=Kのときだけ[?(1=J)][
?(1=K)]がλになり,それ以外はφになるから 3.属性付RTFの例
A B」ぴ=A〃BπCπ,η≧1,が定義されていることにな この章では属性付RTFの例として,文脈依存言語 る。〈DMM>と活動ルーチンはダミーである。
(粁ウSENS祷》 〈F(/T)〉=〈FO(/T)〉十▼一▼〈FO(/T)〉
(誉つ良TF
([?(T=0)][CHS]十[?(T=1)][NOT]);
〈S>=〔(1,=0)]《 Aノ〔(18治1十1)コ)骨
腺::呂1;ll:;i昆隷‡1;;;: において,単項演算子▼一の後に続く因子〈FO(/T)〉の く↑(1,J,K!}〉 ;
型は合成属性Tで表される。T=0,っまり因子が整数
〈T(1,」,K/)〉雰[?(1工J)コ[?(1■K)コ :
〈0洲〉。[D刷、 型であれば[CHS]で▼$CHS▼を出力する。 T=1・つま 。END、) り因子が論理型であれば[NOT]で・NOT・を出力す (・・^cT!o刷 る。ここでは合成属性によりrule splittingを行ってい
むにピロ ピ ピ ピヒ アピハ
1;2:器9!ε《鯖[o洲コ培骨)DHH;BεGIN uRITεLN END る。これをsynthesized rule splittingと言う。
〈PLUS(T, T1/)〉=
AABBCC
[?(T=0)][?(T1=0)][PLUS]十 NOR門AL ENO
[?(T=1)][?(T1=1)][OR];
AAAABB88CCCC
は属性T,T1が両方とも整数型のときに▼+▼を出力し,
NO費HAL END ●
属性T,T1が両方とも論理型のときは▼.OR.▼を出力す AAABBBC
ることを表している。属性T,T1・の値,っまり型が異なっ ERROR IN τEXT
ていればエラーとなる。ここでは相続属性によって,rule 図3.1文脈依存書語AnBnCnを定義する属性付 slittingを行っている。これをinherited rule splitting
RTF と言う。
〈MINUS(T, T 1/)〉や〈DIVIDE(T, T 1/)〉で 3.2.算術式と論理式の逆ポーランド記法への変換 は論理型に対する規則がない。従って図一3.2のように を定義する属性付RTF ?A/?Bという入力があればエラーとなる。
この節では属性付RTFによるrule splittingを紹介 以上のように属性付RTFを用いることによってat・
する。 tributed directed parsingを行うことができる。
算術式と論理式を逆ポーランド記法に変換する属性付 3.3.プログラム図式としての属性付RTF
RTFを図一3.2に示す。これは次のような構文と意味を 属性付RTFは,一種のソフトウエアモデルとして解 持っ。 釈できる。これはプログラム図式(program schema:
○型には整数型と論理型がある。整数型の変数と論理 Manna)5)を表している。例として算術式の計算を定義 型の変数は論理型の変数に▼P▼をつけることによっ する属性付RTFを示す。図一3.3は5の階乗と,1から10 て区別する。X, A, Bなどは整数型の変数であり, までの和を求める属性付RTFであり,図・3.4はこれに ?X,?A,?Bなどは論理型の変数である。論理型の定 対応するプログラム図式である。ここで〈FAC(X/Y)〉
数は真値を!T,偽値を!Fで表す。 はXの階乗をYで返すことを表し,〈SAM(X/Y)〉は1 0論理式において▼+▼は,ORを表し,▼*▼はAND からXまでの和をYで返すことを表している。
を表すことにする。単項演算子▼一はNOTを表
4.MYLANGによるmini−BASICコンパイラの開発 す。演算順位は単項演算子▼一▼が最も強く, 次に
▼*▼,▼+▼が最も弱いとする。 属性付RTFと活動ルーチンでminLBASICコンパ この例で,属性T,T1, T2は型を表している。属性が イラを定義し,これをMYLANGに入力することに 0のときは整数型を表し,1のときは論理型を表す。 よって,mini−BASICコンパイラを生成させることがで 属性が表す型に依存して,例えば▼+▼が算術和を表す きた。mini−BASICコンパイラは属性付構文向翻訳を行
か,または論理和を表すかが,rule splittingによって識 う。この章ではIF文を例にとって属性付構文向翻訳を 別される。rule splittingは,〈F(/T)〉,〈PLUS(T, T1/)〉, 説明する。
〈MINUS(T, T1/)〉,〈MULTI(T, T1/)〉,〈DIVIDE(T, mini−BASICのプログラム例と実行例を図一4.1に示 T1/)〉で行われている。 す。これは128と48の最大公約数を求めるプログラムで ある。
(畳?91EXPR筒)
(鯖?黛TF
《A>■ 〈V《ノ了1)〉 ロ 〈E(!T2)〉[?《T1●↑2)]〔A551GN] ;
〈ε{ノT)〉宕 く†(ノT)〉(4・ 〈T(!T1}〉〈PLU5(T,T1!)〉 ◆ 一〈T{ノ丁1》〉〈ト¶INUS(T,T1!)〉 )筒 ;
〈T《ノT)〉エ 〈F(クT}〉《,併へF《!T1))ぐHULTI(T・T1ノ)〉 ◆ ! くF(/T1)ノ〈DIVIOE{T,T1!}〉 }鵜 ;
(F(!T)>3 〈FO(ノ了}〉 十 ⇔<FO(/†))( [ウ(T20)]〔CH5] 十 [ウ(丁臼1)コ[NOT] ) ;
〈F「o(!了》〉定 くV{ノT)〉 十 <C(!†)> 4・ ((ε(!T}〉 ) :
〈V(!了)〉零 《NAHE>〔(T,=0)コ〔INAHE] ÷ ? <NAト¶E>〔ζTま=1}][BNAHE] :
〈NA門E>治 〔CLNコ[AしP〕[CON]( ([ALP]十〔NUHコ)〔ζONコ )筒 ;
<C(!†)>3 〈INTEGE舟〉[(T;宕0)コ[INT] + ! 《 T [了] ÷ ,F 〔F〕)[《T881)コ 昌
〈1NTε〔5E日〉エ [CLN][NU門][CONコ( [NUH〕〔CON〕 )賛 己
<PLUS(T,T1/)》 呂〔?(T=0)][?(丁1=0)][PLUS] 十 [?cr治1)コ[?(T1=1)3[OP]
〈HINUS{T,T1!)〉 ■〔?(T30)][?(T1エ0)][HlNUS] :
〈岡ULTlcr,τ1!}〉 ●〔ウ〈T■0)コ〔?《T1=0)][HUL了!] 十 [?(丁宕1)コ〔ウ《T1雷1)][ANO] 6
<01VIOε(†,†1ノ)>3[?〈丁富0}コ[?(了1稟0}〕[DIV10Eコ … つεNO骨)
(賛?ACTI◎N縛)
PρOCεOUPε εXECUTE…
VA{尋 NAト↑ε:SYHBOL;
PPOCEOURε{祷[AsSIGN]=鱒)A551GN己 白E〔ヨN UPlTELト」( :=,) END;
PPOCEDU円ε(興1二NO了〕=鱒}PN◎T} 8EGIN ωPITE( .NOT. } END;
PρO⊂εDUρE(讐〔CHS]虫掲)PCHS↓ BE61N 匂ρ1TE( るCHSε) εND;
PPOCこDUPε《穏[T3 ●}了i }ゴヒblN U秤lTE(オ ,T,} ENn;
PρO⊂εDUPε(鱒[F]=冊)F; eE51卜↓ UPITF( F ) εND:
PO?orEOU罠ε(聾〔P」U5]治祷)PLU5; BE61N ωρITE(, 十 ) END;
Pβ}OCεOUP1三(鯵[OR]=骨)POP; BEGIN Uρ1↑E( .OP. ) ENO;
PPOCεOURE(賛〔HlNUS]貿畳)HINUS; BEGIN ΨρITE( 一 } END}
PPOCEDUF!E(員[門ULTIコエ悦}HUL†1E BEGIN Uρ1TE( 祷 ) END;
PρOCεDU侵E(済〔ANO]富特}PANO; 8E61N U}?1了E( .AND. ) END;
PPOCεOUρε(縛[Dl∨韮Oε]霜肴)DIVlDε; BEGlト↓ Uρ!TE(, /,) ENO;
PρOCEOURE《祷[CしN〕鑑祷}CLN; BEGIN NAHε:ロ, ENO;
PROCεDUI?E(賛【ALP]■聾)ALP8 BEGlN TAしPHA ENO}
PPOCEOUPE《聾[NU門]■鋳)ト礼m; 8ε〔三IN TNU門8ερ ENO:
戸POCεOUρE(循[COト」〕3聾)CON; BEGIN NAP1ε;エ⊂0ト}CAT(NA門E,CH) END;
PPOζεDURε(祷[二1NT]8粁}lNT; 8EGIN URlτε( ,NVAP《NA凹E}} END:
PρOCεOU舜ε(縛〔INAHεコ翼畳)1NAHε; 巳EGIN LjρITE( ,NA卜4E} Eト↓D;
P黛0⊂EDU費ε(骨[8NAHεコエ筒)BNAHε{ BεG1N UR l Tε( ,ウ ,NAトtE) ENO;
(祷つεト↓0賛)
(a)算術式と論理式の逆ポーランド記法への変換を定義した属性付RTFと活動ルーチン
X=A十B秘《C●0)
X A B C O 一 縛 十 38
NO罠岡AL εNO
?X3?A÷つ8賛(?C◇一?O}
?X ?A ?8 ?C ?0 .NOT. .OP. .AND. .OR. :エ NORHAL εNO
?X=?Aノ?B E良間OR IN TEXT
(b){a)をMYLANGに入力することによって生成された翻訳系の実行結果
図3.2算術式と論理式の逆ポーランド記法への、
変換系
z弓ノ筥τFA⊂(5/X}〉〔(ωP1τELN ヲ〈))]〆SAH(10!)()〉〔(転夢レ11EL日{X))」 :
FAC《X/Y .【・(X・0}3〔(Yl・1)〕・ε|,Sピ[{Z・・X−1,玉・1^C(〃ZPI(』X葡Z}]
〈SAM x/Y}〉・[伊・o)コ[《1・・1日{[・口・x川コ[{Yコ了・D〕〔u吋杜}]μi
<DHH>館〔OHP}コ :
?ENO規)
《鯵?ACTIα ) po∩しEl)UPE εXεCUTE;
Pρ∩crOUpε〈鋳[OHH〕エv}D凹Hi BE〔三1トI Uト111ELN εト10;
●♪L「〕笥)
{a)算術式の計算(5の階乗と1かち10までの和)
を定義する属性付RTF
1;:
f8《.ハト」HAし εNO
(b)(a)をMYLANGに入力することによって生成された 計算系の実行結果
図3.3 プログラム図式としての属性付RTF
〈S>エ
〈FAC(X!Y)〉治
[?《X=0)] 【(Yl81》]
)〉治
εLS巨 〔(Z3・X−1}] 〈FAC《Z!Z)〉
〔(Y3
〔(Y・雷X静Z)]
くヨみバくメノソバ エ
図3.4 プログラム図式
(◎は復帰または停止を表す)
mini−BASICコンパイラは, minLBASICのプログラ ない。 THEN以下の部分がどのくらいの長さになるか ムを3一組(Triple)に変換する。3一組はインタプリタに わかっていないからである。そこでこの分枝命令のある よって実行される。IF文を3一組に変換する属性付RTF 場所を属性Xに記憶させておく。分枝先はTHEN以下 と活動ルーチンを図一4.2に示す。IF文に対応する3一組は の部分の処理,つまり〈STDD>の部分の処理が終わった 図一4.3のようになる。 ときに決定する。ここで,活動ルーチンlTHENP(X/)1 この例では,属性は前方参照を行うために用いている。 でこの番地を属性Xの指す場所の命令の番地部,っまり 3一組における比較命令と条件分枝命令は,属性RTF 分枝命令の番地部に代入する。
の〈BOOL(/X)〉の部分で書き込まれる。しかし条件分 ELSEが〈STDD>の後に続いた場合, l ELSEユ(X/
枝命令の分枝先は,〈B∞L(/X)〉の部分では決定でき Y)1においてlTHENP(X/)1で決定した分枝命令
の分枝先を次の番地にずらす。前の番地に手続きMTX・
END(27, Y,0)にょって無条件分枝命令を書き込む。
この無条件分枝命令も,分枝先がまだ決定できないので
属性Yにこの番地を記憶させ,ELSE以下の処理が IF〜THEN〜
〈STDD>で終わった後, l ELSE2(Y/)1で分枝先を 書き込む。
このようにして属性を使うことによって前方参照を行 うことができる。
比 較
条件式の 、 条件式の
@右辺 属性X 条件分枝 内部 ラベル
THEN以下の処理
IF〜THEN〜
560TO llo … ELSE〜
10隠εH SU8PROGRA門FOR FINOING GCH : 20 1F A>88 THεN 60 了0 60 :
30 LεT Uエ1:
40 LεT A宕B 8 50 LεT 8エU ;
ゐ0 1F B80 THEN RεTU是N ; ?O Lε↑ XエA−A!B祈8 ; 80 LεT A倉B ; 90 LET 8完X … 100 GO TO 60 6 110 爵εH
120 Pε岡 丁εST OF ト 問18AslC CO柏P1LεR ; 130 」εT A牢128 i
140 LεT 8=▲8 ; エちロ さコロエ ア ム ヨ ハ
1601FA>oTHεNlF8>oTHεNG。suBlo↓ 図4.31F文から変換された3一組
170 P良INT A END RUN.
CO凹PLεTεO RUNN1ト4G...
ユコロ
鎗 5.あとがき
NOQト9AL ENO
本報告では属性付構文向翻訳系の属性付RTFによる ロピら ア
>c°HPLETEO 定義と,これをMYLANGに入力することによって生
> HYLANG SYSTE卜¶ εND.
成される翻訳系の処理について,いくつかの例題を用い 図4.1mini.BASICのプログラム例と実行例 て説明した。 MYLANGや生成される系の動作機構や内 部構造については別の機会に述べる。
現在のシステムでは属性は整数型しか使うことができ ないため,これを実数型,配列型,レコードなどが使え るよう拡張しなければならない。また強力なエラー回復 の機能や,デバッキングツールが必要である。
<1F5>・ 1F ・〈8。。」{!X,〉 ・ THεN 一・<5τOD・lTHεNP(X!)1 終わりに本システムの開発に多大な援助をいただいた 《 εLSE .曇1εL§ε1(X!Y)1〈§了D:)>1εLSε2(Y/}1)! ;
卒論生の篇田慎一君,竹中豊弘君及び橘憲倫君に深謝す る。
(川THENP(xノ}1秘}
9εGlN l_魯L{.x.).▲「「Ai8謬H了XP「情 εND;
(升IELSε1《X/Y}1掲) 8εG1》▲LBL(.L8LPT費.).NAHE言工 SYSLBL ; 参考文献
L8u.L8しP了費.}.ATA匡8・o l Y被B」PT円; 1)Knuth, D E: Se㎜ntics of Cont(選t−fr㏄白㎎uag爲. MaU1・
㌫1品÷?;?;;エ!8L仁x」 ATAM ,m、tica1 S声t,鵬∩剛2,卯127−145醐)
,。。、LBLPT臼8LPτ題 @ 2)kwi口M枇・1・ A舳・t吋丁・an・1・ti… 」・C・m輿t・・
and Sy8tem Science 9, pp.279−307(1974)
(曇1εLSE2(X!}1曇)
8εGlN LBL(・x.)・A了A1・・HTxPT良εNo; 3)Lewis, P. M. et al: Compiler Design Theory. Addison Wesley(1976)
図4.21F文から3一組への変換を定義した 4)Watt, D A: Rule Spli仕i㎎and Attribute Dir㏄ted Parsi㎎.
属性付RTFと活動ルーチン In:Semantic−Directed(わmpiler Generation. L㏄ture Notes in 比 較 条件式の
@左辺
条件式の
@右辺 属性X 条件分枝 内部 ラベル
THEN以下の処理
属性Y 無条件
@分枝
内部 ラベル
ELSE以下の処理
Compiler Science,94, Spr輌㎎一Verlag, pp.363−392(1980) 10)積山伴子: 言語処理系の自動生成 ,九工大卒業論文,(1979)
5)Manna, Z: Program Schema. In:Aho, A. V.(ed):CuF 11)Gries,.D著,牛島訳, コンパイラ作成の技法 ,日本コンピュー rents In The Theory of Computi㎎, Prentice−Hall(1973) タ協会(1978)
守屋訳: 最近の計算理論. 近代科学社PP.123−179(1976) 12)中田育男: コンパイラ ,産業図書(1981)
6)山之上他: 記号処理系のオートマタシステムによる実現 13)小林孝次郎: 情報構造 ,サイエンス社(1977)
九工大研究報告,No.44, pp.83−90(1982) 14)安在,潮崎: 再帰降下煩序変換機系とその生成機械 ,電子通 7)山之上他: オートマトン自動生成システムとそれを用いた言語 信学会論文誌,J63・1),9, pp.771−778(Nov.11980)
処理系の開発 九工大研究報告,Nα45, pp35−42(1982) 15)安在他: 半線形代数 ,第1報〜第8報,電子通信学会技術報告 8)鶴田慎一: 言語処理系の自動生成に関する研究一mini−BASIC AL80−60,61,62, AL81−4,5,38,39,74(1981)
の実現を例としで 九工大卒業論文,(1983)
9)竹中豊弘: 言語処理系の自動生成に関する研究一MYLANGシ ステムの開発 九工大卒業論文,(1983)