freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

程序設(shè)計(jì)語言chappt課件-資料下載頁

2025-05-02 06:45本頁面
  

【正文】 義為 ” , “ |”表示 “ 或 ” 。 ? 如應(yīng)用 BNF范式,可以寫出 無符號整數(shù) 的語法結(jié)構(gòu): ? 無符號整數(shù) ::= 數(shù)字串 數(shù)字串 ::=數(shù)字串 數(shù)字 |數(shù)字 數(shù)字 ::=0|1|2|… |9| 語法樹與二義性 ? 如果用某種語法定義的句子中,有某個句子存在兩棵不同的語法樹,則該語法是二義性的,否則,該語法無二義性。 ? 如語法 G[E] E::=E+E|EE| E*E| E/E|(E)|I I+I*I是該語法的一個句子,但存在兩棵語法樹,故該語法存在二義性。 EEI I IE+EE *EI IE*EE E+I? 一般,為了是編譯能夠順利的進(jìn)行,應(yīng)該避免定義二義性的語法。然而,遺憾的是,已經(jīng)證明,二義性的性質(zhì)是不可判定的,即不存在一種算法,它接收任一 BNF文法,能在有窮步驟內(nèi)判定出該文法是否是二義性的。 ? 解決方法: – 根據(jù)提出的條件修改編譯算法; ?如 else 就近匹配原則。 – 根據(jù)提出的條件直接修改文法; ?如修改 G[E]文法定義為: E::= T|E+T|ET T::=F|T*F|T/F F::=(E)|I BNF符號的擴(kuò)充 ( 1) ? BNF的功能強(qiáng)大、外觀優(yōu)美、使用簡單,但它往往對文法中一些常用的語法結(jié)構(gòu),如選擇成分、交替成分及循環(huán)成分做出了相當(dāng)不自然的表述。如 無符號整數(shù) 的 BNF表示: 無符號整數(shù) ::= 數(shù)字 | 無符號整數(shù) 數(shù)字 數(shù)字 ::=0|1|2|… |9| 其存在的缺點(diǎn)是: 1) 包含了左遞歸,使文法具有復(fù)雜的遞歸性; 2) 由于遞歸,無符號整數(shù)的長度任意,不能表示出具體語言對該語法成分的最大長度限制。 BNF符號的擴(kuò)充 ( 2) ? 在 BNF文法中,通常使用 3個元符號: “ ”,“ ::=”和 “ |”。在擴(kuò)充的 BNF中,新引入了三個元符號: “ {}”,“ []”和 “()”。 下面作簡單介紹: ? :其中, t為符號串,表示 t可重復(fù)出現(xiàn) n到次,一般約定 n=0。 如 ? 好處: – 方便的表示重復(fù)次數(shù); – 消除了左遞歸; {t}nm 無 符號整數(shù) ::= { 數(shù) 字 } nm 數(shù) 字BNF符號的擴(kuò)充 ( 3) ? [t]: 其中, t為符號串,表示 t 是可選擇項(xiàng)。如 條件語句 ::=if 子句 | if 子句 else 語句 if 子句 ::= if 布爾表達(dá)式 then 語句 引入 []后,可表示為: 條件語句 ::=if 子句 [else 語句 ] 實(shí)際上, []與 {}的 n=0, m=1特例等價(jià)。 ? 好處:表達(dá)更為直觀。 BNF符號的擴(kuò)充 ( 4) ? ( t) : 其中 , t為符號串,可以提取因子。如 U::=xy|xw|…|xz 可提取因子,表示為: U::=x( y|w|…|z ) 好處:使詞法分析工作變的容易些。 本章小節(jié) ? 語法是以句子中詞的排列來表明它們的彼此關(guān)系。它描述了組成一個合法程序的符號的系列,是理解一個程序的重要手段,也為將源程序翻譯成目標(biāo)程序提供了必要的信息。 ? 通用語法的標(biāo)準(zhǔn)是:好的可讀性、可寫性、容驗(yàn)證性、易翻譯性和無二義性。 ? 二義性是指相同的語法形式允許存在兩種或更多的語義解釋。二義性的顯著特點(diǎn)是存在兩棵或更多的語法樹。無二義性是每個程序語言設(shè)計(jì)的中心問題。 ? 通常解決二義性的方法是: 1)使用定界符;2)選擇多種語義中的一種作為唯一合理的解釋。 ? 主程序 子程序的語法組織有六種:獨(dú)立子程序定義、獨(dú)數(shù)據(jù)定義、嵌套子程序定義、獨(dú)立接口定義、非獨(dú)立子程序定義、獨(dú)立出來的數(shù)據(jù)描述。不同的語法結(jié)構(gòu)對翻譯具有不同的要求和影響。 ? 翻譯是指將一個程序從原來的語法形式轉(zhuǎn)換成可執(zhí)行的形式。 ? 翻譯可分成兩個主要的部分:源程序分析和目標(biāo)程序的綜合。 ? 編譯的過程可經(jīng)過一次或多次掃描完成。到底采用幾次與程序語言對編譯速度和執(zhí)行速度的追求目標(biāo)的不同而密切相關(guān)。標(biāo)準(zhǔn)編譯器一般采用兩次掃描,如果追求編譯速度,則采用一次掃描,如果追求執(zhí)行速度,則可采用三次甚至更多次的掃描。 ? 源程序分析包括詞法分析、語法分析和語義分析階段。目標(biāo)程序的綜合包括優(yōu)化、代碼的生成、連接和載入等階段。 ? BNF文法是一種結(jié)構(gòu)簡單,功能較強(qiáng)的上下文無關(guān)文法。 BNF擴(kuò)充文法進(jìn)一步增強(qiáng)它的功能。 習(xí)題 T1,2,3,5,6,11 補(bǔ)充習(xí)題: 1)解釋名詞可讀性、可寫性、易驗(yàn)證性和易翻譯性的含義。 2)什么叫二義性,解決方法通常有哪些。 3)簡述詞法分析、語法分析的原理和過程。 4)簡述語義分析的主要功能。 5)簡述優(yōu)化的原理。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1