數(shù)據(jù)結(jié)構(gòu)向上取整符號(hào) 符號(hào)表和變量表的區(qū)別?
符號(hào)表和變量表的區(qū)別?它們的組成相似,但用法不同:符號(hào)表:地址由易于理解和記憶的符號(hào)表示,符號(hào)可用于數(shù)據(jù)塊、功能塊和功能塊。它主要由“符號(hào)”、“地址”和“數(shù)據(jù)類型”組成。其地址只能使用I、Q、m、PI
符號(hào)表和變量表的區(qū)別?
它們的組成相似,但用法不同:
符號(hào)表:地址由易于理解和記憶的符號(hào)表示,符號(hào)可用于數(shù)據(jù)塊、功能塊和功能塊。它主要由“符號(hào)”、“地址”和“數(shù)據(jù)類型”組成。其地址只能使用I、Q、m、PI、PQ、t、C、DB等物理區(qū)域,不能使用數(shù)據(jù)塊中的數(shù)據(jù)和棧中的數(shù)據(jù)。
變量表(Temp):用于在調(diào)試中監(jiān)視和修改變量。它可以在調(diào)試程序時(shí)監(jiān)視或強(qiáng)制變量表中添加的變量。它主要由“名稱”、“地址”和“數(shù)據(jù)類型”組成。主要特點(diǎn):所有數(shù)據(jù)都存儲(chǔ)在本地?cái)?shù)據(jù)棧(l區(qū))。邏輯塊關(guān)閉后,本地?cái)?shù)據(jù)丟失。
符號(hào)表的構(gòu)造方法?
編譯器有三種方法可以將符號(hào)表組織為一個(gè)整體:
第一種方法是將具有完全相同屬性類型的符號(hào)組織在一起,以構(gòu)造具有相同長度項(xiàng)的多個(gè)符號(hào)表。這種組織的最大優(yōu)點(diǎn)是每個(gè)符號(hào)表具有相同數(shù)量的屬性和結(jié)構(gòu)。則表項(xiàng)長度相等,表項(xiàng)中的每個(gè)屬性列都有效。對(duì)于單個(gè)符號(hào)表示,使得管理方便一致,空間效率高。但是這種組織的主要缺點(diǎn)是一個(gè)編譯器將同時(shí)管理多個(gè)符號(hào)表,這增加了總體管理的工作量和復(fù)雜性。而且,對(duì)各種符號(hào)的共同屬性的管理,必須建立一個(gè)重復(fù)運(yùn)行的機(jī)制。這使得符號(hào)表的管理非常繁瑣。
第二種方法是將所有語言的符號(hào)組織到一個(gè)符號(hào)表中。組成一個(gè)包含所有屬性的巨大符號(hào)表。這種組織的最大優(yōu)點(diǎn)是整體管理非常集中和單一,不同種類符號(hào)的共同屬性可以得到一致的管理和處理。這種組織方式的缺點(diǎn)是由于屬性不同,為了充分表達(dá)各種符號(hào)的所有屬性,會(huì)出現(xiàn)表項(xiàng)長度不等和表項(xiàng)中屬性位置重疊的情況,這大大增加了符號(hào)表管理的復(fù)雜性。為了使表項(xiàng)長度相等,實(shí)現(xiàn)屬性位置的唯一性,所有符號(hào)的可能屬性都可以看作符號(hào)表項(xiàng)屬性。這種組織方法有助于降低符號(hào)表管理的復(fù)雜性,但對(duì)于特定的符號(hào),可能會(huì)增加無用的屬性空間,從而增加空間開銷。
第三種:折衷方法是根據(jù)符號(hào)屬性的相似度組織多個(gè)表,每個(gè)表中記錄的符號(hào)具有更多相同的屬性。這種折衷的組織方式在管理復(fù)雜性和時(shí)空效率上達(dá)到了折衷的效果,復(fù)雜性和效率之間的選擇可以由設(shè)計(jì)者根據(jù)自己的經(jīng)驗(yàn)和要求以及目標(biāo)系統(tǒng)的客觀環(huán)境和要求進(jìn)行選擇和調(diào)整。