绑定

✍ dations ◷ 2025-06-28 22:02:14 #计算机科学

在计算机科学中,所谓的绑定(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允许用户自定义宏,以简化用户的操作步骤,并将此宏与某些命令名称绑定在一起。

在电子游戏中所谓的流程绑定,指的是将任何键盘按键与特定功能结合,而覆盖其原本的键盘功能。一个拥有复杂控制接口的游戏,例如绝对武力,可以依靠一串特定的按键以缩短复杂功能的输入(例如游戏内通信)。

相关

  • 双糖双糖(英语:Disaccharide,亦称为二糖)是由两个单糖分子经缩合反应除去一个水分子而成的一种碳水化合物。双糖和单糖一样可溶于水。常见的双糖为蔗糖、乳糖、麦芽糖。蔗糖是由葡萄
  • 反气旋反气旋是三维空间上的涡旋,是描述大气运动的概念。是在近地面,气流向外辐散,中心气流下沉的一种天气系统。在近地面,反气旋在北半球作顺时针旋转,在南半球做逆时针旋转。反气旋与
  • 心理心理哲学一词有歧义,可能指:
  • 朝鲜国家宇宙开发局朝鲜国家宇宙开发局(韩语:국가우주개발국;官方英文译名:National Aerospace Development Administration,简称NADA)是朝鲜于2013年4月1日在第十二届最高人民会议中成立的国家中央
  • 可变比冲磁等离子体火箭可变比冲磁等离子体火箭是用于航天器推进的一种电磁推进器。它利用无线电波电离并加热推进剂,并用一个磁场来加速产生的等离子体产生推力。它是一种电推进系统。加热等离子
  • 毛舌菌属详见内文毛舌菌属(学名:Trichoglossum)是地舌菌纲下的一个属,其模式种为毛舌菌。本属物种产孢的子实层体表面上均有细小的刚毛,与其关系接近的地舌菌属子实层体表面则没有刚毛。
  • 福尔摩沙卫星五号福尔摩沙卫星五号(英语:FORMOSAT-5,缩写为FS-5,简称福卫五号或福五)是台湾的太阳同步轨道卫星,亦为首个由台湾完全自主研发的光学遥测卫星及第四个自主拥有的人造卫星;属于中华民国
  • 笠诗刊笠诗社是台湾的一个现代诗诗社,成立于1964年6月,由注重台湾现实状况的一群现代诗人:白萩、陈千武、杜国清、赵天仪、林亨泰、李魁贤、王羡阳、詹冰、锦连、吴瀛涛、黄荷生、古
  • 印度尼西亚总统印度尼西亚总统即为印度尼西亚国家元首、政府首脑和武装部队最高统帅。自2004年第六任总统的选举产生开始,总统和副总统改由全国直接选举,只能连选连任一次,每任五年;之前印尼总
  • 泌阳县.mw-parser-output ruby.zy{text-align:justify;text-justify:none}.mw-parser-output ruby.zy>rp{user-select:none}.mw-parser-output ruby.zy>rt{font-feature-settings: