国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

綁定/約束 (binding)指兩個東西之間的關聯

2024-07-21 02:02:23
字體:
來源:轉載
供稿:網友

綁定/約束 (binding)指兩個東西之間的關聯。如 名字 與它所代表的事物。又如屬性與實體之間的關聯,又或者符號與操作之間的關聯。

早期的書翻譯成約束,后期的多數稱綁定。后續都稱綁定。

綁定發生的時間稱為 綁定時間 (binding time)。

綁定 和 綁定時間 是程序設計語言中了個非常重要的概念。

綁定可以發生在語言設計時、語言實現時、編譯時、連接時、載入時和運行時。

一、語言設計時

多數語言中運算符、流程控制結構、內部類型、對象的構造形式等都是在語言設計時決定的。

如星號(*)在語言設計時與乘法操作綁定。

二、語言實現時

多數語言手冊都留下了許多問題,要求語言的實現者去仔細考慮和決定如何實現?

如基本類型的精度(取值范圍),c中的int在實現時與取值范圍綁定。

又如 棧和堆得阻止方式和最大規模。

三、編譯時

編譯器選擇了如何將高級的結構映射到機器代碼,包括靜態定義的數據在內存里的布局方式。

如java中的 變量 是在編譯時綁定于某特定的數據類型。

四、連接時

大部分編譯器支持“分別編譯”,連接器根據各模塊的情況選擇整體布局,并解決跨模塊的相互引用關系。需要由連接器把不同的模塊集合一起。

五、載入時

指操作系統將程序載入內存,使之能夠執行的那個時刻。

如java程序載入后變量與一個存儲單元綁定。

六、運行時

這是個廣義的概念,它覆蓋了從程序執行開始到結束的這個時間跨度。

如變量與值的綁定發生運行時。但許多其它決策事項的情況則根據語言的不同而不同。


綁定又分為 靜態綁定 與 動態綁定。

靜態綁定/早綁定 指在運行之前建立的綁定,且在整個程序執行過程期間保持不變。

動態綁定/晚綁定 指在運行期間建立的綁定,且在執行過程中可被改變。

當然,靜態與動態都是很粗略的說法。因為運行時的概念本身就很廣泛,并不嚴格。


純編譯型語言 (靜態語言),自然是早綁定的。它們效率更高,因為它們更早的做出了決策。

編譯器只對全局變量的語法語義做一次分析,即程序未運行之前完成。在那時就已確定這些變量的在內存中的布局,并生成出發問它們的高效代碼。

純解釋型語言 (動態語言),自然是晚綁定的。它們更靈活,因為它們把許多決策推遲到運行時才做。相應的其效率較低。

它可能在每次運行時分析一些聲明,甚至子程序每次調用時解釋器都要去分析局部變量。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 股票| 昆明市| 开化县| 民勤县| 浦县| 崇州市| 深圳市| 乌拉特前旗| 泗水县| 扶沟县| 越西县| 汽车| 安龙县| 通城县| 嘉定区| 图木舒克市| 纳雍县| 沈丘县| 宿迁市| 嵊州市| 隆子县| 冕宁县| 永川市| 遵化市| 古交市| 山西省| 若羌县| 文化| 盘山县| 临颍县| 海伦市| 惠州市| 桂东县| 普宁市| 武宣县| 林芝县| 呼图壁县| 灵武市| 邻水| 黄龙县| 和龙市|