軟了個考 但是研究起來總跟吃了炫邁一樣,哎

2021-06-26 03:53:19 字數 2458 閱讀 5121

借了本專業課的書來看終於是又搞懂了一點點。

咱們上回書說道,文法是分0123型的,文法是編譯原理的基礎,計算機就是根據這些事先寫好的文法來判斷我們輸入的語句結構時候合法。舉個例子來說,我們定義乙個string型別的變數的時候,要輸入「string strexample」對吧?那麼因為vs或是eclipse等軟體事先設定好了一句文法「string->字串」這個意思就是在某某語法中通過string這幾個字母,能推出字串這個型別來。而我們的資料基本上都挺抽象的,「a->a」,簡直***。

總結一下,文法就是乙個規則。可能寫成那樣大家不熟悉吧,那麼變一下,f(a)=a,這樣應該都認識了吧。

好了,那麼我們繼續。有時候看著一大堆的文法是不是很難受?這時候有人發明了乙個叫做語法推導樹的東西,一般我們畫這個推導樹是根據上下文無關文法,也就是2型文法畫的。至於有關無關的區別,也很簡單,一會說,先接著來推導樹。

樹表示結構,那麼語法推導樹表示的就是語法結構,畫法也就是根據文法一條一條的去執行就行了。比如有乙個s->aab|a。那麼分解一下就是s->aab,s->a。那麼就這麼畫。

不許吐槽畫的難看- -。

那麼a、b都是大寫,上次說這個是非終結符,也就是說推到這裡是不行的,因為計算機還不知道輸入的a、b到底代表什麼,那麼我們做題來說後面肯定有其他的文法,a->asb,b->ab。

然後就是這麼個樣子。

而這個文法的推到結果就是aaaabab,是不是比單純的文法清晰多了?

那麼剛才說了這個是上下文無關文法,即2型文法,上次說了,2型文法左邊全是大寫,所以遇到大寫的可以隨便推,不用管上下文是什麼,而有關的文法呢?aa->abc這樣就是有關的,只有aa在一起才能推abc,所以要關注上下文是否是符合文法的才能推。

那麼我們再進一步,當需要描述3型文法的時候用到的是另一種規範,叫正規式。這個我猜是因為在3型文法是會出現a->aa這種情況的,所以這就是個迴圈,畫圖就畫不出了。正規式其實也簡單,一共就三個規則。

細節就不去追究了,大概就是這個樣子吧。

後面是有窮自動機的簡單說明。我們寫好了文法,當然是要計算機去識別,有窮自動機就是一種能識別的裝置,他能準確的識別正規式集合。

有窮自動機有確定不確定之分,而區別僅僅是初態是乙個還是多個,乙個就是確定有窮自動機,這裡我只說一下由文法畫有窮自動機。

首先在自動機中加入乙個終態z,表示整個自動機的終結。然後每乙個大寫的字母就是乙個結點,小寫字母可以看做是路徑。

例如s->aa,就可以畫成這樣。

而a->ba這種能推出自身的就是這樣。

還有一種情況,是直接到終態z的,比如b->ε。那就直接畫到終態就好了。

一大堆文法的話就按照大寫是結點,小寫是路徑這樣畫就行了。當然有時候會有01什麼的情況,當做終結符處理就行了,也當路徑一樣畫,最後畫的順眼就行了。

我就說這是走迷宮吧。。。

行了,寫的差不多了,再來個不確定有窮自動機轉化確定有窮自動機實在是看不動了。總的來說僅僅看這些定義還挺複雜的,再加上那些作者們總喜歡把很容易理解的東西寫的很難很難,就造成了有人說看不懂,其實還是老師講過的那個道理,一上來就認為自己看不懂,那就肯定看不懂了。寫完這篇部落格還剩下好多問題,一些定義是看懂了,做題還夠嗆,看來還是理解的不夠,需要做做題加深理解了。

以上

軟了個考 還好 過了

在家一直都發愁,部落格怎麼辦,實在是寫不出一篇jquery和ajax的簡介什麼的,畢竟脫離了環境總是學不下去的,應該快回去了吧。早上醒的時候看到軟考成績出來了,忍不住還是查了一下,當時考完的就覺得應該沒什麼大問題,平時崩盤也就蹦在選擇題上,這次的題格外的簡單,應該是穩了。我看成績之前有人告訴我下午題...

軟了個考 資料結構總是這麼苦大仇深

這次先聊聊資料結構吧。說起來慚愧,到我們專業學完那本書,我都不知道資料結構的老師叫什麼,妥妥的被c語言給sei那了。直到暑假的時候,看自考書才又算是重新學習了一遍資料結構,哎,給我大數信丟人了啊 讓我仔細的說說,其實我也說不出來,這應該是第二遍看資料結構了,大概就是清楚了棧和佇列,樹和圖這種結構的區...

軟了個考 作業系統好像沒我想象的辣麼簡答啊

說起來作業系統,在大學的課堂摧殘下學了有大概乙個禮拜的時間,掌握的東西也就是一些些基本的概念,一直到前幾天再次看了一遍這些知識,依然沒有學到什麼高深的東西。好像一直都沒把這門課放在最難那個級別上,但是看了一遍以前發的專業課的書後發現這玩意研究起來也是個沒完。所以,淺嘗輒止,涉及到軟考的部分大概就是兩...