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

正文內(nèi)容

c語(yǔ)言編譯器前端的設(shè)計(jì)與實(shí)現(xiàn)課程設(shè)計(jì)-文庫(kù)吧資料

2025-06-13 22:17本頁(yè)面
  

【正文】 , _CHAR, _EXTERN, _RETURN, _UNION, _CONST, _FLOAT, _SHORT, _UNSIGNED, _CONTINUE, _FOR, _SIGNED, _VOID, _DEFAULT, _GOTO, _SIZEOF, _VOLATILE, _DO, _IF, _STATIC, _WHILE, _READ, _WRITE, _PRINTF, // operations ASSIGN, PLUS, MINUS, TIMES, DIV, MOD, BITWISE_AND, BITWISE_OR, BITWISE_NOT, LOGICAL_NOT, LT, GT, // interpunctions LPARAN, RPARAN, LBRACE, RBRACE, LSQUARE, RSQUARE, COMMA, DOT, SEMI, COLON, // plex operations 10 EQ/* == */, NEQ/* != */, PLUS_PLUS/* ++ */, MINUS_MINUS/* */, PLUS_ASSIGN/* += */, MINUS_ASSIGN/* = */, TIMES_ASSIGN/* *= */, DIV_ASSIGN/* /= */, NGT/* = */, NLT/* = */, LOGICAL_AND/* amp。\39。39。\n39。詞法分析器的功能是輸入源程序,輸出單詞符號(hào)。 4) 進(jìn)行 詞法檢查,如果出現(xiàn)錯(cuò)誤,記錄出錯(cuò)信息并報(bào)告。 2) 剔除無(wú)用的空白字符、制表符、回車字符以及其他與輸入介質(zhì)相關(guān)的非實(shí)質(zhì)性字符 。詞法分析的過(guò)程是線性的從頭至尾掃描一遍 ,復(fù)雜度較低 ,易實(shí)現(xiàn)。所以在詞法分析階段 ,詞法規(guī)則成為重要的研究對(duì)象。 8 第 3 章 系統(tǒng)詳細(xì)設(shè)計(jì) 系統(tǒng)設(shè)計(jì)基本思路 基于 C 語(yǔ)言源程序分析器的開(kāi)發(fā)在可行性分析的基礎(chǔ)上進(jìn)一步全面、深入的分析,弄清 C語(yǔ)言的編譯原理及運(yùn)行狀況,在編譯程序工作的五個(gè)階段中 ,每個(gè)階段都必須遵從功能等價(jià)的原則。一個(gè)健全的類型系統(tǒng)可以消除對(duì)動(dòng)態(tài)類型檢查的需要,因?yàn)樗梢詭椭覀冹o態(tài)地確定這些 錯(cuò)誤不會(huì)在程序運(yùn)行的時(shí)候發(fā)生。 類型檢查具有發(fā)現(xiàn)程序中的錯(cuò)誤的功能。然后,編譯器需要確定這些類型表達(dá)式是否滿足一組邏輯規(guī)則。 符號(hào)表中信息欄的具體組織和安排取決于所翻譯的具體語(yǔ)言與目標(biāo)機(jī)器(的字長(zhǎng)和指令系統(tǒng))。因此,采用多種符號(hào)表并讓語(yǔ)法 —— 語(yǔ)義分析程序負(fù)責(zé)查填工作是比較妥當(dāng)?shù)?。例如?XYZ 可能既是一個(gè)實(shí)變量名又是一個(gè)標(biāo)號(hào)名,或者又是某個(gè)結(jié)構(gòu)型數(shù)據(jù)的一個(gè)分量名。也就是,當(dāng)掃描器碰到一個(gè)標(biāo)識(shí)符時(shí)就對(duì)它查填符號(hào)表,然后回送它在符號(hào)表中的位置作為單詞值。 過(guò)程 是否為程序的外部過(guò)程? 若為函數(shù),類型是什么? 其說(shuō)明是否處理過(guò)? 是否遞歸? 形式參數(shù)是些什么?為了與實(shí)參進(jìn)行比較,必須把它們的種屬、類型信息同過(guò)程名 聯(lián)系在一起。但編譯時(shí)登記在符號(hào)表中的各名字的性質(zhì)只能來(lái)自說(shuō)明語(yǔ)句(包括隱含約定和標(biāo)號(hào)定義)或其它引用情形。 現(xiàn)今多數(shù)程序語(yǔ)言中的名字或者是用說(shuō)明語(yǔ)句規(guī)定其性質(zhì),或者采用某種隱含約定(如 FORTRAN 中凡以字符 I, J,? N開(kāi)頭的標(biāo)識(shí)符代表整型變量名)。 符號(hào)表 符號(hào)表的信息欄中登記了每個(gè)名字的有關(guān)性質(zhì),如類型(整、實(shí)或布爾等)、種屬(簡(jiǎn)單變量、數(shù)組、過(guò)程等)、大?。ㄩL(zhǎng)度,即所需的存儲(chǔ)單元字?jǐn)?shù))以及相對(duì)數(shù)(指分配給該名宇的存儲(chǔ)單元的相對(duì)地址)。有些快速編譯程序幾乎沒(méi)有中間 代碼,但是為了使目標(biāo)代碼的優(yōu)化比較容易實(shí)現(xiàn),獨(dú)立于機(jī)器進(jìn)行,許多編譯程序都采用了某種復(fù)雜性程度介于源程序語(yǔ)言和機(jī)器語(yǔ)言之間的中間語(yǔ)言。在此基礎(chǔ)上,根據(jù)尋找句柄策略的不同,便形成了不同的自底向上的語(yǔ)法分析方法。但若全部輸入符號(hào)已被移掉,而分析棧卻不能出現(xiàn)上述格局,則表明輸入符號(hào)串不是文法的一個(gè)句子,其中必定存在語(yǔ)法錯(cuò)誤。由于歸約,便得到了新的棧頂,此時(shí)再查看棧的頂部是否形成新的句柄:若是,再進(jìn)行歸約;反之,則繼續(xù)將后續(xù)的輸入符號(hào)移入棧內(nèi),并重復(fù)上述過(guò)程。 和自頂向下的分析過(guò)程一樣,實(shí)現(xiàn)自底向上的分析,通常也須使用一個(gè)分析棧來(lái)存放分析過(guò)程中所得的文法符號(hào)。 因此,欲實(shí)現(xiàn)自頂向下的語(yǔ)法分析,其首要任務(wù)是改造程序設(shè)計(jì)語(yǔ)言的文法,使得文法無(wú)左遞歸且無(wú)左公因子,以消除其中的左遞歸和避免回溯的出現(xiàn)。 在進(jìn)行自頂向下的語(yǔ)法分析時(shí),通常有兩個(gè)障礙須加以解決: (1) 由于采取了最左推導(dǎo),故當(dāng)相應(yīng)文法 G 中含有左遞歸的非終結(jié)符號(hào)時(shí),便會(huì)使語(yǔ)法分析過(guò)程陷入循環(huán)不已的狀況。 自頂向下的語(yǔ)法分析 所謂自頂向下的語(yǔ)法分析,只指對(duì)于給定輸入串 w,試圖為其構(gòu)造一個(gè)從文法開(kāi)始符號(hào)S 到 w 的最左推導(dǎo) S=w,或?yàn)?w 自上而下地構(gòu)造一棵 S 為根結(jié)點(diǎn)的語(yǔ)法樹(shù)。 語(yǔ)法分析 語(yǔ)法分析程序又稱分析器,它以單詞串形式的源程序作為輸入或分析的對(duì)象,其基本任務(wù)是:根據(jù)程序設(shè)計(jì)語(yǔ)言的語(yǔ)法規(guī)則(即定義該語(yǔ)言的前后無(wú)關(guān)文法),分析源程序的語(yǔ)法結(jié)構(gòu),即分析如何由這些單詞組成該源程序的各種語(yǔ)法成分(如下標(biāo)變量、函數(shù)、各種 5 表達(dá)式、各種程序語(yǔ)句等),并在分析過(guò)程中進(jìn)行語(yǔ)法正確性檢查,產(chǎn)生內(nèi)部形式的中間代碼,供編譯程序后續(xù)階段處理。另一種方式是將詞法分析編成一個(gè)子程序,該子程序由語(yǔ)法分析程序調(diào)用,當(dāng)語(yǔ)法分析程序需要一個(gè)新的單詞時(shí),就調(diào)用該子程序,每調(diào)用一次,則從源程序字符串中讀出一個(gè)具有獨(dú)立意義的 單詞。從工作方式上看,他與語(yǔ)法分析之間存在兩種接口方式。 此外,視編譯工作流程的組織,一些編譯程序在進(jìn)行詞法分析時(shí),還要完成將所識(shí)別出的標(biāo)志符登錄到符號(hào)表的工作。通常可采用二元式 ( CLASS, VALUE) 來(lái)表示一個(gè)單詞符號(hào)的內(nèi)部編碼,其中 CLASS 為一整數(shù)碼,用于表示該單詞的類別; VALUE 則是單詞之值(如變量名在符號(hào)表中的序號(hào),常數(shù)的二進(jìn)制表示,以及運(yùn)算符和分隔符的編碼,等等)。 詞法分析 詞法分析程序又稱掃描器,它是編譯過(guò)程的第一個(gè)階段。本系統(tǒng)只完成整個(gè)編譯過(guò)程中的詞法分析、語(yǔ)法分析、語(yǔ)義分析以及其中的建立符號(hào)表和類型檢查幾個(gè)步驟。 第 3章 系統(tǒng)的詳細(xì)設(shè)計(jì) 介紹了系統(tǒng)的基本流程,各個(gè)模塊的設(shè)計(jì)思想和核心代碼部分。 第 2章 C語(yǔ)言詞法分析器的 總體分析與設(shè)計(jì) 簡(jiǎn)單的介紹了系統(tǒng)的設(shè)計(jì)目標(biāo)及系統(tǒng)要實(shí)現(xiàn)的功能。僅當(dāng)以項(xiàng)目的大范圍上下文查看數(shù)據(jù)時(shí),團(tuán)隊(duì)才能夠精確地報(bào)告項(xiàng)目狀態(tài)。該數(shù)據(jù)以某些標(biāo)準(zhǔn)的報(bào)告方式呈現(xiàn),客戶和 Microsoft 內(nèi)部團(tuán)隊(duì)已在報(bào)告中建 3 立了成功項(xiàng)目管理的關(guān)鍵規(guī) 則。 Visual Studio Team System 中集成的數(shù)據(jù)將開(kāi)創(chuàng)一條新路 — 通過(guò)平衡利用貫穿于 SDLC 的大量、多樣的數(shù)據(jù)來(lái)管理項(xiàng)目規(guī)則。團(tuán)隊(duì)根據(jù)能夠收集到的規(guī)則來(lái)管理項(xiàng)目。通過(guò)將過(guò)程集成到團(tuán)隊(duì)成員日常使用的基本工具中, Visual Studio 2021 Team System 大大消除了過(guò)程采納的障礙,并使自動(dòng)收集跨職能的項(xiàng)目標(biāo)準(zhǔn)成為可能,而無(wú)需實(shí)施人工報(bào)告的相關(guān)開(kāi)銷。當(dāng)您在項(xiàng) 目初期選擇過(guò)程時(shí),還需要選擇工作流和工作產(chǎn)品,它們會(huì)驅(qū)動(dòng)系統(tǒng)的行為方式。 Visual Studio 2021 Team System,那么過(guò)程就不僅僅是文檔了。這使開(kāi)發(fā)人員能夠在生命周期的較早階段就改善其代碼的質(zhì)量,而無(wú)需中斷他們的工作。下面主要介紹它的有點(diǎn) 。 當(dāng)然還有 Visual 2021和最新的 Visual 2021beta 版也已經(jīng)發(fā)布。 Visual C++.NET2021 是 微 軟 公 司 推 出 的 開(kāi) 發(fā) Win32 應(yīng) 用 程 序 ( Windows 95/98/2021/XP/NT)的面向?qū)ο蟮目梢暬晒ぞ摺? 本系統(tǒng)的設(shè)計(jì)主要是實(shí)現(xiàn)了其中的詞法分析、語(yǔ) 法分析和語(yǔ)義分析三個(gè)部分。 (2)語(yǔ)法分析 語(yǔ)法分析器根據(jù)語(yǔ)法規(guī)則識(shí)別出記號(hào)流中的結(jié)構(gòu)(短語(yǔ)、句子),并構(gòu)造一棵能夠正確反映該結(jié)構(gòu)的語(yǔ)法樹(shù)。詞法分析器的任務(wù)是把源文件的字符流轉(zhuǎn)換成記號(hào)流。源程序中 常見(jiàn)的記號(hào)可以歸為幾大類:關(guān)鍵字、標(biāo)識(shí)符、字面量和特殊符號(hào)。一組目標(biāo)文件,不必是同一編譯器產(chǎn)生,但使用的編譯器必需采用同樣的輸出格式,可以鏈接在一起并生成可以由用戶直接執(zhí)行的可執(zhí)行程序。也有從一種高階語(yǔ)言生成另一種高階語(yǔ)言的編譯器,或者生成一 種需要進(jìn)一步處理的的中間代碼的編譯器(又叫級(jí)聯(lián))。 編譯是從源代碼(通常為高階語(yǔ)言)到能直接被計(jì)算機(jī)或虛擬機(jī)執(zhí)行的目標(biāo)代碼(通常為低階語(yǔ)言或機(jī)器語(yǔ)言)的翻譯過(guò)程。此外, C 語(yǔ)言還具有效率高,可移植性強(qiáng)等特點(diǎn)。由于 C語(yǔ)言實(shí)現(xiàn)了對(duì) 硬件的編程操作,因此 C語(yǔ)言集高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的功能于一體。它不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。通常稱之為 ANSI C。但是,在《 Kamp。R》,也有人稱之為《 Kamp。同時(shí)由 和 合著了著名的 “ THE C PROGRAMMING LANGUAGE”一書。一九七八年由美國(guó)電話電報(bào)公司 (ATamp。在本文的第四章詳細(xì)給出了此次設(shè)計(jì)所實(shí)現(xiàn)的功能和語(yǔ)法規(guī)范,同時(shí)也給出了編譯器的運(yùn)行方式。每個(gè)部分又分別從總體框架,詳細(xì)流程,重點(diǎn)數(shù)據(jù)結(jié)構(gòu)和函數(shù),以及與其他部分的接口等方面予以闡述。 本文首先介紹了 C 語(yǔ)言及 C 語(yǔ)言編譯器的發(fā)展歷程,其次對(duì)本次開(kāi)發(fā)所用到的工具 Visual Studio C++2021 以及面向?qū)ο蟮某?序設(shè)計(jì)方法做一下簡(jiǎn)單介紹。編譯器作為廣大 IT從業(yè)者必須接觸的系統(tǒng)軟件,它的設(shè)計(jì)本身又是一個(gè)極其龐大的工程。 [4] 楊克玉 .Visual studio 2021程序設(shè)計(jì)實(shí)訓(xùn)教程 [M].北京:機(jī)械工業(yè)出版社出版, 。 [2] 康慕寧 .編譯原理 [
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1