编译原理实践及应用.

合集下载

编译原理实验报告

编译原理实验报告

编译原理实验报告一、实验目的本次编译原理实验的主要目的是通过实践加深对编译原理中词法分析、语法分析、语义分析和代码生成等关键环节的理解,并提高实际动手能力和问题解决能力。

二、实验环境本次实验使用的编程语言为 C/C++,开发工具为 Visual Studio 2019,操作系统为 Windows 10。

三、实验内容(一)词法分析器的设计与实现词法分析是编译过程的第一个阶段,其任务是从输入的源程序中识别出一个个具有独立意义的单词符号。

在本次实验中,我们使用有限自动机的理论来设计词法分析器。

首先,我们定义了单词的种类,包括关键字、标识符、常量、运算符和分隔符等。

然后,根据这些定义,构建了相应的状态转换图,并将其转换为程序代码。

在实现过程中,我们使用了字符扫描和状态转移的方法,逐步读取输入的字符,判断其所属的单词类型,并将其输出。

(二)语法分析器的设计与实现语法分析是编译过程的核心环节之一,其任务是在词法分析的基础上,根据给定的语法规则,判断输入的单词序列是否构成一个合法的句子。

在本次实验中,我们采用了自顶向下的递归下降分析法来实现语法分析器。

首先,我们根据给定的语法规则,编写了相应的递归函数。

每个函数对应一种语法结构,通过对输入单词的判断和递归调用,来确定语法的正确性。

在实现过程中,我们遇到了一些语法歧义的问题,通过仔细分析语法规则和调整函数的实现逻辑,最终解决了这些问题。

(三)语义分析与中间代码生成语义分析的任务是对语法分析所产生的语法树进行语义检查,并生成中间代码。

在本次实验中,我们使用了四元式作为中间代码的表示形式。

在语义分析过程中,我们检查了变量的定义和使用是否合法,类型是否匹配等问题。

同时,根据语法树的结构,生成相应的四元式中间代码。

(四)代码优化代码优化的目的是提高生成代码的质量和效率。

在本次实验中,我们实现了一些基本的代码优化算法,如常量折叠、公共子表达式消除等。

通过对中间代码进行分析和转换,减少了代码的冗余和计算量,提高了代码的执行效率。

编译原理实验报告总结

编译原理实验报告总结

编译原理实验报告总结一、实验目的编译原理是计算机科学中的一门重要课程,通过实验可以更深入地理解编译过程的各个阶段,包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。

本次编译原理实验的目的主要有以下几点:1、加深对编译原理理论知识的理解和掌握,将抽象的概念通过实际操作转化为具体的实现。

2、培养实际动手能力和解决问题的能力,通过编写代码实现编译程序的各个模块,提高编程技能和调试能力。

3、熟悉编译程序的开发流程和工具,掌握相关编程语言和开发环境的使用。

4、培养团队合作精神和沟通能力,在实验过程中与小组成员共同探讨、解决问题,提高协作效率。

二、实验环境本次实验使用的编程语言为 C/C++,开发环境为 Visual Studio 2019。

同时,使用了一些辅助工具,如调试工具、代码管理工具等,以提高开发效率和代码质量。

三、实验内容1、词法分析任务:使用正则表达式或有限自动机实现对输入源程序的词法分析,将源程序分解为一个个单词,并识别出单词的类型,如标识符、关键字、常量、运算符等。

实现方法:采用有限自动机的方法,设计状态转移图,根据输入字符的类型进行状态转移,最终确定单词的类型。

遇到的问题及解决方法:在处理一些边界情况时,如字符串中的转义字符,出现了识别错误。

通过仔细分析正则表达式和有限自动机的规则,对代码进行了相应的修改和完善,解决了问题。

2、语法分析任务:使用自顶向下或自底向上的语法分析方法,对词法分析得到的单词序列进行语法分析,构建语法树。

实现方法:选择了自顶向下的递归下降分析法,根据语法规则编写递归函数,逐个处理单词,构建语法树。

遇到的问题及解决方法:在处理复杂的语法结构时,出现了回溯和左递归的问题,导致分析效率低下。

通过消除左递归和提取公共因子,优化了语法分析算法,提高了分析效率。

3、语义分析任务:在语法分析的基础上,进行语义分析,检查语法正确的程序是否在语义上也是正确的,如类型匹配、变量未定义等。

中北编译原理实验报告

中北编译原理实验报告

一、实验目的1. 理解编译原理的基本概念,掌握编译程序的设计方法和流程。

2. 掌握编译过程中的词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等基本步骤。

3. 提高实际编程能力,培养严谨的编程思维。

二、实验环境1. 操作系统:Windows 102. 编译器:Visual Studio 20193. 编译原理实验平台:C++语言编写三、实验内容1. 词法分析器设计(1)词法分析器原理:词法分析器是编译程序中的第一个阶段,其作用是将源程序中的字符序列转换为一系列的单词符号。

本实验采用正则表达式来定义单词符号,并使用有限自动机实现词法分析。

(2)实验步骤:a. 定义单词符号:根据实验要求,设计正则表达式来定义单词符号。

b. 构建有限自动机:根据正则表达式,构建有限自动机的状态转移图。

c. 实现词法分析器:编写C++代码实现词法分析器,包括有限自动机的构建和状态转移过程。

2. 语法分析器设计(1)语法分析器原理:语法分析器是编译程序中的第二个阶段,其作用是检查源程序中的语法结构是否正确。

本实验采用递归下降分析法实现语法分析。

(2)实验步骤:a. 定义语法规则:根据实验要求,设计语法规则。

b. 构建语法分析树:根据语法规则,构建语法分析树。

c. 实现语法分析器:编写C++代码实现语法分析器,包括递归下降分析法和语法分析树的构建。

3. 语义分析器设计(1)语义分析器原理:语义分析器是编译程序中的第三个阶段,其作用是检查源程序中的语义是否正确。

本实验采用符号表来实现语义分析。

(2)实验步骤:a. 设计符号表:根据实验要求,设计符号表结构。

b. 实现语义分析器:编写C++代码实现语义分析器,包括符号表的构建和语义检查过程。

4. 中间代码生成(1)中间代码生成原理:中间代码生成是编译程序中的第四个阶段,其作用是将源程序转换为中间代码。

本实验采用三地址码作为中间代码。

(2)实验步骤:a. 设计三地址码:根据实验要求,设计三地址码格式。

编译原理实验报告

编译原理实验报告

编译原理实验报告一、实验概述本次实验旨在设计并实现一个简单的词法分析器,即实现编译器的第一个阶段,词法分析。

词法分析器将一段源程序代码作为输入,将其划分为一个个的词法单元,并将其作为输出。

二、实验过程1.设计词法规则根据编程语言的规范和所需实现的功能,设计词法规则,以明确规定如何将源程序代码分解为一系列的词法单元。

2.实现词法分析器采用合适的编程语言,根据所设计的词法规则,实现词法分析器。

词法分析器的主要任务是读入源程序代码,并将其根据词法规则进行分解,生成对应的词法单元。

3.测试词法分析器设计测试用例,用于检验词法分析器的正确性和性能。

测试用例应包含各种情况下的源程序代码。

4.分析和修正错误根据测试过程中发现的问题,分析产生错误的原因,并进行修正。

重复测试和修正的过程,直到词法分析器能够正确处理所有测试用例。

三、实验结果我们设计了一个简单的词法分析器,并进行了测试。

测试用例涵盖了各种情况下的源程序代码,包括正确的代码和错误的代码。

经过测试,词法分析器能够正确处理所有的测试用例。

词法分析器将源程序代码分解为一系列的词法单元,每个词法单元包含了单词的种类和对应的值。

通过对词法单元的分析,可以进一步进行语法分析和语义分析,从而完成编译过程。

四、实验总结通过本次实验,我深入了解了编译原理的词法分析阶段。

词法分析是编译器的第一个重要阶段,它将源程序代码分解为一个个的词法单元,为后续的语法分析和语义分析提供基础。

在实现词法分析器的过程中,我学会了如何根据词法规则设计词法分析器的算法,并使用编程语言实现词法分析器。

通过测试和修正,我掌握了调试和错误修复的技巧。

本次实验的经验对我今后的编程工作有很大帮助。

编译原理是计算机科学与技术专业的核心课程之一,通过实践能够更好地理解和掌握其中的概念和技术。

我相信通过进一步的学习和实践,我能够在编译原理领域取得更大的成果。

编译原理实验报告

编译原理实验报告

编译原理实验报告一、实验目的编译原理是计算机科学中的重要学科,它涉及到将高级编程语言转换为计算机能够理解和执行的机器语言。

本次实验的目的是通过实际操作和编程实践,深入理解编译原理中的词法分析、语法分析、语义分析以及中间代码生成等关键环节,提高我们对编译过程的认识和编程能力。

二、实验环境本次实验使用的编程语言为C++,开发环境为Visual Studio 2019。

此外,还使用了一些相关的编译工具和调试工具,如 GDB 等。

三、实验内容(一)词法分析器的实现词法分析是编译过程的第一步,其任务是将输入的源程序分解为一个个单词符号。

在本次实验中,我们使用有限自动机的理论来设计和实现词法分析器。

首先,定义了各种单词符号的类别,如标识符、关键字、常量、运算符等。

然后,根据这些类别设计了相应的状态转换图,并将其转换为代码实现。

在实现过程中,使用了正则表达式来匹配输入字符串中的单词符号。

对于标识符和常量等需要进一步处理的单词符号,使用了相应的规则进行解析和转换。

(二)语法分析器的实现语法分析是编译过程的核心环节之一,其任务是根据给定的语法规则,分析输入的单词符号序列是否符合语法结构。

在本次实验中,我们使用了递归下降的语法分析方法。

首先,根据实验要求定义了语法规则,并将其转换为相应的递归函数。

在递归函数中,通过对输入单词符号的判断和处理,逐步分析语法结构。

为了处理语法错误,在分析过程中添加了错误检测和处理机制。

当遇到不符合语法规则的输入时,能够输出相应的错误信息,并尝试进行恢复。

(三)语义分析及中间代码生成语义分析的目的是对语法分析得到的语法树进行语义检查和语义处理,生成中间代码。

在本次实验中,我们使用了三地址码作为中间代码的表示形式。

在语义分析过程中,对变量的定义和使用、表达式的计算、控制流语句等进行了语义检查和处理。

对于符合语义规则的语法结构,生成相应的三地址码指令。

四、实验步骤(一)词法分析器的实现步骤1、定义单词符号的类别和对应的正则表达式。

《编译原理实践及应用》编译原理概述详解

《编译原理实践及应用》编译原理概述详解

(5) 常数
《编译原理实践及应用》 第19页
例:
单词 begin area :=
类型 关键字 标识符 界符
内部形式 $begin id1 :=
begin area:=5+length*width +length *width end;
5 +
length * width +
length *
width end
. . . . . .
. . . . . .
Basic语言
第10页
编译程序
源程序
编译程序 目标程序 结果
输入数据
计算机运行
解释程序
源程序 解释程序
结果
输入数据
2018年10月13日星期六 《编译原理实践及应用》 第11页
对编译程序的一些说明
• 编译程序实质上是一个翻译程序,要注意等价变换 • 本课程的任务就是讲解在这个转换过程中所涉及到的一些 理论和方法,最后,使用这些理论和方法,自己编写一个 小的编译器 • 转换是一个总体的功能,要抓住总体结构,逐层细分,写 编译器时要体现软件工程中软件设计的原则,自顶向下, 逐层分解。
表达式的运算也是表达式
例:识别符号串id1:=int1 + id2 * id3 + id2 * id3是一个赋值语句 ( area:=5+length*width+length *width) 而int1 + id2 * id3 + id2 * id3是一个表达式 ( 5+length*width+length *width )
《编译原理实践及应用》
第17页
用一个例子说明各阶段的功能
/*一个PASCAL语言的源程序*/ program test; /*this is an example,computing an area*/ var area, length, width: integer; begin length:=5;width:=5; area := 5+length *width+length *width end.

编译原理实习报告

编译原理实习报告

编译原理实习报告一、实习目的和意义编译原理是计算机科学的核心分支之一,涉及到将一种编程语言转换成另一种编程语言的过程。

通过本次实习,我希望能够深入理解编译原理的基本概念、方法和实现技术,提高自己的编程能力和软件设计能力。

二、实习内容和步骤1. 阅读实习指导书和相关的理论知识,了解编译程序的基本思想和构造方法。

2. 选择一个自己熟悉的程序设计语言,例如C语言,作为编译对象。

3. 设计并实现一个C语言子集的编译程序,包括词法分析、语法分析和语义分析等功能。

4. 对编译程序进行测试和调试,修复可能存在的问题和错误。

5. 撰写实习报告,总结实习过程中的经验和教训。

三、实习过程和成果在实习过程中,我首先阅读了相关的理论知识和实习指导书,对编译原理的基本概念和实现方法有了更深入的理解。

然后,我选择了C语言作为编译对象,并设计了一个C语言子集的编译程序。

在实现编译程序的过程中,我首先编写了词法分析器,用于识别源代码中的单词和符号。

然后,我编写了语法分析器,用于分析源代码的语法结构。

最后,我编写了语义分析器,用于检查源代码中的语义错误。

在完成编译程序的实现后,我对程序进行了测试和调试,发现并修复了一些可能的问题和错误。

通过测试,我发现我的编译程序能够正确地编译和生成目标代码。

最后,我撰写了实习报告,总结了实习过程中的经验和教训。

我意识到编译原理不仅是理论知识的掌握,还需要通过实践来加深理解和提高能力。

同时,我也学会了如何设计和实现一个简单的编译程序,提高了自己的编程能力和软件设计能力。

四、实习收获和展望通过本次实习,我对编译原理的基本概念和实现方法有了更深入的理解,提高了自己的编程能力和软件设计能力。

我学会了如何设计和实现一个简单的编译程序,并能够将其应用于实际的编程实践中。

在未来的学习和工作中,我将继续深入学习和研究编译原理相关的知识和技术,提高自己的专业水平和竞争力。

同时,我也希望能够将编译原理的应用扩展到更多的编程语言和领域中,为自己的职业发展打下更坚实的基础。

gcc编译原理与实践 pdf

gcc编译原理与实践 pdf

gcc编译原理与实践 pdf一、引言GCC(GNU Compiler Collection,GNU编译器集合)是 GNU 项目的一个重要组成部分,它是一个功能强大的编译器,能够将高级语言程序转换为可执行文件。

GCC 广泛应用于各种操作系统和平台,包括Linux、Windows 和 macOS 等。

在本篇文章中,我们将探讨 GCC 的编译原理以及如何实践使用它。

二、GCC编译原理1. 词法分析:GCC 编译器将源代码按照特定的规则分割成一系列的标记(token),这些标记代表了语法单元。

2. 语法分析:GCC 将标记转换为抽象语法树(AST),这个过程被称为语法分析。

AST 是源代码的抽象表示,它包含了程序的结构和语义信息。

3. 语义分析:GCC 对 AST 进行语义分析,以确保程序符合语言规范,并且所有变量和表达式都有正确的类型。

4. 代码生成:GCC 将 AST 转换为目标机器的机器代码,这个过程被称为代码生成。

生成的代码可以直接在目标机器上运行。

5. 优化:GCC 在编译过程中可以进行各种优化,以提高生成的代码的性能和效率。

三、实践使用GCC1. 安装GCC:首先,你需要安装 GCC。

在大多数 Linux 发行版中,GCC 已经预装了。

如果你需要安装其他平台上的 GCC,你可以参考 GCC 的官方文档。

2. 编写源代码:使用你喜欢的文本编辑器编写源代码,保存为 .c 文件。

例如,你可以创建一个名为 hello.c 的文件,并写入以下代码:```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```3. 编译源代码:使用 GCC 编译器编译源代码。

在终端中输入以下命令:```bashgcc hello.c -o hello```这个命令会将 hello.c 文件编译为可执行文件 hello。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
写的源程序作为输入,边解释边执行源程序本身,而 不产生目标程序的翻译程序。

功能
源程序 解释程序
结果
输入数据
2019年1月12日星期 《编译原理实践及应用》 第17页
对编译程序的一些说明
• 编译程序实质上是一个翻译程序,要注意等价变 换 • 本课程的任务就是讲解在这个转换过程中所涉及 到的一些理论和方法,最后,使用这些理论和方 法,自己编写一个小的编译器 • 转换是一个总体的功能,要抓住总体结构,逐层 细分,写编译器时要体现软件工程中软件设计的 原则,自顶向下,逐层分解。 • 编译器要完成的转换任务相当复杂,实现编译器 时必须分步骤分阶段实现。分阶段实现的好处是 能够简化程序的设计,当然也可以不分阶段实现。
《编译原理实践及应用》 第20页
2019年1月12日星期
什么是编译原理
编译原理是讨论编译程序设计的基本理论、 基本概念、基本方法
2019年1月12日星期
《编译原理实践及应用》
第21页
1.2 编译过程概述
• 1、逻辑上分五个阶段:词法分析、语法分析、
语义分析与中间代码生成、代码优化、目标代码生成 每个阶段把源程序从一种表示变换成另一种表示
• 翻译程序:能够将某种语言写的程序转换成另一 种语言的程序,而且后者与前者在逻辑上是等价 的。 • 编译程序:是一种将高级语言程序(源程序)翻译 成低级语言(目标程序)的程序 • 解释程序:接受某高级语言的一个语句输入,进 行解释并控制计算机执行,马上得到这句的执行 结果,然后再接受下一句。
2019年1月12日星期
2019年1月12日星期 《编译原理实践及应用》 第8页
学习方法
• (1) 尽可能地掌握编译原理的思想,要站得高一点,尽可能理 解算法的思想,而不是背固定的算法。应该尽力理解为什么 要这样做,逐渐在头脑中建立起编译器的整体概念,而不是 零零散散的一些算法。 • (2) 很多题目的解法比较固定,要熟练掌握相应的具体方法。 • (3) 多做习题, 对于编译这样的学科,题目的规模很大,步骤 繁多,而且前面的步骤一旦出错,后面都错。 • (4) 要扎扎实实地牢记重要算法,配合大量的习题进行练习, 达到拿到题目就可以动手做的地步。 • (5) 一边学习,一边总结,关键是找差异:同一问题可以用多 种方法来求解,不同方法适用于不同的文法,对文法的限制 和要求,相应的表格的构造、使用等,各个方面的差异都要 关注。 • (6) 亲自动手实现书上的一些算法,完成实验指导书上给出的 一个简单的编译程序,或者编译程序的一部分,这样能更灵 活地掌握编译程序构造的精髓。 《编译原理实践及应用》
2019年1月12日星期 《编译原理实践及应用》 第18页
编译程序的分类
• • • •
诊断编译程序 优化编译程序 可变目标编译程序 交叉编译程序
2019年1月12日星期
《编译原理实践及应用》
第19页
与编译程序相关的程序
• • • • • • • 解释程序(Interpreter) 汇编程序(assembler) 连接程序(linker) – 连接系统函数与系统资源 装入程序(loader) – 重定位(relocation) 预处理器(Preprocessor) 编辑器(editor) Debugger,Profiler,Project Manager
2019年1月12日星期 第9页
第一章
引 论
《编译原理实践及应用》
本章要求
• 主要内容:各种翻译程序的概念,编译 过程和阶段划分,编译程序的组成和结 构,编译程序的构造方法 • 重点掌握:编译程序工作的基本过程及 其各阶段的基本任务,编译程序总框。
2019年1月12日星期
《编译原理实践及应用》
第11页
为什么要使用编译器?
• 机器语言 (machine language)
C7 06 0000 0002
• 汇编语言 (assembler language)
MOV X , 2
• 高级语言 (high-level language)
X=2
2019年1月12日星期
《编译原理实践及应用》
第12页
计算机中的语言层次和转换关系
第7页
本课程的特点
• (1) 本课程理论性很强,学习时需要很强的逻辑思维能力 • (2) 涉及的算法复杂,要深入地理解这些算法很困难 • (3) 整个编译程序的构造方法非常精妙,就像一部走时精 确的时钟,很多齿轮、部件协调地运转,以驱动指针准确 地旋转;编译程序也是如此,一边扫描源程序,一边经过 各个部件的运算,准确地输出为目标语言。 • (4) 编译原理课程各个部分之间的独立性很强,包括词法 分析、语法分析、存储的组织与分配、中间语言、语法制 导翻译、代码生成与优化这几大部分。词法分析和语法分 析是其中的重点,语言分析也是难点,需要掌握比较复杂 的算法逻辑;其他部分相对来说知识性更强一些。各部分 之间的方法也互相独立,在学习时,便于逐个击破。 • (5) 考试考查的内容相对来说是很稳定的,绝大多数题目 的解法都非常机械。
2019年1月12日星期

《编译原理实践及应用》
第23页
第一阶段:词法分析
任务:从左到右扫描源程序,识别出每个单词 o 附加任务:a、滤掉空格 b、识别单词 o 单词符号是语言的基本组成成分 o 词法分析的工作主要依据语言的词法规则,描述词 法规则的有效工具是正规式和有限自动机。 o 单词的种类: (1) 标识符 (2) 关键字(char、int、if、else、switch、while、 for等) (3) 运算符(即运算符号 +、-、*、/、&等) (4) 界符(常见的有 ; , : ( )等) ( 5) 常数 2019年1月12日星期
源程序 编译器 目标程序
词 法 分 析
2019年1月12日星期
语 法 分 析
语义分 析与中 间代码 生成
代 码 优 化
目标 代码 生成
《编译原理实践及应用》
第22页
• 按照词法分析、语法分析、语义分析等这种方式 来划分阶段的原因是:每个阶段的复杂程度不同, 所依据的理论基础不同,实现时采用的方法也不 同。主要是方便理解和实现。 • 划分阶段的依据是什么?每个阶段所实现的功能 相对独立。
《编译原理实践及应用》
第15页
1.1 什么叫编译程序
编译程序(Compiler)——将高级程序设计语言程序
翻译成逻辑上等价的低级语言(汇编语言,机器语言)程序 的翻译程序。
功能
源程序
编译程序
目标程序
结果
输入数据
计算机运行
2019年1月12日星期
《编译原理实践及应用》
第16页
解释程序

解释程序(Interpreter)——将高级程序设计语言
电出版社
2019年1月12日星期 《编译原理实践及应用》 第2页
C语言程序
void main( ) { int x,y,z; x=3; y=2; z=x+y; } 内存地址 内存内容
…… 200H 201H 202H ……
2019年1月12日星期
汇编语言程序
序言
…… 3 2 5 ……
…… 300 mov ax,3 302 mov x,ax 304 mov ax,2 306 mov y,ax 308 mov ax,x 单元名字…… mov bx,y add ax,bx …… mov z,ax x:局部变量 ...... y:局部变量
z:局部变量
第3页
《编译原理实践及应用》
为什么要学习编译原理?
• 1、有助于深刻理解和正确使用程序设计语
言,加深对高级语言程序执行过程的理解 • 2、有助于加深对整个计算机系统的理解。 • 3、设计开发编译程序的软件技术同样可以 用于其他软件的设计开发。 • 4、随着微处理器技术的飞速发展,处理器 性能在很大程度上取决于编译器的质量、 编译技术成为计算机的核心技术,地位变 得越来越重要。
2019年1月12日星期 《编译原理实践及应用》 第5页
《编译原理》课程在计算机科学中 的地位
汇编语言 高级语言 程序设计 计算机组成原理 离散数学 数据结构 编译原理 系统软件 操作系统
信息系统
电子商务
应用软件
软件工程
2019年1月12日星期 《编译原理实践及应用》 第6页
学习本课程的目的和任务
• 加深对编程语言设计和实现的理解,对和编程语言 有关的理论有所了解,对宏观上把握编程语言来说, 起一个奠基的作用,提升自身的编程能力 • 掌握编译程序的基本结构,掌握常用的编译技术和 方法,将编译原理的理论和方法应用于一般的软件 设计中 • 培养团队协作能力
2019年1月12日星期
《编译原理实践及应用》
*
表达式 标识符 id3(C)
语法分析所依据的是语言的语法规则, 表示语法规则的工具是上下文无关文法,用下推 《编译原理实践及应用》 自动机实现。 第27页 2019 年1月12日星期
第13页
编译程序所处的层次
语言处 理程序
Fortran语言
Fortran编译程序
高 级 语 言
C 语 言
操作系统
C 编译 程序
计算机硬件 汇编语言
Basic解释程序
《编译原理实践及应用》
. . . . . .
. . . . . .
Basic语言
2019年1月12日星期
第14页
1.1 什么叫编译程序
2019年1月12日星期 《编译原理实践及应用》 第26页
赋值语句 标识符 := 表达式 表达式
id1:=int1 + id2 * id3 + id2 * id3
id1(result)
+
表达式
常数
相关文档
最新文档