PL|構文解析の方法

以下の記法を他の2つの記法に書き換えて、メールで提出してください。

問1

 式:- + a / b c * d e この前置記法から、他の2つの記法に変換すると以下の通りになる。
式(中置記法):(a + b / c) - d * e
式(後置記法):a b c / + d e * -
また、前置記法、中置記法、後置記法の全てに当てはまる構文木の図を以下に示す。

問1
問2

 式:a > (b * (c + d) / e) この中置記法から、他の2つの記法に変換すると以下の通りになる。
式(前置記法):> a / * b + c d e
式(後置記法):a b c d + * e / >
また、前置記法、中置記法、後置記法の全てに当てはまる構文木の図を以下に示す。

問2
問3

 式:a b / c d * e + < この後置記法から、他の2つの記法に変換すると以下の通りになる。
式(前置記法):< / a b + * c d e
式(中置記法):a / b < (c * d + e)
また、前置記法、中置記法、後置記法の全てに当てはまる構文木の図を以下に示す。

問3

その他、感想

後置記法

 関数では前置記法(ポーランド記法)が使われ、式では中置記法が使われているのだと考えられるが、多くの言語はプログラマ側からはUI的にわかりやすくするために、これらの記法が使われている。そして、コンパイラがこれを構文木として解釈し、後置記法と同じ結局振る舞いをする。しかし、Smalltalkでは後置記法も使われています。最近になって、Smalltalkでは多くの機構をすべて取り入れた感じの言語だなあと思いました。つまり、OS的にいうと一般ユーザ向けに、Windowsでは最低限の機能のみを備えつけており、MacOS, Unixでは一般ユーザから玄人向けに、多くの機能を備えている。Smalltalkなどは一般向けよりも、どちらかというと玄人に近い人が使うものなのかなと思いました。

ビタミンC

 今まで完全にメディアに騙され、ビタミンCが体に良いものと思わされていたので、ショックでした。「アセロラはビタミンCがレモンの何十倍だ」とかいう宣伝文句は「腐食するのを防げる率は何十倍だ」なだけで、長持ちできるかどうかだけだった。。妙に、ミネラルウォーターにビタミンCがなぞに入っている理由がやっとわかりました。

 それから21年間も生きていて、ひたすらメディアに騙され続けていたので、ちゃんとした文献を読むように心がけようと思います。おそらくac.jpですら、勘違いしている情報があると思うので、一番は本家のサイトまたは書物だなと思いました。

トップページへ戻る