绑定/约束
(binding)指两个东西之间的关联。如 名字
与它所代表的事物。又如属性与实体之间的关联,又或者符号与操作之间的关联。
早期的书翻译成约束,后期的多数称绑定。后续都称绑定。
绑定发生的时间称为 绑定时间
(binding time)。
绑定 和 绑定时间 是程序设计语言中了个非常重要的概念。
绑定可以发生在语言设计时、语言实现时、编译时、连接时、载入时和运行时。
一、语言设计时
多数语言中运算符、流程控制结构、内部类型、对象的构造形式等都是在语言设计时决定的。
如星号(*)在语言设计时与乘法操作绑定。
二、语言实现时
多数语言手册都留下了许多问题,要求语言的实现者去仔细考虑和决定如何实现?
如基本类型的精度(取值范围),c中的int在实现时与取值范围绑定。
又如 栈和堆得阻止方式和最大规模。
三、编译时
编译器选择了如何将高级的结构映射到机器代码,包括静态定义的数据在内存里的布局方式。
如java中的 变量
是在编译时绑定于某特定的数据类型。
四、连接时
大部分编译器支持“分别编译”,连接器根据各模块的情况选择整体布局,并解决跨模块的相互引用关系。需要由连接器把不同的模块集合一起。
五、载入时
指操作系统将程序载入内存,使之能够执行的那个时刻。
如java程序载入后变量与一个存储单元绑定。
六、运行时
这是个广义的概念,它覆盖了从程序执行开始到结束的这个时间跨度。
如变量与值的绑定发生运行时。但许多其它决策事项的情况则根据语言的不同而不同。
绑定又分为 静态绑定
与 动态绑定
。
静态绑定/早绑定
指在运行之前建立的绑定,且在整个程序执行过程期间保持不变。
动态绑定/晚绑定
指在运行期间建立的绑定,且在执行过程中可被改变。
当然,静态与动态都是很粗略的说法。因为运行时的概念本身就很广泛,并不严格。
纯编译型语言
(静态语言),自然是早绑定的。它们效率更高,因为它们更早的做出了决策。
编译器只对全局变量的语法语义做一次分析,即程序未运行之前完成。在那时就已确定这些变量的在内存中的布局,并生成出发问它们的高效代码。
纯解释型语言
(动态语言),自然是晚绑定的。它们更灵活,因为它们把许多决策推迟到运行时才做。相应的其效率较低。
它可能在每次运行时分析一些声明,甚至子程序每次调用时解释器都要去分析局部变量。
分享到:
相关推荐
绑定/约束 (binding)指两个东西之间的关联。如 名字 与它所代表的事物。又如属性与实体之间的关联,又或者符号与操作之间的关联。
在这项工作中,提出了一种用于确定一般线性最大化问题的... 在没有多余约束的LP问题中,该算法可以100%成功地识别绑定约束,而在一系列包含多余约束的大规模LP测试问题中,该算法被视为绑定约束识别的统计工具90.4%。
dynareOBC:一种用于在Dynare中实现偶尔绑定约束的工具包
如果在提示被证明有效时可以减少或消除因绑定冲突而导致的潜伏期增加的影响,则与绑定冲突有关的条件的RT降低将比不具有约束力的条件所表现出更大的潜伏期减少(相对于无提示的线索试验)。 即使数据显示提示信息已...
Swift 数据绑定框架。.zip,迅速的约束性框架
为探讨钢框架结构中柱子移除后,框架节点对梁的绑定约束力计算方法,分析了英国结构设计规范(BR2000 和BSI2000)中的钢结构抗连续倒塌设计要求及名义值,并对若干 H-型柱以及钢管柱节点的计算绑定约束力和实测节 点断裂...
在线性编程(LP)应用程序中,意外的非绑定约束是“为什么”问题之一,可能引起大量争论。 也就是说,基于价格信号,市场驱动因素或经理的经验,预期那些约束一直很活跃。 在这种情况下,用户必须解决许多辅助LP问题...
在本算法中,首先采用距离场方法求取模型的骨架关节点,然后在关节点上插入刚性约束架,再用均值坐标将刚性约束架和模型绑定到一起,最后通过求解包含微分约束和局部刚性约束的能量方程得到变形结果。实验表明,本...
2 ) “ Attach property ” 绑定约束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 ) “ Assignment table...
大约30%的绑定是用C ++ / CLI编写的,此处的大多数代码是C#。 可以从C#或VB或任何其他CLR语言中使用它。 CefSharp提供WPF和WinForms Web浏览器控件实现。 CefSharp已获得许可,因此可以在专有和免费/开源应用...
绑定约束的多图像最小二乘匹配的多分辨率图像
2)“Attach property”绑定约束..................................................................... 6 3)“Assignment table”约束规则分配........................................................ 8 二...
RBF Drivers是一种快速、简单的方法,可以显着增强 Blender 中的绑定。如果您尝试解决约束、繁琐的权重绘制或复杂且耗时的驱动程序设置的问题,RBF 驱动程序通常可以在几分钟内提供解决方案,否则可能需要数小时、数...
综述:B866规划两个WAN。 1.路由WAN用于直接上外网,需要上外网的SSID通过VLAN WAN绑定来实现。 2. 桥接WAN用于上内网 ...约束条件: 内网需要有自己的出口网关设备(内置DHCP SERVER), B866只是作为桥接设备。
1.掌握约束的定义及其删除方法。 2.掌握规则的创建、使用和删除方法。 3.掌握默认对象的创建、使用和删除方法。 4. 掌握使用触发器实现数据完整性的方法。 二、实验准备 1.了解数据完整性概念。 2.了解约束的...
B866规划两个WAN: 1.路由WAN用于直接上外网,需要上外网的SSID通过VLAN WAN绑定来实现。 2. 桥接WAN用于上内网 ...约束条件: 内网需要有自己的出口网关设备(内置DHCP SERVER), B866只是 作为桥接设备。
matlab开发-Vert2垂直测试约束。创建不等式约束以绑定给定点的凸包。
它支持基本类型系统,变量绑定,算术约束,并具有多个专用协定(特别是对于Numpy数组)。 作为快速介绍,请参阅。 下面是一个简短的摘要。 请参阅完整的文档,为:< > 原因:PyContracts的目的不是将Python转换...
如果R具有相当大的看不见的分支比,则矢量耦合和轴向矢量耦合上绑定的最强LHC来自带有或不带有双b标签的di-jet +E̸T搜索。 即使我们已经关闭了所有与价夸克的耦合,对于mR <1 TeV,这些界限还是很强的。 即使...
常见的授权约束包括角色约束,职责分离(SoD),职责绑定(BoD)和时间约束。 本文提出了检查这些约束条件可行性的方法,并确定了时间约束条件不会对性能造成负面影响的持续时间。 此外,本文提出了一种最优的授权...