- 1
- 0
- 约8.75千字
- 约 51页
- 2018-04-10 发布于广东
- 举报
虚拟机的层次 返回本节 绑定和绑定时间 绑定:程序元素与其特性或性质的约束关系。 绑定时间:绑定所发生的时间(翻译或执行)。 绑定和绑定时间可由语言定义或由实现来确定。 绑定时间的分类 执行时(运行时刻) 绑定在程序执行时完成。具体包括变量与值以及变量与其存储单元的绑定关系。这种绑定关系存在两种主要子类: 进入时:在进入一个子程序或一个块结构时发生。如在C语言中,形式参数与 实际参数的绑定,形式参数与存储单元的绑定在程序执行进入一个子程序时就发生。如 int maxInt(int x, int y) main() { if (xy) maxInt = y; ( int a=5, b=8, maxNum; else maxInt= x; } maxNum= maxInt(a,b);} 执行时:在程序执行的任何时候发生。如变量与值通过赋值语句产生的绑定。如,int x; x=12; 转换时(编译时) 程序设计者选定:程序设计者有意识地选择变量名、变量的类型和语句结构等在编译时绑定。如变量定义并初始化时,变量与值的绑定,如 char ch=‘a’; 翻译程序选定:在没有直接规范的情况下,由翻译程序确定。如C语言中一个变量与其存储单元的绑定。如 int ary[10]; 装载程序确定:分别编译的情况下,变量与其存储单元的最终物理存储单元的绑定(重定向),由装载程序确定。如 子程序 变量 编译后P(X)的地址 重定向后P(X)的地址 P x 0~999 (165) 1000~1999( 1165) 语言实现时: 绑定时间一般允许在语言定义中指定。语言设计可以规定一个特别的约束在翻译时间确定,但实际上绑定的时间是由语言的实现所定义的。如,对于Pascal语言,变量的类型在编译时就已确定,但Pascal实现可能在执行时进行类型检查。 语言定义时: 语言的大部分结构是在语言定义时确定的。如选择语句的形式、数据结构类型和程序结构通常在语言定义时是固定的。 实例研究 为了进一步说明绑定和绑定时间,我们试考虑如下简单的实例 X=X+10 1) 变量X的类型集:变量X一般都有一个类型,如实型、整型、布尔类型等。X的类型通常在语言定义时确定,如只有实型、整型、布尔类型、集合类型是允许类型。此时,变量X的类型集绑定时间是语言定义时。有的语言,如C,Java等,允许在程序中自定义类型,则变量X的类型集绑定时间是编译时。 2)变量X的类型:变量X的具体类型一般在编译时确定。通常通过在程序中使用显式声明语句,如C中的 int X。 一些语言如Fortran,Basic语言,程序中的简单变量可以不用显式声明,此时,变量X的类型只能在程序运行过程中,通过赋给变量X的值的类型来确定变量X的类型,此时,变量X的具体类型的绑定时间是运行时。如Basic语言 10 LET X = 12.3 20 LET X = X+10 3) 变量X可能的值:如果X的类型是实型,则X的值就是实数集合中的一个元素,该集合的大小由定义语言的虚拟计算机可以表示和操作的实数确定,它通常是机器硬件上可以方便表示的全体实数。所以,变量X可能的值的绑定时间是语言定义时。 4) 变量X的值:在程序执行的任何一点,变量X都有一个值。如果在定义变量X时进行了初始化,则编译时就将实际的值与变量X绑定。如 int X=12。如果,没有进行初始化,有的语言如C,在编译时将分配给变量X的存储单元中的值与X绑定,有的语言根据变量X的类型自动进行初始化,如将X初始化为0。 在程序运行过程中,通常会根据赋值语句重新改变变量X与其值的绑定关系。此时,变量X与其值的绑定时间是运行时。 5)常数10的表示:在程序文本中,整数10是使用字符串“10”表示的,而在执行时表示为一个位串序列。在程序文本中,选择10进制表示法通常是在语言定义时确定的,而在运行时如何表示为一个位串序列是由语言实现时确定的。即常数10在语言定义时进行了一个绑定,而在语言实现时,重新进行绑定。 6)操作符“+”的性质:操作符“+”可以是加法操作,也可能是字符串连接操作。这种可能的性质是由语言定义时确定的。即操作符“+”可能的操作性质的绑定时间是语言定义时。 但操作符“+”的具体操作性质
您可能关注的文档
- 八年级地理上册第一章课件八年级地理上册第一章第三节民族共27张(7175KB).ppt
- 城规原理电子板书上第四章(8785KB).ppt
- 八年级地理上册第一章课件八年级地理上册第一章第一节疆域共39张(2859KB).ppt
- 八年级地理上册复习题课件(397KB).ppt
- 城规原理电子板书上第五章(254KB).ppt
- 八年级地理四大地理区域的划分公开课(2031KB).ppt
- 城规原理电子板书上第一章(3421KB).ppt
- 八年级地理下册82干旱的宝地——塔里木盆地(3139KB).ppt
- 城规原理电子板书上控规范例(2990KB).ppt
- 八年级地理下册北方地区和南方地区课件人教新课标版课件(2902KB).ppt
- 河北省石家庄市2026届高三11月期中教学质量摸底检测语文试题含答案.doc
- 山东省济宁市2026届高三上学期期中质量检测语文试题含答案.doc
- 江西省宜春市2026届高三上学期一轮诊断考试语文试题含答案.doc
- 北京市丰台区2026届高三上学期期末语文试题及答案.doc
- 北京市东城区2026届高三上学期期末语文试题及答案.doc
- 2025年四川省攀枝花市中考物理试题(含答案解析).doc
- 浙江省宁波市2026届高三第一学期11月高考模拟考试语文试题含答案.doc
- 山东省菏泽市2026届高三上学期期中考试语文试题含答案.doc
- 上海市闵行区2026届高三一模语文试题及答案.doc
- 上海市长宁区2026届高三一模语文试题及答案.doc
最近下载
- 广东省深圳市宝安区2024-2025学年三年级上学期期末科学试卷.docx VIP
- 2025年商务英语(BEC)中级考试真题卷:商务英语阅读理解提高策略与真题剖析.docx VIP
- ‘十五五’卫生健康事业高质量发展规划及医院高质量发展实施方案.docx
- 《苏武传》课件35张.pptx VIP
- 1999年及其以前批准转业的军队干部住房保障办法.doc VIP
- 关于做好新型冠状病毒感染肺炎疫情防控期间稳定劳动关系支持企业复工复产的实施意见.doc VIP
- 高考数学解三角形专题.pdf VIP
- 2025年体育行业青少年体育培训报告.docx
- EQC-1137-2007-chs 电镀锌层及镀后表面处理.pdf
- 自动化集装箱码头管理.docx VIP
原创力文档

文档评论(0)