編譯原理 2

2021-09-29 05:11:49 字數 1152 閱讀 3111

lexical analyise

如果乙個單詞和任何乙個模式都不匹配,進行錯誤恢復。

錯誤的模式:

正規表示式

e.g. $l(a) = \$

e.g. $l(\xi) = \$

選擇操作

r|s,整體匹配$r$能夠匹配的串$s$能夠匹配的串。

$l(a|b) = l(a) \lor l(b)$

連線操作

rs,匹配$r$緊接著$s$能夠匹配的串

$l((a|b)c) = l(ac) \lor l(bc)$

重複操作

r*,匹配r模式的任意次。

$l(a*) = \xi \lor l(a) \lor l(aa) \lor l(aaa) …$

$l((ab)*) = \xi \lor l(ab) \lor l(abab) …$

$l((a|b)*) = \xi \lor l(a) \lor l(b) \lor l(ab) \lor l(aabbbaaa)…$

優先順序重複 > 連線 > 選擇

* > connect > |

元符號表達元符號使用轉義字元 \\

特殊的操作

ambiguity

e.g.

1

2

do99i=1,10

do99i=1.10

先前看多個字元,看到,和.才知道是迴圈還是賦值。

transition diagram

開始狀態,接收狀態(雙線圓圈)

使用狀態轉換表表示

狀態

模式是否是接受狀態

advanced 是否保留

finite antomata: 描述演算法的執行流程。

e.g. 上面的狀態轉換圖

nfa

有字母表,狀態集合,狀態裝歡

$s \times (\sum u \ \to \rho(s))$

編譯原理 2

使用現有語義表示方法來描述乙個語言的語義的難度遠遠大於描述語言語法的難度。上下文無關文法不僅可以描述乙個語言的語法,還可以指導程式的翻譯過程。一種面向文法的編譯技術,即語法制導翻譯技術。字尾表示式是一種將運算子置於運算分量之後的表示方法。乙個編譯器前端模型 兩種中間 形式 上下文無關文法 關鍵字if...

編譯原理複習2

先打一發廣告,我這個部落格一開始就是用於記錄演算法的學習過程的,後來乾脆想著把課堂筆記也整理整理放上來。想想這學期快結束了,下學期開始又要開始學習演算法啦。我是準備從0開始學習的,借助於高中生資訊學競賽的平台。歡迎各位各類同學加進來,笑著問我為什麼刷那麼慢,或者跟我一起從0開始。歡迎對照對邊導航欄,...

編譯原理(2) 文法推導

這一篇講一講形式文法的推導,學習是乙個持之以恆的過程,尤其是像我這種初學者了。注 這一篇的例子來自於統計自然語言處理這本書 形式文法的推導比較好理解,即按文法g中的規則p推導 的符號串,且b c是p中的乙個產生式,那麼,abc adc。1 的傳遞閉包,即 n 上的符號串xi到xi 1至少經過一步推導...