计算机导论实验指导

计算机导论实验指导

ID:36233118

大小:1.64 MB

页数:33页

时间:2019-05-07

计算机导论实验指导_第1页
计算机导论实验指导_第2页
计算机导论实验指导_第3页
计算机导论实验指导_第4页
计算机导论实验指导_第5页
资源描述:

《计算机导论实验指导》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机科学导论实验指导书侯杰TEL:13978392180QQ:149972615计算机中心2011.10实验1SimpSim模拟器环境及VisualC++编译调试环境【实验目的】1了解自然语言到机器语言的翻译过程2熟悉SimpleSimulator模拟器环境,掌握使用SimpleSimulator模拟程序的执行。3掌握SimpSim的单步运行方法,学会单步运行时对存储单元和各寄存器中值的进行观察。4熟悉VisualC++编译调试环境,掌握C语言源程序的建立、编辑、修改、保存。5掌握C语言程序的编译和程序调试。【实验准备】(1)自然语言到机器语言的翻译过程011101101110

2、1任何计算机内部都是用0和1的序列来表示的,这可以很容易地被计算机理解,但人们却不容易理解,另一方面,无论什么时候,在用像VisualC++这样高级语言编写程序的时候,我们使用了能被程序员所理解的一组指令或命令,但计算机却不容易理解。为了在人和机器之间搭建通信的桥梁,制定一个翻译过程是很有必要的。因为每台计算机只能理解它自己的语言(机器语言),所以最终必须将每个程序翻译为用机器语言书写的等价程序,这样计算机就能够理解并执行程序所指定的指令。执行这个翻译过程的计算机程序叫做翻译器,如图1.1所示。翻译器通常对指定的语言进行工作。也就是说,C程序的翻译器不能翻译Java语言程序,反之

3、亦然。有两种特定类型的翻译器用来执行高级语言的转换过程:编译器和解释器。图1.1翻译器的基本作用编译器翻译过程本身包含一系列对输入语言的转换。图1.2显示了编译器的通用阶段。虽然对包含在每个阶段的行为的具体讨论超出了本书的范围,但了解翻译过程的一些方面,以及如何与编写的程序进行联系,有利于对计算机程序编译调试过程的理解。在将程序递交到任何翻译器前,需要使用编辑器或文字处理程序来创建源程序。大部分翻译器需要文件扩展名,将程序保存为特定的类型。例如C编译器要求包含C程序的文件以“.C”作为扩展名。如果提交给翻译器的程序没有这个程序没有这个扩展名,编译器就不会对它进行翻译。一旦创建了程

4、序,它就被递交给预处理程序。正如其名字所指明的一样,该程序在“处理器”或编译器之前进行工作。它可能是一个独立于编译器的程序,也可能是具有不同名称的相同的编译器。预处理程序执行这样的任务,例如将一个或多个文件的内容合并入程序中,并在整个程序中用一个字符串取代另一个字符串。预处理程序扫描整个源代码,寻找“预处理指令”。这些指令以特定的字符或字符组合开始。例如,C编译器当遇到#include时就将文件并入。同样的编译器在遇到像#define这样的常量定义时就执行字符串替换操作。图1.2编译过程以及连接和装载当预处理程序完成其任务后,编译器开始执行。编译器的第一个阶段(词法分析阶段)检查

5、源程序中每个单独的字符并将它们组合成叫着token或Lexem的逻辑单元。例如,当C编译器读取下面的一系列字符时If(a>b)a++;编译器读取到序列“i后紧跟着f”,在遇到左圆括号后就是一个叫着“if”的逻辑单元,这个“if”和后面的每个字符都被识别并翻译为预定义的数字代码集。这一阶段的逻辑允许编译器识别C程序中每个可能的有效序列。从程序员的角度来看,这一阶段是很重要的,因为在这里编译器会产生类似“unidentifiedcharacters.”(不可识别的字符)这样的错误。例如,考虑在C程序中,程序员输入类似,“ń”这样不符合字母表的字符。当编译器“看到”这个字符时,会产生一

6、个错误,通知程序员已经发现了一个不可识别的符号。这种类型的错误属于“fatalerrors”(致命的错误),因为在检测到这样的错误后编译器就停止处理程序并退出。在这一阶段编译器产生的其他错误还有:“programtoobig”,“unexpectedendoffile”。后一个错误通常是由于多行注释语句没有结束。编译器的第二阶段由语法分析器来执行,从程序员的角度来看也是很有意义的,因为在这时编译器要寻找C代码的任何语法错误。可以把这一阶段看作是英文的语法检查功能。例如,假定程序员想要输入赋值语句a=b;但是却输入成了a++b;语法分析的内置逻辑就会把这看作是“无效表达式”并产生错

7、误。在这一阶段遇到的其他错误还有“missing;”(缺少分号),“Unmatchednumberofparentless”(圆括号数不匹配),“missingfuncutionprototype”(没有函数原型等)。编译器的语义分析阶段,作为一个单独的阶段显示在图1.2中,该阶段有时和语法分析阶段结合在一起。在这一阶段编译器鉴别语句,看是否虽然语法上正确,但却在语言中没有意义。例如,若a是一个布尔类型的变量,则赋值语句“a=a+2”,在语法上说是正确的,而在语义上是没有意义的。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。