❶ 編譯的哪個階段(詞法分析,語法分析,語義分析
在編譯原理中,語法規則和詞法規則不同之處在於:規則主要識別單詞,而語法主要識別多個單片語成的句子。詞法分析和詞法分析程序:詞法分析階段是編譯過程的第一個階段。這個階段的任務是從左到右一個字元一個字元地讀入源程序,即對構成源程序的字元流進行掃描然後根據構詞規則識別單詞(也稱單詞符號或符號)。詞法分析程序實現這個任務。詞法分析程序可以使用lex等工具自動生成。語法分析(Syntax analysis或Parsing)和語法分析程序(Parser) 語法分析是編譯過程的一個邏輯階段。語法分析的任務是在詞法分析的基礎上將單詞序列組合成各類語法短語,如「程序」,「語句」,「表達式」等等.語法分析程序判斷源程序在結構上是否正確.源程序的結構由上下文無關文法描述.語義分析(Syntax analysis) 語義分析是編譯過程的一個邏輯階段. 語義分析的任務是對結構上正確的源程序進行上下文有關性質的審查, 進行類型審查.語義分析將審查類型並報告錯誤:不能在表達式中使用一個數組變數,賦值語句的右端和左端的類型不匹配.
❷ 關於編譯原理中語義語法的理解
一種語言是合法句子的集合。什麼樣的句子是合法的呢?可以從兩方面來判斷:語法和語義。語法是和文法結構有關,然而語義是和按照這個結構所組合的單詞符號的意義有關。合理的語法結構並不表明語義是合法的。例如我們常說:我上大學,這個句子是符合語法規則的,也符合語義規則。但是大學上我,雖然符合語法規則,但沒有什麼意義,所以說是不符合語義的。
❸ 編譯程序是什麼意思編譯是什麼意思
編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。
解釋程序是一種語言處理程序,在詞法、語法和語義分析方面與編譯程序的工作原理基本相同,但在運行用戶程序時,它直接執行源程序或源程序的內部形式(中間代碼)。

(3)編譯的語法擴展閱讀:
結構:
編譯過程分為分析和綜合兩個部分,並進一步劃分為詞法分析、語法分析、語義分析、代碼優化、存儲分配和代碼生成等六個相繼的邏輯步驟。這六個步驟只表示編譯程序各部分之間的邏輯聯系,而不是時間關系。
編譯過程既可以按照這六個邏輯步驟順序地執行,也可以按照平行互鎖方式去執行。在確定編譯程序的具體結構時,常常分若干遍實現。對於源程序或中間語言程序,從頭到尾掃視一次並實現所規定的工作稱作一遍。每一遍可以完成一個或相連幾個邏輯步驟的工作。
可以把詞法分析作為第一遍;語法分析和語義分析作為第二遍;代碼優化和存儲分配作為第三遍;代碼生成作為第四遍。反之,為了適應較小的存儲空間或提高目標程序質量,也可以把一個邏輯步驟的工作分為幾遍去執行。
❹ 編譯原理的語法
使用「三二術」替代「語法樹」。
不管是常數、對象變數、函數,還是「()」,表達式可以看成具有輸出的中間量
量1 + 量2 - 量3 * 量4 & 量5 > 量6
按照表達式的從前到後的順序,先取表達式三個量和兩個計算符,把其中兩量和一符優先計算,結果存放在中間量之中,而後再順序取表達式一符一量,變成新三量兩符,重復兩量和一符優先計算,直到剩兩量和一符,再得到最後計算結果。

❺ 什麼是編譯
編譯(compilation , compile) 1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。 2、用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。 編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
編譯語言是一種以編譯器來實現的編程語言。它不像直譯語言一樣,由解釋器將代碼一句一句運行,而是以編譯器,先將代碼編譯為機器碼,再加以運行。理論上,任何編程語言都可以是編譯式,或直譯式的。它們之間的區別,僅與程序的應用有關。
❻ 編譯和譯有什麼區別
譯表示直譯,原來表達的什麼意思就翻譯成什麼意思,編譯表示經過翻譯者的稍微加工,把原來作者的意思加以潤色、組織再表達出來的文字。
❼ 編譯原理 while 語句文法
while(條件)
{
.......;//語句
X++或者X--;//做自增或自減運算來達到循環的過程
}
while後面跟一堆小括弧,裡面的條件判斷,類似IF語句,當條件滿足時做以下語句的循環,條件不滿足後直接跳出循環;
例題:
int i=0;//初始化i=0
while(i<5)//i=0滿足判斷的條件,進入循環語句
{
i++;//做自增運算,當i+到5時跳出循環,因為i不小於5了
}
printf("%d",i);//此時i的值為5
❽ 編譯原理
編譯原理):利用編譯程序從源語言編寫的源程序產生目標程序的過程; 用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。
編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成

(8)編譯的語法擴展閱讀:
編譯程序的語法分析器以單詞符號作為輸入,分析單詞符號串是否形成符合語法規則的語法單位,如表達式、賦值、循環等,最後看是否構成一個符合要求的程序,按該語言使用的語法規則分析檢查每條語句是否有正確的邏輯結構,程序是最終的一個語法單位。
編譯程序的語法規則可用上下文無關文法來刻畫。語法分析的方法分為兩種:自上而下分析法和自下而上分析法。自上而下就是從文法的開始符號出發,向下推導,推出句子。
而自下而上分析法採用的是移進歸約法,基本思想是:用一個寄存符號的先進後出棧,把輸入符號一個一個地移進棧里,當棧頂形成某個產生式的一個候選式時,即把棧頂的這一部分歸約成該產生式的左鄰符號。
❾ 編譯原理 語法
編譯原理不同教材用的表示不太一樣,翻譯也五花八門,我不是很確定你這個活前綴是什麼意思。我按我知道的告訴你,我用「。」表示狀態的位置,你的書上可能通常是一個黑點表示,先要建立文法的狀態集合:
S1:S->。a
S2:S->a。
S3:S->。^
S4:S->^。
S5:S->。(T)
S6:S->(。T)
S7:S->(T。)
S8:S->(T)。
S9:T->。T,S
S10:T->T。,S
S11:T->T,。S
S12:T->T,S。
S13:T->。S
S14:T->S。
歸集狀態,和狀態轉換關系(這應該是要畫成圖的,這里沒法畫。。。)用I表示
I0:S1 S3 S5 S9 S13
輸入a,I0->I1
I1:S2
輸入^,I0->I2
I2:S4
輸入(,I0->I3
I3:S6 S9 S13 S1 S3 S5
歸約S,I0->I4
I4:S14
歸約T,I0->I5
I5:S10
歸約T,I3->I6
I6:S7
輸入),I6->I7
I7:S8
輸入,,I5->I8
I8:S11 S1 S3 S5
歸約S,I8->I9
I9:S12
輸入a,I8->I1
輸入^,I8->I2
輸入(,I8->I3
輸入a,I3->I1
輸入^,I3->I2
輸入(,I3->I3
然後你要建立狀態轉換表,網路不能畫表格。。。,你將就看看( $是結束符啊.還有你的文法沒有開始,即S')
先把題目中的規則編個號:
(1) S->a
(2) S->^
(3) S->(T)
(4) T->T,S
(5) T->S
action goto
狀態集 a ^ ( ) , $ S T
0 s1 s2 s3 14 10
1 acc
2 acc
3 s1
因為沒有S'不知道最終怎麼規約