为了顺利地进行下一步教学工作,不论学生对作品掌握是否娴熟,都要让学生在课堂上有完整演绎的机会。面对学生对于作品的完成和呈现,教师应该立即了解此作品中出现的基本问题,并给出相应的改正提升方法,处理完基本问题后,其他连带的细枝末节问题自然也会水到渠成。教师要严格要求学生做好课堂笔记,保证不遗漏重要内容,并在每次课前对前一次的笔记进行检查。......
2023-10-17
程序设计人员使用的高级语言是一个语言系统,机器语言是另一个语言系统,编译是把高级语言系统的源程序翻译成等价的机器语言系统的目标程序。因此,编译过程类同于人类之间两种语言系统(如英语到汉语)的翻译。
一个翻译人员要把用英语写的文字翻译成意义相同的汉语的文字,他必须具备理解英文单词的能力,理解英文单词构成句子的规则,理解英文句子所对应的汉语含义。这三种能力是完成翻译工作的基础;要达到好的翻译(例如一个文学作品的翻译)效果,还要在上述初步翻译的基础上进行修辞加工,最后才能得到好的汉语翻译文字。
类似地,编译程序要把用高级语言编写的源程序翻译成等价的机器语言形式的目标程序,编译程序就要能够识别出单词,掌握单词组成语句的规则,理解语句的含义,并要能够在此基础上,实现机器语言程序的优化,最后得到计算机可高效率执行的机器语言形式的目标程序。翻译过程和编译过程的对比见表7-4。
表7-4 翻译过程和编译过程的对比
从表7-4可见,编译过程至少包括五个子过程,即词法分析、语法分析、语义分析、代码优化和目标代码生成。这五个子过程不是互不相关的,而是紧密相关的,上一步工作是下一步工作的基础。因此,上一步程序要把工作的结果传送给下一步程序,编译过程还需要一个负责完成程序间信息传递工作的程序,这个程序在编译程序中称作信息表管理程序。程序设计人员设计的源程序可能存在各种各样的错误,编译程序在进行上述编译工作时,每一个环节都可能发现源程序中存在的错误,所以,编译过程还要包括错误检查和处理程序。因此,完整的编译过程应该包括七个子过程,这七个子过程之间的逻辑关系如图7-9所示。
图7-9 编译过程的逻辑结构(www.chuimin.cn)
词法分析、语法分析和语义分析是编译过程的基础。要使编译过程有效地进行,首先要解决的问题是如何确切地定义一种高级语言,其次要解决的问题是如何识别和分析这种高级语言。形式语言是解决上述两个问题的基础。
1959年,语言学家乔姆斯基在对一些自然语言语法研究的基础上,提出了一种用来描述语言(包括高级程序设计语言)的上下文无关文法。上下文无关文法是用一组数学符号和规则来描述语言的。利用上下文无关文法,对语言的分析过程变成了把具体的语句和该语言允许的文法规则进行匹配的过程。如果程序中的一条语句和该语言允许的任何一条文法规则相匹配,就认为该语句是正确的;如果程序中的一条语句和该语言允许的所有文法规则都不匹配,就认为该语句是错误的。
上下文无关文法可以表示成语法图的形式。例如,C语言赋值语句的语法图如图7-10所示。C语言程序的任何一条语句只要能归纳成图7-10中最上面的符号形式,就认为该语句是一条正确的赋值语句。如语句sum=sum+n就是一条正确的赋值语句,而语句sum=sum#n就不是一条赋值语句,因为符号“#”使该语句和赋值语句语法图中的所有规则都不匹配。
图7-10 赋值语句的语法分析树
有关计算机导论的文章
为了顺利地进行下一步教学工作,不论学生对作品掌握是否娴熟,都要让学生在课堂上有完整演绎的机会。面对学生对于作品的完成和呈现,教师应该立即了解此作品中出现的基本问题,并给出相应的改正提升方法,处理完基本问题后,其他连带的细枝末节问题自然也会水到渠成。教师要严格要求学生做好课堂笔记,保证不遗漏重要内容,并在每次课前对前一次的笔记进行检查。......
2023-10-17
好好观察他处理错误的方式对我们每个人而言,当然应该努力做到一切都是最好的,但人是无法做到完美元缺的。正在这时候,有个仆人从他身后走过,发现了卢梭手中的小丝带,立刻向伯爵报告。他结巴了好大一会儿,最后竟撒了个谎,说丝带是小厨娘玛丽偷给他的。这下子,伯爵彻底被激怒了,索性将卢梭和玛丽同时辞退了。其实只有正视错误的人才是坚强的。能够在大庭广众之下勇于承认错误并勇于改正错误,这是一件光荣的事情。......
2023-12-02
它的作用不是执行程序的功能,而是让编译系统了解,在对源程序进行编译前,进行处理。这种语句称为编译预处理语句,类似于汇编语言中的伪指令。为了与执行语句区别,编译预处理语句以#号开头,语句结束不用分号。图4-4P1口状态编译预处理语句有三种:文件包含、宏定义和条件编译。文件包含的功能是在编译源程序前,用包含文件的内容取代预处理语句。......
2023-11-07
随着一声铃响,考试开始了。每次考试,都会紧张,也不是平时没复习好,但就是紧张。平日就要熟悉考试的题型,有意识地针对考试的题型来练习。第三招,安排时间和题目。第五招,改变答案时注意,如果是发现明显的错误就毫不犹豫地改正。随着进入考试状态,你的大脑的思考力和记忆力都被激活到最佳状态,这时发现原来的答案错了就立即改正。第六招,检查时注意,对最初没把握的、已作上记号的题目,要重点检查。......
2023-08-11
行和列交叉形成单元格,它是存储数据的基本单位。将相同处理进行统一编号并合并单元格。选中C5单元格,将鼠标放在右下角,变成十字后,往右拖,即可得到第二天到第六天的平均值。数据输入与图14-2中相同,将同一个处理的三个重复进行单元格的合并见图14-5。图14-12点击数据菜单栏中的分列后的对话框选择分隔符号为“±”,可见数据被分为两列。......
2023-11-17
钢结构安装前应对建筑物的定位轴线、基础轴线和标高、地脚螺栓位置等进行检查,并应办理交接验收。当基础顶面直接作为柱的支承面、基础顶面预埋钢板(或支座)作为柱的支承面时,其支承面、地脚螺栓(锚栓)的允许偏差应符合表7-1的规定。4)钢柱地脚螺栓紧固后,外露部分应采取防止螺母松动和锈蚀的措施。......
2023-08-22
图2-1在SQL Tool上运行Query语句如上图2-1所示,可以得出直观的良好结果。如果是以往未运行过的SQL语句,则会进行硬解析过程。② 变更的SQL和变更前的SQL提取相同数据,变更 SQL是为了最大限度地减少处理范围以提高性能。③这是为相应SQL提供附加条件,以减少处理范围。2)制定执行计划为实际处理指定的SQL语句,Oracle通过多个步骤执行数据集的访问和处理操作。在数据库中制定SQL语句的执行计划与计划乘坐几号线到达目的地具有相同的意义。......
2023-11-01
化学热处理通常可分为分解、吸收和扩散三个基本过程,三个过程是互相联系而又互相制约的。实际上化学热处理过程中,渗剂的分解过程往往不只是发生一种化学反应,而是几种化学反应连续或交叉发生。这种情况也说明了化学热处理要在加热条件下进行,加热可使原子获得活力,如果温度低于某个限度,原子将失去活力而不能进入钢中。整个化学热处理过程的速度受扩散速度所控制。......
2023-06-24
相关推荐