在计算机科学中,所谓的绑扎(Binding)是指创造一个简单的参考(reference),并将它指向一个更复杂更巨大的结构以利后用。 此简单参考可以替代此巨大结构,在之后的程序中轻盈地使用。
语言或名词绑扎
主条目:[[名词绑扎(Name binding)]]
或
主条目:[[语言绑扎(Language binding)]]
语言或名词绑扎指的是函式库如何与应用程序连结,以及编译器/直译器如何管理连结符号(变量名称)。 这些名词在编程语言表示利用先前指定的变量符号来指涉数值。在这样的情境下,绑扎是一种将机器记忆空间的位置与变量或符号产生关联的行为。此种关联要不是在编译时间产生,此种关联称为静态连结(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允许使用者自订宏,以简化使用者的操作步骤,并将此宏与某些命令名称绑扎在一起。
控制流程绑扎
在电子游戏中所谓的流程绑扎,指的是将任何键盘按键与特定功能结合,而覆盖其原本的键盘功能。一个拥有复杂控制接口的游戏,例如绝对武力,可以依靠一串特定的按键以缩短复杂功能的输入(例如游戏内通讯)。