綁定/約束 (binding)指兩個(gè)東西之間的關(guān)聯(lián)
綁定/約束 (binding)指兩個(gè)東西之間的關(guān)聯(lián)。如 名字 與它所代表的事物。又如屬性與實(shí)體之間的關(guān)聯(lián),又或者符號與操作之間的關(guān)聯(lián)。
早期的書翻譯成約束,后期的多數(shù)稱綁定。后續(xù)都稱綁定。
綁定發(fā)生的時(shí)間稱為 綁定時(shí)間 (binding time)。
綁定 和 綁定時(shí)間 是程序設(shè)計(jì)語言中了個(gè)非常重要的概念。
綁定可以發(fā)生在語言設(shè)計(jì)時(shí)、語言實(shí)現(xiàn)時(shí)、編譯時(shí)、連接時(shí)、載入時(shí)和運(yùn)行時(shí)。
一、語言設(shè)計(jì)時(shí)
多數(shù)語言中運(yùn)算符、流程控制結(jié)構(gòu)、內(nèi)部類型、對象的構(gòu)造形式等都是在語言設(shè)計(jì)時(shí)決定的。
如星號(*)在語言設(shè)計(jì)時(shí)與乘法操作綁定。
二、語言實(shí)現(xiàn)時(shí)
多數(shù)語言手冊都留下了許多問題,要求語言的實(shí)現(xiàn)者去仔細(xì)考慮和決定如何實(shí)現(xiàn)?
如基本類型的精度(取值范圍),c中的int在實(shí)現(xiàn)時(shí)與取值范圍綁定。
又如 棧和堆得阻止方式和最大規(guī)模。
三、編譯時(shí)
編譯器選擇了如何將高級的結(jié)構(gòu)映射到機(jī)器代碼,包括靜態(tài)定義的數(shù)據(jù)在內(nèi)存里的布局方式。
如java中的 變量 是在編譯時(shí)綁定于某特定的數(shù)據(jù)類型。
四、連接時(shí)
大部分編譯器支持“分別編譯”,連接器根據(jù)各模塊的情況選擇整體布局,并解決跨模塊的相互引用關(guān)系。需要由連接器把不同的模塊集合一起。
五、載入時(shí)
指操作系統(tǒng)將程序載入內(nèi)存,使之能夠執(zhí)行的那個(gè)時(shí)刻。
如java程序載入后變量與一個(gè)存儲單元綁定。
六、運(yùn)行時(shí)
這是個(gè)廣義的概念,它覆蓋了從程序執(zhí)行開始到結(jié)束的這個(gè)時(shí)間跨度。
如變量與值的綁定發(fā)生運(yùn)行時(shí)。但許多其它決策事項(xiàng)的情況則根據(jù)語言的不同而不同。
綁定又分為 靜態(tài)綁定 與 動(dòng)態(tài)綁定。
靜態(tài)綁定/早綁定 指在運(yùn)行之前建立的綁定,且在整個(gè)程序執(zhí)行過程期間保持不變。
動(dòng)態(tài)綁定/晚綁定 指在運(yùn)行期間建立的綁定,且在執(zhí)行過程中可被改變。
當(dāng)然,靜態(tài)與動(dòng)態(tài)都是很粗略的說法。因?yàn)檫\(yùn)行時(shí)的概念本身就很廣泛,并不嚴(yán)格。
純編譯型語言 (靜態(tài)語言),自然是早綁定的。它們效率更高,因?yàn)樗鼈兏绲淖龀隽藳Q策。
編譯器只對全局變量的語法語義做一次分析,即程序未運(yùn)行之前完成。在那時(shí)就已確定這些變量的在內(nèi)存中的布局,并生成出發(fā)問它們的高效代碼。
純解釋型語言 (動(dòng)態(tài)語言),自然是晚綁定的。它們更靈活,因?yàn)樗鼈儼言S多決策推遲到運(yùn)行時(shí)才做。相應(yīng)的其效率較低。
它可能在每次運(yùn)行時(shí)分析一些聲明,甚至子程序每次調(diào)用時(shí)解釋器都要去分析局部變量。
相關(guān)文章
計(jì)算機(jī)網(wǎng)絡(luò)日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)
下面小編就為大家?guī)硪黄?jì)算機(jī)網(wǎng)絡(luò)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你2021-09-09VS2019無法啟動(dòng)程序(系統(tǒng)找不到指定文件)解決辦法
這篇文章主要介紹了VS2019無法啟動(dòng)程序(系統(tǒng)找不到指定文件)解決辦法,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Git 的基本操作、開發(fā)流程、實(shí)用技巧總結(jié)(陳彥貝)
這篇文章主要介紹了Git 的基本操作、開發(fā)流程、實(shí)用技巧總結(jié),需要的朋友可以參考下2017-09-09