计算机程序设计类实验报告格式

时间:2024.4.21

江西理工大学软件学院

计算机类课程实验报告

课程名称:                   

班    级:                   

姓    名:                   

学    号:                   

江西理工大学软件学院


实验 一 


第二篇:沈阳工业大学实验报告(计算机程序设计类)


课程名称: 《编译过程及其相关技术》

专业班级: 计算机科学与技术专业0806班 姓 名: 王丽瑶 学 号: 081201188 批阅时间:

指导教师: 钟玲 成 绩:

编译过程及其相关技术

专业班级:计算机科学与技术专业0806班 学号:081201188 姓名:王丽瑶

编译程序是计算机系统中重要的系统软件,是高级语言的支撑基础。主要介绍编译程序的基本知识。具体包括下面4个方面的内容:

(1) 编译程序

所谓翻译程序是指这样一个程序,它把一种语言(称作源语言)所写的程序(源程序)翻译成与之等价的另一种语言(称作目标语言)的程序(目标程序)。

如果源语言是高级语言,如Pascal,c,Ada,Java语言等,目标语言是诸如汇编语言或机器语言之类的低级语言,那么称这样的翻译程序为编译程序。 可见,编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。

(2) 编译过程

1. 词法分析。根据英语的词法规则,从由字母,空格字符和各种标点符号所组成的字符串中识别出一个一个的英文单词。

2. 语法分析。根据英语的语法规则,对词法分析后的单词串进行分析,识别,并作语法正确性的检查,看其是否组成一个符合英语语法的句子。

3. 语义分析。对正确的英文句子分析其含义,并用汉语表示出来。

4. 根据上下文的关系以及汉语语法的有关规则对词句作必要的修饰工作。

5. 最后翻译成中文。

(3) 编译程序的生成方法

1. 对源语言和目标语言认真分析

编译程序的功能是把某语言的源程序翻译成某台计算机上的目标程序。因此,我们首先要熟悉源语言,要正确理解它的语法和语义;其次要搞清楚目标语言和目标机的性质,在此基础上,确定编译程序的结构和所采用的具体策略。

2. 设计编译算法

设计编译算法是构造编译程序过程中最关键的一步。把一种语言程序翻译成另一种语言程序的方法方法很多,但在算法设计中要着重考虑如何使编译程序具有易读性,易改性和易扩充性。

3. 选择语言编译程序

根据所设计的算法选用某种语言编写出编译程序。

4. 调试编译程序

通过大量实例对编写好的编译程序进行调试,陶氏过程中不断修改,完善编译程序。

5. 提交相关文档资料

为方便用户,需提交一份有关编译程序的文档资料,内容包括源语言的文法,目标机指令系统,编译程序结构和所采用的具体策略,错误 1

信息表及使用说明等。

形式语言理论是编译的重要理论基础。语法——赋值语句由一个变量,一个后随赋值号“=”及其后跟一个表达式构成。语义——首先计算语句右部表达式的值,然后把所得结果送入左部变量中。语用——赋值语句用来计算和保存表达式的值。具体包括5各方面:

(1) 字母表和符号串

(2) 文法和语言的形式定义:当一个文法已知时,引进了有关直接推导推

导等概念。

(3) 短语,直接短语和句柄

(4) 语法树和文法的二义性

(5) 文法和语言的分类:

文法用于生成语言,不同的文法生成不同的语言。

著名的语言学家乔姆斯基将文法和语言分为4大类,即0型,1型,

2型和3型。划分依据是对文法中的规则施加不同的限制。

有穷自动机是构造词法分析程序的理论基础。

执行词法分析的程序称为词法分析程序,或称词法分析器或扫描器。

词法分析程序是以字符串形式的源程序作为输入,以单词符号表示的源程序作为输出。

语言单词符号的两种定义方式:为了构造出识别语言单词符号的词法分析程 序,必须首先搞清楚如何定义描述程序语言单词符号的结构。目前,对数程序设计语言的单词符号都能用正规文法(左线性文法或右线性文法)或正规式来定义。

正规式与有穷自动机:有穷自动机是具有离散输入与输出系统的一种抽象数学模型。有穷自动机有“确定的”和“非确定的”两类,确定的有穷自动机和非确定的有穷自动机都能准确的识别正规集。

正规文法与有穷自动机:程序设计语言的单词符号可以用乔姆斯基3型文法,即正规文法来描述。由形式语言和自动机理论可知,对于正规文法所描述的语言可以用一种有穷自动机来识别。

如果源语言是高级语言,如Pascal,c,Ada,Java语言等,目标语言是诸如汇编语言或机器语言之类的低级语言,那么称这样的翻译程序为编译程序。

可见,编译程序是一种翻译程序,它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。

语法分析具体包括4个方面内容:

(1) 语法分析程序的功能和语法分析方法

语法分析程序(语法分析器)的功能是以词法分析器生成的单词符号

序列作为输入,根据语言的语法规则(描述程序语言语法结构的上下

文无关文法),识别出各种语法成分,并在分析过程中进行语法检查,检查所给单词符号序列是否是该语言的文法的一个句子。若是,则以

该句子的某种形式的语法树作为输出;若不是,则表明有错误,并指

出错误的性质和位置。

目前,语法分析的方法分为两大类,即子上向下的分析方法和自下向

上的分析方法,或称自上而下的分析法和自下而上的分析法。所谓自

2

上而下的分析法就是从文法的开始符号出发,根据文法规则正想推导

出给定句子的一种文法;或者说,从树根开始,往下构造语法树,直

到建立每个树叶的分析方法。自下而上的分析方法是从给定的输入串

开始,根据文法规则逐步进行归约,直至归约到文法的开始符号;或

者说,从语法树的末端开始,步步向上归约,直至根结点的分析方法。 自下而上的分析方法是从给定的输入串开始,根据文法规则逐步进行

归约,直至归约到文法的开始符号;或者说,从语法树的末端开始,步步向上归约,直至根结点的分析方法。

(2) 递归下降分析法和预测分析法

组织与管理:编译过程中,适中涉及到对一些语法符号的处理,需要

用到这些语法符号的相关属性。为了在需要的时候能找到这些语法成

分及其相关属性,必须使用一些表格保存这些语法成分及其相关属

性,这些表格就是符号表。符号表是编译过程中主要的数据结构之一。

(3) 自下而上分析法的原理和算符优先分析法

程序是以字符串形式的源程序作为输入,以单词符号表示的源程序作为输出。

(4) LR分析法

LR分析法是一种自下而上进行规范归约的语法分析方法。这里的L

是指从左到右扫描输入符号串,R是指构造最右推导的逆过程。

语法制导翻译技术和中间代码生成:编译程序将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序,首先进行词法分析,得到单词符号序列,在进行语法分析,得到各类语法成分(或语法单位)。

属性文法是编译技术中用来说明程序设计语言的语义的工具,也是当 前在实际应用中比较流行的一种语义描述方法。

编译程序将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序,首先进行词法分析,得到单词符号序列,在进行语法分析,得到各类语法成分。

语法制导翻译法的基本思想:编译过程的语义分析阶段将要完成两项主要 工作,首先分析语言的含义,接着用一种中间代码将这种含义描述出来。目前广为使用的语义分析方法是语法制导翻译法,虽然它并非一种形式系统,但它比较接近形式化。

符号表的组织与管理:编译过程中,适中涉及到对一些语法符号的处理,需要用到这些语法符号的相关属性。为了在需要的时候能找到这些语法成分及其相关属性,必须使用一些表格保存这些语法成分及其相关属性,编译过程中,适中涉及到对一些语法符号的处理,需要用到这些语法符号的相关属性。为了在需要的时候能找到这些语法成分及其相关属性,必须使用一些表格保存这些语法成分及其相关属性,这些表格就是符号表。符号表是编译过程中主要的数据结构之一。

(1) 符号表的作用:

符号表是编译程序中主要的数据结构之一。它主要用来存放程序语言

中出现的有关标示符的信息。

(2) 符号表的组织:

由于处理对象的作用和作用域可以有多种,所以符号表也有多种组织

3

方式。按照处理对象的特点,符号表的组织方式一般可以分为直接方

式和间接方式。

(3) 符号表的建立与查找:

在编译程序中,符号表是一个主要的数据结构。插入、查找和删除这3种基本操作的效率根据数据结构的不同而变化很大。因此讨论符号表的简历和查找实质上是对不同结构组织策略的研究和对不同结构

效率的分析。

代码优化:某些编译程序在中间代码或目标代码生成之后要对生成的代码进行优化。

运行时的存储组织与管理:编译程序需进行目标程序运行环境的设计和数据空间的分配。分为静态存储分配策略和动态存储分配策略(动态存储分配中:栈式动态存储分配)

目标代码生成:编译程序最后一个阶段是目标代码生成。它通常在语义分析后或者优化后的中间代码上进行,并将中间代码转化为等价的目标代码。

并行编译技术基本常识:并行编译系统包括并行化工具,并行编译器和并行运行库等,其主要功能是将并行源程序转换为并行目标代码。现在比较成熟的是基于向量语言编译技术和共享存储器并行机编译技术的并行编译系统。

向量语言编译技术是针对向量计算机的,向量编译器的结构与串行编译器相似,但它支持向量语言所表述的并行特性和向量计算机所呈现的并行结构。而共享式存储器并行机的并行编译器主要是利用系统的同步通信机制组织程序,在具有共享存储器的多个处理机上并行执行。

4

更多相关推荐:
计算机实验报告模板

实验报告实验序号实验项目名称

计算机实验报告格式

电子信息工程学系实验报告适用于计算机课程课程名称面向对象程序设计实验项目名称Visualstudioc60集开发环境的使用实验时间班级计教101姓名蔡静学号实验目的1熟悉并学习使用C程序编译平台VC602掌握如...

计算机类实验报告格式

杭州电子科技大学计算机学院实验报告课程名称实验项目指导教师实验位置姓名班级学号日期

计算机实验报告格式模板

廊坊师范学院网络技术课程实验报告12

计算机实验报告格式模板

课程实验报告12

计算机实验报告格式

计算机上机实验报告课程名称教师姓名日期学号学生姓名班级院系

计算机实验报告范本

PowerPoint20xx演示文稿制作1.实验性质:设计性实验2.所属课程名称:大学计算机基础3.实验计划学时:44.实验目的1)掌握PowerPoint20xx的基本界面和文稿基本操作,掌握幻灯片编辑排版基…

计算机一级实验报告格式要求

计算机应用基础实验报告实验一WindowsXP基本操作一实验目的1234二实验题目操作的内容详见课内指导书三实验结果实验结果用操作的截图来体现并要求学生交实验结果的电子文档1233444第1页共3页计算机应用基...

计算机实验报告模板

宁夏师范学院数学与计算机科学学院数据结构实验报告实验序号01实验项目名称线性表的顺序表示和实现

计算机学院实验报告格式要求

实验报告学年第学期课程名称微型计算机原理与接口技术实验名称实验实验时间指导单位计算机学院指导教师学生姓名学院系年月日班级学号专业实验报告1实验报告2实验报告3实验报告4实验报告5

《大学计算机基础》实验报告格式(实验5-2)

《大学计算机基础》实验报告格式(实验5-2),内容附图。

Java程序设计课程上机实验报告模板一

昆明理工大学信息工程与自动化学院学生实验报告20xx20xx学年第2学期课程名称Java程序设计开课实验室44420xx年3月27日一上机目的及内容1实验目的1掌握Java语言的基本语法成分2掌握在JDK环境中...

计算机实验报告格式(40篇)