綁紮

在電腦科學中,所謂的綁紮Binding)是指創造一個簡單的參考(reference),並將它指向一個更複雜更大的結構以利後用。 此簡單參考可以替代此巨大結構,在之後的程式中輕盈地使用。

綁紮的分類

下列的行為可視為綁紮的範疇。

語言或名詞綁紮

語言或名詞綁紮指的是函式庫如何與應用程式連結,以及編譯器/直譯器如何管理連結符號(變數名稱)。

這些名詞在程式語言表示利用先前指定的變數符號來指涉數值。在這樣的情境下,綁紮是一種將機器記憶空間的位置與變數或符號產生關連的行為。此種關連要不是在編譯時間產生,此種關連稱為靜態連結(Static linking);或者是在執行期機動產生,則稱為動態連結(Dynamic linking)。

連結與綁紮有時是同樣意思。例如真實生活中的動態連結,指的是某人知道要在某時某地做事,但是他並不想查地址或找地圖,直到事情的期限要到了才開始尋找。類比於程式執行面,則是當一程式執行時(也許已執行很久),此程式至此時才得到對應的記憶體位置,並執行此位置的函式,此稱執行期綁紮

動態連結函式庫(例如Windows的.dll檔案,Linux上的動態函式庫)是典型的執行期綁紮函式庫。它們稱做後期綁紮(對比於早期綁紮,或稱編譯時期綁紮)。由於後期綁紮只會在程式第一次需要相關函式支援時才會匯入(若此程式從未呼叫相關函式,則此綁紮行為就不會啟動),因此此類綁紮策略也稱懶惰綁紮

Windows、Unix與Linux作業系統為了節省記憶體以及程式大小,通常將後期綁紮視為預設選項。若是要使用早期綁紮,通常要在編譯時間時就決定;此決定會讓產出的程式變得較大(因為他將所有用到的函式庫都一起編入程式中),但是可攜性較強(可以避免其他電腦沒有安裝所需函式庫的風險)。

早期綁紮有一項額外的特質,它避免了在後期綁紮中,更新函式庫卻造成程式無法執行的窘境。

命令綁紮

命令綁紮,通常指稱鍵盤巨集,或簡稱巨集,通常是用在專業應用程式中。很多情況下,鍵盤按鍵與指令之間的綁紮可以修改或增加,但通常無法移除。

許多命令綁紮都非常有名,例如Mac OS的儲存功能可以用Command-S按鍵組合來達到,因此每當使用者要儲存文件時,可直接按Command-S達到功能,而非每次都從選單選取。Emacs文書處理軟體提供了Control-X再按Control-C達到儲存再關閉本軟體的功能。另外,最為惡名昭彰的按鍵巨集應該是Windows當機時的Control-Alt-Delete按鍵了。

某些軟體,例如微軟Excel允許使用者自訂巨集,以簡化使用者的操作步驟,並將此巨集與某些命令名稱綁紮在一起。

控制流程綁紮

電子遊戲中所謂的流程綁紮,指的是將任何鍵盤按鍵與特定功能結合,而覆蓋其原本的鍵盤功能。一個擁有複雜控制介面的遊戲,例如絕對武力,可以依靠一串特定的按鍵以縮短複雜功能的輸入(例如遊戲內通訊)。

參閱

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.