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

正文內(nèi)容

58類型分析(已修改)

2025-10-11 10:00 本頁面
 

【正文】 1 類型分析 每個程序設(shè)計語言都有自己的類型機(jī)制,包括類型說明和使用。 類型分析是編譯器語義分析的重要組成部分 。編譯器首先根據(jù)類型說明,確定每一個變量和常量的類型 ,計算其使用存儲空間的大小,從而建立其到存儲空間的映射。進(jìn)而,編譯器要確定每個語言結(jié)構(gòu)的類型,以完成下面的主要任務(wù): ( 1) 判定重載算符(函數(shù))在程序中代表是那一個運(yùn)算;( 2) 進(jìn)行類型轉(zhuǎn)換;( 3) 對語言結(jié)構(gòu)進(jìn)行類型檢查 。 2 類型表達(dá)式 類型表達(dá)式定義 語言結(jié)構(gòu)的類型由類型表達(dá)式指稱,類型表達(dá)式依賴于程序語言的類型體制。類型表達(dá)式或者是簡單類型表達(dá)式,或者是構(gòu)造符作用在類型表達(dá)式上得到的類型表達(dá)式。類型表達(dá)式的定義如下: ( 1) 類型名和基本類型是類型表達(dá)式。integer、 char、 real、 boolean是基本類型,所以它們是類型表達(dá)式。另外, void表示“ 無類型 ” , type_error表示 “ 出錯類型 ” ,它們也是類型表達(dá)式。 3 ( 2)類型構(gòu)造符作用于類型表達(dá)式的結(jié)果 仍然是類型表達(dá)式。類型構(gòu)造符包括: ( a)數(shù)組構(gòu)造符 ARRAY:若 T是類型表達(dá) 式,則 ARRAY( I,T)是類型表達(dá)式。 ( b)笛卡兒乘積 ?:若 T T2是類型表達(dá) 式,則 T1? T2是類型表達(dá)式,且 ?是左結(jié)合。 ( c)記錄類型構(gòu)造符 RECORD:若有標(biāo)識符N N2…… 、 Nn與類型表達(dá)式 T T … 、 Tn, 則 RECORD(( N1 ? T1) ? ( N2 ? T2) ? … ? ( Nn ? Tn))是一個類型表達(dá)式,它指稱一個記錄類型。 4 ( d)指針類型構(gòu)造符 POINTER:若 T是類 型 表達(dá)式,則 POINTER( T)是類型表達(dá)式,它指稱一個指針類型。 ( e)函數(shù)類型構(gòu)造符 →:若 D D … 、 Dn和 R是類型表達(dá)式,則 D1?D2 ? …… ? Dn →R是類型表達(dá)式,其中 ?優(yōu)先于 →,它指稱 從定義域類型 D1 ? D2 ? … ? Dn到值域類型 R 的映射。 ( 3) 類型表達(dá)式中可出現(xiàn)類型變量,變量 值是類型表達(dá)式。 5 例 設(shè)有 Pascal 程序片段: TYPE stype=RECORD name:ARRAY [1..8] OF char。 score:integer END。 VAR table:ARRAY [1..50] OF stype。 p: ↑stype。 則 stype代表的類型表達(dá)式 RECORD((name?ARRAY(1..8,char)) ? (score ? integer)) 和 table綁定的類型表達(dá)式 ARRAY(1..50,stype) 和 P綁定的類型表達(dá)式 POINTER(stype) 6 例 設(shè)有下面的函數(shù)定義 FUNCTION f(P1:T1。P2:T2。… , Pn:Tn):T。 BEGIN …… END。 和 f綁定的類型表達(dá)式 T1?T2 ? … ? Tn→T 例 在函數(shù)式語言中可如下定義恒等函數(shù) fun f(x)=x x可以是任何類型的語言結(jié)構(gòu)。因此 x可以是任何類型。 f的類型表達(dá)式為 ??? ?為類型變量,其值是任何類型表達(dá)式。 7 類型表達(dá)式的表達(dá)方法 :內(nèi)部結(jié)點是類型構(gòu)造符,葉結(jié)點是基本 類型,類型名或類型變量。例如, FUNCTION f (a
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1