在计算机科学中,所谓的绑定(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允许用户自定义宏,以简化用户的操作步骤,并将此宏与某些命令名称绑定在一起。
在电子游戏中所谓的流程绑定,指的是将任何键盘按键与特定功能结合,而覆盖其原本的键盘功能。一个拥有复杂控制接口的游戏,例如绝对武力,可以依靠一串特定的按键以缩短复杂功能的输入(例如游戏内通信)。