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

正文內(nèi)容

c語(yǔ)言編譯器前端的設(shè)計(jì)與實(shí)現(xiàn)課程設(shè)計(jì)-wenkub

2023-06-16 22:17:26 本頁(yè)面
 

【正文】 選擇部分具有代表性的功能。編譯器相關(guān)的各項(xiàng)技術(shù)經(jīng)過(guò)近幾十年的發(fā)展,已經(jīng)日臻成熟,然而編譯器構(gòu)造原理和技術(shù)依然是計(jì)算機(jī)科學(xué)中理論與實(shí)踐相結(jié)合的最好典范。 [3] 賀世娟,陳冀川 .Visual studio 2021 程序設(shè)計(jì) [M].北京:中國(guó)水利水電出版社出版, 。編譯器前端具有多樣化,實(shí)現(xiàn)的方法較多,如何選擇更優(yōu)秀的方法來(lái)設(shè)計(jì),讓許多人一直不懈的研究下去。并且編譯器前端的設(shè)計(jì)能與自然語(yǔ)言處理相互印證,是一個(gè)值得思考的領(lǐng)域。 [4] 楊克玉 .Visual studio 2021程序設(shè)計(jì)實(shí)訓(xùn)教程 [M].北京:機(jī)械工業(yè)出版社出版, 。 本文首先介紹了 C 語(yǔ)言及 C 語(yǔ)言編譯器的發(fā)展歷程,其次對(duì)本次開發(fā)所用到的工具 Visual Studio C++2021 以及面向?qū)ο蟮某?序設(shè)計(jì)方法做一下簡(jiǎn)單介紹。在本文的第四章詳細(xì)給出了此次設(shè)計(jì)所實(shí)現(xiàn)的功能和語(yǔ)法規(guī)范,同時(shí)也給出了編譯器的運(yùn)行方式。同時(shí)由 和 合著了著名的 “ THE C PROGRAMMING LANGUAGE”一書。但是,在《 Kamp。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。由于 C語(yǔ)言實(shí)現(xiàn)了對(duì) 硬件的編程操作,因此 C語(yǔ)言集高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的功能于一體。 編譯是從源代碼(通常為高階語(yǔ)言)到能直接被計(jì)算機(jī)或虛擬機(jī)執(zhí)行的目標(biāo)代碼(通常為低階語(yǔ)言或機(jī)器語(yǔ)言)的翻譯過(guò)程。一組目標(biāo)文件,不必是同一編譯器產(chǎn)生,但使用的編譯器必需采用同樣的輸出格式,可以鏈接在一起并生成可以由用戶直接執(zhí)行的可執(zhí)行程序。詞法分析器的任務(wù)是把源文件的字符流轉(zhuǎn)換成記號(hào)流。 本系統(tǒng)的設(shè)計(jì)主要是實(shí)現(xiàn)了其中的詞法分析、語(yǔ) 法分析和語(yǔ)義分析三個(gè)部分。 當(dāng)然還有 Visual 2021和最新的 Visual 2021beta 版也已經(jīng)發(fā)布。這使開發(fā)人員能夠在生命周期的較早階段就改善其代碼的質(zhì)量,而無(wú)需中斷他們的工作。當(dāng)您在項(xiàng) 目初期選擇過(guò)程時(shí),還需要選擇工作流和工作產(chǎn)品,它們會(huì)驅(qū)動(dòng)系統(tǒng)的行為方式。團(tuán)隊(duì)根據(jù)能夠收集到的規(guī)則來(lái)管理項(xiàng)目。該數(shù)據(jù)以某些標(biāo)準(zhǔn)的報(bào)告方式呈現(xiàn),客戶和 Microsoft 內(nèi)部團(tuán)隊(duì)已在報(bào)告中建 3 立了成功項(xiàng)目管理的關(guān)鍵規(guī) 則。 第 2章 C語(yǔ)言詞法分析器的 總體分析與設(shè)計(jì) 簡(jiǎn)單的介紹了系統(tǒng)的設(shè)計(jì)目標(biāo)及系統(tǒng)要實(shí)現(xiàn)的功能。本系統(tǒng)只完成整個(gè)編譯過(guò)程中的詞法分析、語(yǔ)法分析、語(yǔ)義分析以及其中的建立符號(hào)表和類型檢查幾個(gè)步驟。通??刹捎枚?( CLASS, VALUE) 來(lái)表示一個(gè)單詞符號(hào)的內(nèi)部編碼,其中 CLASS 為一整數(shù)碼,用于表示該單詞的類別; VALUE 則是單詞之值(如變量名在符號(hào)表中的序號(hào),常數(shù)的二進(jìn)制表示,以及運(yùn)算符和分隔符的編碼,等等)。從工作方式上看,他與語(yǔ)法分析之間存在兩種接口方式。 語(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ù)階段處理。 在進(jìn)行自頂向下的語(yǔ)法分析時(shí),通常有兩個(gè)障礙須加以解決: (1) 由于采取了最左推導(dǎo),故當(dāng)相應(yīng)文法 G 中含有左遞歸的非終結(jié)符號(hào)時(shí),便會(huì)使語(yǔ)法分析過(guò)程陷入循環(huán)不已的狀況。 和自頂向下的分析過(guò)程一樣,實(shí)現(xiàn)自底向上的分析,通常也須使用一個(gè)分析棧來(lái)存放分析過(guò)程中所得的文法符號(hào)。但若全部輸入符號(hào)已被移掉,而分析棧卻不能出現(xiàn)上述格局,則表明輸入符號(hào)串不是文法的一個(gè)句子,其中必定存在語(yǔ)法錯(cuò)誤。有些快速編譯程序幾乎沒有中間 代碼,但是為了使目標(biāo)代碼的優(yōu)化比較容易實(shí)現(xiàn),獨(dú)立于機(jī)器進(jìn)行,許多編譯程序都采用了某種復(fù)雜性程度介于源程序語(yǔ)言和機(jī)器語(yǔ)言之間的中間語(yǔ)言。 現(xiàn)今多數(shù)程序語(yǔ)言中的名字或者是用說(shuō)明語(yǔ)句規(guī)定其性質(zhì),或者采用某種隱含約定(如 FORTRAN 中凡以字符 I, J,? N開頭的標(biāo)識(shí)符代表整型變量名)。 過(guò)程 是否為程序的外部過(guò)程? 若為函數(shù),類型是什么? 其說(shuō)明是否處理過(guò)? 是否遞歸? 形式參數(shù)是些什么?為了與實(shí)參進(jìn)行比較,必須把它們的種屬、類型信息同過(guò)程名 聯(lián)系在一起。例如, XYZ 可能既是一個(gè)實(shí)變量名又是一個(gè)標(biāo)號(hào)名,或者又是某個(gè)結(jié)構(gòu)型數(shù)據(jù)的一個(gè)分量名。 符號(hào)表中信息欄的具體組織和安排取決于所翻譯的具體語(yǔ)言與目標(biāo)機(jī)器(的字長(zhǎng)和指令系統(tǒng))。 類型檢查具有發(fā)現(xiàn)程序中的錯(cuò)誤的功能。 8 第 3 章 系統(tǒng)詳細(xì)設(shè)計(jì) 系統(tǒng)設(shè)計(jì)基本思路 基于 C 語(yǔ)言源程序分析器的開發(fā)在可行性分析的基礎(chǔ)上進(jìn)一步全面、深入的分析,弄清 C語(yǔ)言的編譯原理及運(yùn)行狀況,在編譯程序工作的五個(gè)階段中 ,每個(gè)階段都必須遵從功能等價(jià)的原則。詞法分析的過(guò)程是線性的從頭至尾掃描一遍 ,復(fù)雜度較低 ,易實(shí)現(xiàn)。 4) 進(jìn)行 詞法檢查,如果出現(xiàn)錯(cuò)誤,記錄出錯(cuò)信息并報(bào)告。\n39。\39。 */, LOGICAL_OR/* || */, // others _EOF, _ID, _NUM, _STRING, _CHARACTER, _LABEL, _ERROR, _NONE }。編譯程序在完成了詞法分析之后,就進(jìn)入語(yǔ)法分析階段。其輸出形式也有多種。 // point to sibling node int lineno。 } kind。 // node function scope BOOL bArray。 Grammar: programdeclaration_list declaration_listdeclaration_list declaration | declaration declarationvar_declaration | fun_declaration var_declarationtype_specifier ID(, ...)`。` `printf` `(` `` STRING `` `)` `。amp。` var `=` expression `)` pound_stmt goto_stmt`goto` ID `。` | `return` expression `。具體來(lái)說(shuō),其主要任務(wù)包括以下幾部分。動(dòng)態(tài)語(yǔ)義檢查在運(yùn)行時(shí)進(jìn)行,需要生成相應(yīng)的目標(biāo)代碼;而靜態(tài)語(yǔ)義檢查則在編譯時(shí)完成,它主要完成以下四個(gè)方面。 編譯的各個(gè)階段都可能發(fā)現(xiàn)源程序中的錯(cuò)誤。語(yǔ)義分析能夠判斷運(yùn)算對(duì)象的類型是否匹配,變量是否重復(fù)聲明或沒有聲明就使用 等錯(cuò)誤。 Class BucketListRec: 主要成員變量: CString name。 // memory location for variable BOOL bArray。 主要的類, 建立符號(hào)表: Class CSymbolTable: 主要成員變量: BucketListRec* hashTable[SIZE],把 Class BucketListRec 類的對(duì)象通過(guò)hash 函數(shù)找到位置后插入。 函數(shù)調(diào)用參數(shù)檢測(cè) : 檢測(cè)函數(shù) 調(diào)用時(shí)傳入?yún)?shù)的類型與函數(shù)聲明時(shí)參數(shù)的類型是否匹配。 對(duì)于系統(tǒng)的可擴(kuò)展性,在設(shè)計(jì)前也做了充分的考慮,在設(shè)計(jì)時(shí)預(yù)留了一些余地,以便本系統(tǒng)在 C 語(yǔ)言語(yǔ)法不變的情況下一直都能使用,而不需要再重新開發(fā)。 參考文獻(xiàn) [1] 錢煥延 .編譯技術(shù)第 2版 [M].南京:東南大學(xué)出版社出版, 2021。 [5] 陳明 .Visual Basic教程 [M].北京:人民郵電出版社, 。 return 1。 fprintf(fal,%d,cx)。ch)) { line[ll] = 0。 line[ll]=ch。 } ch = line[cc]。 while(ch==39。a39。z39。 } getchdo。amp。039。939。 i=0。 if(strcmp(id,work[k])=0) i=k+1。 } else { if(ch=39。ch=39。 sym=number。 getchdo。amp。 k。) { getchdo。 getchdo。) { getchdo。 getchdo。) { getchdo。 getchdo。 } } } } } return 0。 } } else { sym=ssym[ch]。=39。 } else { if(ch==39。=39。 } else { if(ch==39。=39。 } } else { if(ch==39。939。039。039。) { k=0。amp。 if(i1j) sym=wsym[k]。 do{ k=(i+j)/2。 a[k]=0。amp。z39。a39。 do { if(kal) { a[k]=ch。amp。||ch==10||ch==9) getchdo。 return 0。 } printf(\n)。 } printf(%c,ch)。39。 cc = 0。 [7] 周峰 .Visual Bas
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1