導航:首頁 > 源碼編譯 > 編譯是一個文法的句子嗎

編譯是一個文法的句子嗎

發布時間:2022-09-12 00:31:13

A. 文法的定義

文法是一個漢語詞彙,讀音為wén fǎ ,即文章的書寫法規,一般用來指以文字、詞語、短句、句子的編排而組成的完整語句和文章的合理性組織。
定義
文法即文章的書寫法規,一般用來指以文字、詞語、短句、句子的編排而組成的完整語句和文章的合理性組織。[2]

組成規律
●最簡單的語句組合一:主詞及動詞:

「我」「哭了」

「天氣」「改變了」

「哭笑」「難分」

●最簡單的語句組合二:主詞、動詞及受詞:(括弧內為隱藏語)

我愛你

「道」「可」「道」,「(這個道字)」「〈並〉非」「常道」。《道德經》老子

「打羽毛球」「是」「最好的(運動)」

「駕駛」「〈使我〉」「樂趣無窮」

●比較復雜的語句組合一:主語〈短句〉、謂語及賓語:

例:「我這個從來沒有戀愛經驗的少年人」、「竟然不知為了什麼原因而喜歡了」及「一個黃毛小丫頭」

●復雜的語句組合二:主語及復式謂語:

例:「有些頭腦守舊而自以為是的讀書人」、「認為如廁的動作不雅,」「所以寫成出恭。」

在口語中,因為說話者或受話人都知道相方的關系和說話主題,所以大都隱去主詞或受詞。但在書寫文章時,必須要清楚表明主和賓雙方。

一般結構
●動賓結構:一般口語,多是動賓結構的,即前面是動詞,後面是名片語成的。這是因為受話人明知語句的主語而不用說出來的關系。

〈你正在──主語不用說出來〉拍馬屁、

〈你真的是〉痴線(廣東慣用語)、〈你是在〉敲竹杠、〈你在〉潑冷水、〈你不要〉耍花招等。

●主謂結構,主謂(陳述)結構,即前面是主詞或主語,後面加上一個描述或動作的單字、詞語或片語組成的。這是因為說話語句中的受詞或賓語不用說出來的關系 。

多為說話語句中的動詞部分,主語和賓語也不用說出了。 例如:(這個)天曉得,、〈他的〉嘴巴軟〈了〉等。

●復詞結構

●偏正結構由兩組〈或以上〉字詞所組成的〈復合〉名詞──用作主語部分,或賓語部分。

●形容詞〈相當於英語的形容詞〉及名詞。

替罪羊、耳邊風、糊塗蟲、絆腳石等。

鬼畫〈形容詞〉符

由兩組〈或以上〉字詞所組成的短句,如謂語部分。

●動詞及副詞。

跳得很遠、大聲哭叫、清早起來

類型
文法形式

在計算機科學中,文法是編譯原理的基礎,是描述一門程序設計語言和實現其編譯器的方法。文法的描述多用BNF(巴克斯範式),而另一個重要的概念:正則表達式,也是文法的另一種形式。

文法分類

自從喬姆斯基(Chomsky)於1956年建立形式語言的描述以來,形式語言的理論發展很快。這種理論對計算機科學有著深刻的影響,特別是對程序設計語言的設計、編譯方法和計算復雜性等方面更有重大的作用。

喬姆斯基把文法分成四種類型,即0型、1型、2型和3型。這幾類文法的差別在於對產生式施加不同的限制。

多數程序設計語言的單詞的語法都能用正規文法或3型文法來描述。

3型文法G=(VN,VT,P,S)的P中的規則有兩種形式:一種是前面定義的形式,即:A→aB或A→a其中A,B∈VN ,a∈VT*,另一種形式是:A→Ba或A→a,前者稱為右線性文法,後者稱為左線性文法。正規文法所描述的是VT*上的正規集。

四個文法類的定義是逐漸增加限制的,因此每一種正規文法都是上下文無關的,每一種上下文無關文法都是上下文有關的,而每一種上下文有關文法都是0型文法。稱0型文法產生的語言為0型語言。上下文有關文法、上下文無關文法和正規文法產生的語言分別稱為上下文有關語言、上下文無關語言和正規語言。

類型說明

文法G定義為四元組(VN,VT,P,S )其中

VN:非終結符號(或語法實體,或變數)集;

VT:終結符號集;

P: 規則的集合;

VN,VT和P是 非空有窮集。

S:稱作識別符號或開始符號的一個非終結符,它至少要在一條產生式中作為左部出現。

VN和VT不含公共的元素,即VN ∩ VT = φ

用V表示VN ∪ VT ,稱為文法G的字母表或字匯表

規則,也稱重寫規則、產生式或生成式,是形如→或 ∷=的( ,)有序對,其中是字母表V的正閉包V+中的一個符號,是V*中的一個符號。  稱為規則的左部,  稱作規則的右部。

設G=(VN,VT,P,S),如果它的每個產生式α→β是這樣一種結構:α∈( VN∪VT )*且至少含有一個非終結符,而β∈( VN∪VT )*,則G是一個0型文法。

0型文法也稱短語文法。一個非常重要的理論結果是,0型文法的能力相當於圖靈機(Turing)。或者說,任何0型語言都是遞歸可枚舉的;反之,遞歸可枚舉集必定是一個0型語言。

對0型文法產生式的形式作某些限制,以給出1,2和3型文法的定義。

設G=(VN,VT,P,S)為一文法,若P中的每一個產生式α→β均滿足|β|≥|α| ,僅僅S→ε除外,則文法G是1型或上下文有關的。

在有些文獻給的定義中,將上下文有關文法的產生式的形式描述為α1Aα2→α1βα2,其中α1、α2和β都在( VN∪VT

)*中(即在V*中),β≠ε,A在VN中。這種定義與前邊的定義等價。但它更能體現"上下文有關"這一術語,因為只有A出現在α1和α2的上下文中,才允許用β取代A。

設G=(VN,VT,P,S),若P中的每一個產生式α→β滿足:α是一非終結符,β∈( VN∪VT )*則此文法稱為2型的或上下文無關的。有時將2型文法的產生式表示為形如:A→β其中A∈VN,也就是說用β取代非終結符A時,與A所在的上下文無關,因此取名為上下文無關文法。

例4.1和例4.2中的文法都是上下文無關的,下面我們再給出一個例子(例4.4),例中的文法G是上下文無關文法,G的語言是由相同個數的a和b所組成的{a,b}*上的串。

設G=(VN,VT,P,S),若P中的每一個產生式的形式都是A→aB或A→a,其中A和B都是非終結符,a是終結符,則G是3型文法或正規文法。

B. 編譯原理

編譯原理是計算機專業的一門重要專業課,旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。 編譯原理是計算機專業設置的一門重要的專業課程。編譯原理課程是計算機相關專業學生的必修課程和高等學校培養計算機專業人才的基礎及核心課程,同時也是計算機專業課程中最難及最挑戰學習能力的課程之一。編譯原理課程內容主要是原理性質,高度抽象[1]。

中文名
編譯原理[1]
外文名
Compilers: Principles, Techniques, and Tools[1]
領域
計算機專業的一門重要專業課[1]
快速
導航
編譯器

編譯原理課程

編譯技術的發展

編譯的基本流程

編譯過程概述
基本概念
編譯原理即是對高級程序語言進行翻譯的一門科學技術, 我們都知道計算機程序由程序語言編寫而成, 在早期計算機程序語言發展較為緩慢, 因為計算機存儲的數據和執行的程序都是由0、1代碼組合而成的, 那麼在早期程序員編寫計算機程序時必須十分了解計算機的底層指令代碼通過將這些微程序指令組合排列從而完成一個特定功能的程序, 這就對程序員的要求非常高了。人們一直在研究如何如何高效的開發計算機程序, 使編程的門檻降低。[2]
編譯器
C語言編譯器是一種現代化的設備, 其需要藉助計算機編譯程序, C語言編譯器的設計是一項專業性比較強的工作, 設計人員需要考慮計算機程序繁瑣的設計流程, 還要考慮計算機用戶的需求。計算機的種類在不斷增加, 所以, 在對C語言編譯器進行設計時, 一定要增加其適用性。C語言具有較強的處理能力, 其屬於結構化語言, 而且在計算機系統維護中應用比較多, C語言具有高效率的優點, 在其不同類型的計算機中應用比較多。[3]
C語言編譯器前端設計
編譯過程一般是在計算機系統中實現的, 是將源代碼轉化為計算機通用語言的過程。編譯器中包含入口點的地址、名稱以及機器代碼。編譯器是計算機程序中應用比較多的工具, 在對編譯器進行前端設計時, 一定要充分考慮影響因素, 還要對詞法、語法、語義進行分析。[3]
1 詞法分析[3]
詞法分析是編譯器前端設計的基礎階段, 在這一階段, 編譯器會根據設定的語法規則, 對源程序進行標記, 在標記的過程中, 每一處記號都代表著一類單詞, 在做記號的過程中, 主要有標識符、關鍵字、特殊符號等類型, 編譯器中包含詞法分析器、輸入源程序、輸出識別記號符, 利用這些功能可以將字型大小轉化為熟悉的單詞。[3]
2 語法分析[3]
語法分析是指利用設定的語法規則, 對記號中的結構進行標識, 這包括句子、短語等方式, 在標識的過程中, 可以形成特殊的結構語法樹。語法分析對編譯器功能的發揮有著重要影響, 在設計的過程中, 一定要保證標識的准確性。[3]
3 語義分析[3]
語義分析也需要藉助語法規則, 在對語法單元的靜態語義進行檢查時, 要保證語法規則設定的准確性。在對詞法或者語法進行轉化時, 一定要保證語法結構設置的合法性。在對語法、詞法進行檢查時, 語法結構設定不合理, 則會出現編譯錯誤的問題。前端設計對精確性要求比較好, 設計人員能夠要做好校對工作, 這會影響到編譯的准確性, 如果前端設計存在失誤, 則會影響C語言編譯的效果。[3]

C. 編譯原理 中的文法和語言 區別是什麼麻煩高手指點。謝謝

文法是語言語法的描述工具,使用有限的規則將無限的語言描述出來。
語言是文法所描述的所有橘子的集合,通俗點說吧,你看咱們平時說話不是都要遵從一定的語法規則嗎,比如句子「主謂賓」這樣的形式,文法就是用四元組要素(開始符號,終結符,非終結符,終止符號)將這些語法規則一條條的列出來,而語言就相當於我們能用這些語法規則所說出來的所有的話,具體實際的話~~嘿嘿

D. 編譯的哪個階段(詞法分析,語法分析,語義分析

在編譯原理中,語法規則和詞法規則不同之處在於:規則主要識別單詞,而語法主要識別多個單片語成的句子。詞法分析和詞法分析程序:詞法分析階段是編譯過程的第一個階段。這個階段的任務是從左到右一個字元一個字元地讀入源程序,即對構成源程序的字元流進行掃描然後根據構詞規則識別單詞(也稱單詞符號或符號)。詞法分析程序實現這個任務。詞法分析程序可以使用lex等工具自動生成。語法分析(Syntax analysis或Parsing)和語法分析程序(Parser) 語法分析是編譯過程的一個邏輯階段。語法分析的任務是在詞法分析的基礎上將單詞序列組合成各類語法短語,如「程序」,「語句」,「表達式」等等.語法分析程序判斷源程序在結構上是否正確.源程序的結構由上下文無關文法描述.語義分析(Syntax analysis) 語義分析是編譯過程的一個邏輯階段. 語義分析的任務是對結構上正確的源程序進行上下文有關性質的審查, 進行類型審查.語義分析將審查類型並報告錯誤:不能在表達式中使用一個數組變數,賦值語句的右端和左端的類型不匹配.

E. 關於編譯原理中語義語法的理解

一種語言是合法句子的集合。什麼樣的句子是合法的呢?可以從兩方面來判斷:語法和語義。語法是和文法結構有關,然而語義是和按照這個結構所組合的單詞符號的意義有關。合理的語法結構並不表明語義是合法的。例如我們常說:我上大學,這個句子是符合語法規則的,也符合語義規則。但是大學上我,雖然符合語法規則,但沒有什麼意義,所以說是不符合語義的。

F. 編譯原理試題

你發那麼多條求助信息,也不給點分,大家怎麼幫你啊,我來回答吧!記得給我追加分啊。
1.若源程序是用高級語言編寫的,目標程序是 機器語言程序或匯編程序 ,則其翻譯程序稱為編譯程序.
2.一個典型的編譯程序中,不僅包括詞法分析、語法分析、中間代碼生成、代碼優化、目標代碼生成等五個部分,還應包括表格處理和出錯處理。其中,詞法分析器用於識別 單詞 。
3.編譯方式與解釋方式的根本區別為是否生成目標代碼。
4.設G是一個給定的文法,S是文法的開始符號,如果S x(其中x∈V*),則稱x是文法的一個句型 。
設G是一個給定的文法,S是文法的開始符號,如果S x(其中x∈VT*),則稱x是文法的一個句子。
繼續做題中.......

G. 編譯原理的文法是什麼

文法是描述語言規則的形式規則。實際上就是用一個四元組G=(VT,VN,S,P)定義的一個推理方式。其中VT是終結符,VN是非終結符,S是開始符號,P是一組產生規則。

閱讀全文

與編譯是一個文法的句子嗎相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:766
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:841
安卓怎麼下載60秒生存 瀏覽:800
外向式文件夾 瀏覽:233
dospdf 瀏覽:428
怎麼修改騰訊雲伺服器ip 瀏覽:385
pdftoeps 瀏覽:490
為什麼鴻蒙那麼像安卓 瀏覽:733
安卓手機怎麼拍自媒體視頻 瀏覽:183
單片機各個中斷的初始化 瀏覽:721
python怎麼集合元素 瀏覽:477
python逐條解讀 瀏覽:829
基於單片機的濕度控制 瀏覽:496
ios如何使用安卓的帳號 瀏覽:880
程序員公園采訪 瀏覽:809
程序員實戰教程要多長時間 瀏覽:972
企業數據加密技巧 瀏覽:132
租雲伺服器開發 瀏覽:811
程序員告白媽媽不同意 瀏覽:333
攻城掠地怎麼查看伺服器 瀏覽:600