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

正文內(nèi)容

編譯原理課件(龍書為教材)-在線瀏覽

2024-09-25 20:44本頁面
  

【正文】 度較快的機器代碼 對上面中間代碼進行優(yōu)化處理后,產(chǎn)生如下的代碼: temp1=c*d a=b+temp1 temp1=c*d temp2=b+temp1 a=temp2 2022/8/28計算機學院 辛明影 14 代碼生成階段 生成可重定位的機器代碼或匯編代碼 Movf R2, c Mult R2,d Movf R1,b Addf R2,R1 Movf a,R2 2022/8/28計算機學院 辛明影 15 int a,b。 為什么要先說明 ? 定義了變量的類型,也就規(guī)定了變量在內(nèi)存中的存放形式,在其上所能進行的運算 解決符號地址到存貯地址上的映射 2022/8/28計算機學院 辛明影 16 編譯器的一個基本功能是 記錄源程序中使用的標識符 并將它們 記載到符號表中 。 每個標識符在符號表中都有一條記錄 名字 記號 類型 種屬 …… addr id1(25) id2(25) b a 例: int a,b。 當詞法分析程序識別出一個標識符 s后,用 lookup(s)查找符號表,如果是關(guān)鍵字,返回相應(yīng)的記號;如果是變量名,返回記號 id 2022/8/28計算機學院 辛明影 19 符號表的實現(xiàn) 固定長標識符:采用前面的結(jié)構(gòu) 不定長標識符:使用單獨的數(shù)組 lexemes i f eos i n t eos p o s i t i o n eos i n i t i a l eos If(12) Int(13) Id1(25) Id2(25) 存放標識符的字符串 , 符號表中存放標識符在 lexemes的起始位臵和相應(yīng)記號 2022/8/28計算機學院 辛明影 20 一、前端和后端 前端包括詞法分析、詞法分析、語義分析,以及相關(guān)的錯誤處理和符號表的建立 前端依賴于源程序并在很大程度上獨立于目標機器。 后端依賴于目標機器。 2022/8/28計算機學院 辛明影 22 二、編譯的遍 編譯的若干階段通常是以一遍來實現(xiàn)的,每遍讀一次輸入文件、產(chǎn)生一個輸出文件。 error 第二章 高級語言 及其語法描述 2022/8/28計算機學院 辛明影 25 內(nèi)容簡介: 本章概述程序設(shè)計語言的結(jié)構(gòu) 程序語言的定義 任何語言實現(xiàn)的基礎(chǔ)是語言定義。 和主要的共同特征, 并介紹程序設(shè)計語言主要語句的文法描述與形式定義。 對于語言用戶來說:語言定義就是一本用戶手冊。 規(guī)則: 詞法規(guī)則 語法規(guī)則 2022/8/28計算機學院 辛明影 27 詞法規(guī)則是指單詞符號的形成規(guī)則 字母表就是一個有窮字符集。 、 % 、 、 、 = 、 ^ 、 | 、 ? 、 , 、 。如: a ave 、 _day 一 .詞法規(guī)則 2022/8/28計算機學院 辛明影 28 上述的定義是用文字來描述的,當設(shè)計編譯程序時,就要把它用形式的方式描述出來,就要用到形式語言。S L → S 2022/8/28計算機學院 辛明影 35 調(diào)用語句: S→call id(Elist) Elist →Elist,E Elist →E|ε 2022/8/28計算機學院 辛明影 36 類型 說明和過程說明語句: P→ D D→ D。 S T →int T → float 2022/8/28計算機學院 辛明影 37 數(shù)組說明語句: L→ id[Elist] Elist→ Elist,E Elist→ E 2022/8/28計算機學院 辛明影 38 語義 例: a=b+c*d 例 do 999 I=1,10 對于一個語言來說,不僅要給出它的詞法、語法規(guī)則,而且要定義它的單詞符號和語法單位的意義,這就是語義問題 對于編譯程序來說,只有了解程序的語義,才知道應(yīng)把它翻譯成什么樣的目標指令代碼 2022/8/28計算機學院 辛明影 39 構(gòu)造基礎(chǔ) 程序結(jié)構(gòu)簡介 一個高級語言程序通常由若干子程序段(過程、函數(shù)等)組成, 許多語言還引入了類、程序包等更高級的結(jié)構(gòu) 2022/8/28計算機學院 辛明影 40 一. FORTRAN 一個 FORTRAN 程序由一個主程序和若干個輔助程序段組成 PROGRAM MAIN . END SUBROUTINE SUB1 . .END FUNCTION FUN1 . END 它的定義是并列的 2022/8/28計算機學院 辛明影 41 FORTRAN 的構(gòu)成特點: 同一名字在不同的程序段中一般都代表不同的對象,也就是說代表不同的存貯單元 PROGRAM MAIN .integer x END SUBROUTINE SUB1 Integer x .END Integer x X X=9999 100 Integer x 9999 X=100 X 一個名字對應(yīng)多個對象 2022/8/28計算機學院 辛明影 42 但是不同程序段里的同名公用塊卻代表同一個存貯區(qū)域 PROGRAM MAIN . Common a,b END SUBROUTINE SUB1 mon x,y .END PROGRAM MAIN . END SUBROUTINE SUB1 . END Common a,b a b A=100 B=50 100 50 Common x,y x y Y=x+100 200 共享存貯單元 多個名字對應(yīng)一個對象 2022/8/28計算機學院 辛明影 43 二。 Int door_num。 . Void push_break() { } Void add_oil() { } } Class benz extends car Double price。數(shù)據(jù)結(jié)構(gòu) 1。 數(shù)組的內(nèi)情向量包括: 維數(shù),各維的上、下限,首地址及數(shù)組的類型 …… ln un dn …… …… l2 l1 un un d1 d2 N維數(shù) C常數(shù) T類型 A首地址 2022/8/28計算機學院 辛明影 54 對于確定數(shù)組來說,內(nèi)情向量可登記在符號表中; 對于可變數(shù)組,內(nèi)情向量的信息在編譯時無法全部知道,只有到運行階段才能全部確定下來,存貯分配也要等到運行時方能進行 2022/8/28計算機學院 辛明影 55 (結(jié)構(gòu)) 從邏輯上講,記錄是由已知的數(shù)據(jù)組合起來的一種結(jié)構(gòu) Struct student {char name[20]。 int age。 2022/8/28計算機學院 辛明影 56 記錄結(jié)構(gòu)最簡單的存貯方式是連續(xù)存放 上述的變量 stu共占 7個字,共 28個字節(jié) 、表格和隊列 k K+1 …. K+20 …. K+24 …. …. … …… . 2022/8/28計算機學院 辛明影 57 四 .抽象數(shù)據(jù)類型 一個抽象數(shù)據(jù)類型包括: ⑶ 這種類型對象的封裝 ⑵ 作用于這些數(shù)據(jù)對象的抽象運算的集合 ⑴ 數(shù)據(jù)對象的一個集合 C++、 Java語言通過類對抽象類型提供支持 2022/8/28計算機學院 辛明影 58 五 .語句與控制結(jié)構(gòu) 要解決的問題: ① 優(yōu)先級 ② 結(jié)合率 語句可分為: ① 說明語句: ② 可執(zhí)行語句: 定義各種不同數(shù)據(jù)類型的變量和運算 描述語句的動作 執(zhí)行語句分為:賦值、控制和 I/O語句 2022/8/28計算機學院 辛明影 59 ⑴ 賦值句 A=B 左值 右值 名字的 左值 指它所代表的存貯單元地址 名字的 右值 指該 單元的內(nèi)容 2022/8/28計算機學院 辛明影 60 ⑵ 控制語句 無條件轉(zhuǎn)移語句: Goto lable 條件語句: If B then S If B then S else S 循環(huán)語句: While B do S Repeat S until B For I=e1 to e2 step e3 過程調(diào)用語句: Call P(x1, x2,….x n) 返回語句: Return(E) 2022/8/28計算機學院 辛明影 61 ⑶ 說明語句 說明語句用于定義名字的性質(zhì)。 許多說明語句不產(chǎn)生目標代碼 但有的說明語句,如過程說明和可變數(shù)組說明,則要產(chǎn)生相應(yīng)的目標代碼 2022/8/28計算機學院 辛明影 62 ⑷ 簡單句和復(fù)合句 簡單句是指不包含其它語句成分的基本句。y=2。} 2022/8/28計算機學院 辛明影 63 program reference( input, output); var a, b : integer; procedure swap( x, y: integer); var temp: integer; begin temp := x; x := y; y := temp end。 b:= 2。 writeln( 39。 a, 39。, b ) end. 參數(shù)傳遞 結(jié)果是什么? 2022/8/28計算機學院 辛明影 64 1 傳值調(diào)用 實在參數(shù)和形式參數(shù)結(jié)合的方法: 傳值調(diào)用( callbyvalue) 引用調(diào)用( callbyreference) 復(fù)制恢復(fù)( copyrestore) 傳名調(diào)用( callbyname) 2022/8/28計算機學院 辛明影 65 子程序為每一個形參開辟一個存貯單元,用于存放 相應(yīng) 實參的值。 實參: 形參: 傳值調(diào)用可以實現(xiàn)如下: 主調(diào)過程計算實在參數(shù),并把它們的右 值放入到形式參數(shù)的存儲空間中 。 Reference a b x y 1 2 swap ?a ?b temp 2022/8/28計算機學院 辛明影 68 子程序為每個形參開辟一個單元,用于存放相應(yīng)實參的地址, 執(zhí)行時,子程序間址方式訪問這些形參單元 當實參為表達式或常數(shù)時,則存放它們值的臨時單元。 x:=y。 temp:=?a。 ?b:=temp。 2022/8/28計算機學院 辛明影 70 子程序為每個形參分配兩個存貯單元B1和 B2, B1用于存放 實參地址 , B2用
點擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1