編譯原理中要點簡析

2021-08-25 12:22:23 字數 564 閱讀 3938

一、文法

0型文法又叫短文法,其能力相當於圖靈機。滿足a—>b中a包含非終結符

1型文法又叫上下文有關文法,其能力相當於線性有界自動機。滿足|b|>a ,a->空除外

2型文法又叫上下文無關文法,其能力相當於下推自動機。滿足1型文法的同時要求a是非終結符(對比0型文法)

3型文法又叫正規文法,其能力相當於有限狀態自動機。滿足2型文法要求的同時要求它是右線性或左線性(即a->a|ab或a->a|ba)。(要麼為右線性,要麼為左線性,不能兩者都占有。只能有乙個終結符)

二、確定有限自動機(dfa)和非確定有限自動機(nfa)

m=(s,e,f,s0,z)

在dfa中s0是唯一的,而在nfa中s0確實乙個非空的集合。

nfa轉化為dfa的方法採用的是子集法。首先確定nfa的初態集,然後由初態集推出輸入每種條件後的狀態,對這些狀態進行不重複編號,然後將新產生的狀態集重複初態集的過程,直到無新狀態集產生為止。由每種狀態集的編號形成的自動機就是dfa了。

三、正規式與有限自動機的轉化

正規式的基本規則如下所示:

轉化的原則如下所示:

乙個例題:

ObjC中KVO原理簡析

kvo的全稱是key value observing,也稱 鍵值監聽 可以用於監聽某個物件屬性值的改變。通常我們通過addobserver forkeypath options context來監聽某個例項的某個屬性變化。當該屬性的值發生變化的時候會通過 void observevalueforke...

jQuery原理簡析

jquery原理簡析 function selector,context function jquery selector,context if typeof selector function 我們想要 selector 時就獲得乙個元素,且裡面有一些方法。這些方法要繫結在原型prototype上...

Android handler(原理簡析)

顯示到我們的螢幕上。此時乙個android新手上來說,那簡單啊,直接寫上網路請求獲取就行了,獲取到了再將直接放到對應的控制項上就行了啊,這有什麼值得思考的啊?修改ui只能在主 ui 執行緒中 1.我們把需要傳送的訊息打包成message物件 2.handler將打包好的message物件傳送給mes...