《计算机导论7.ppt》由会员分享,可在线阅读,更多相关《计算机导论7.ppt(14页珍藏版)》请在第壹文秘上搜索。
1、第六章第六章 程序设计语言程序设计语言6.1 历史回顾历史回顾 程序设计语言程序设计语言 机器语言机器语言 1952年之前,由计算机的年之前,由计算机的指令系统指令系统组成,使用机器组成,使用机器语言编写的程序计算机能够语言编写的程序计算机能够直接理解直接理解并执行,但编程并执行,但编程和理解都十分的困难。和理解都十分的困难。汇编语言汇编语言 使用使用“助忆符助忆符”来表示指令的来表示指令的操作码操作码,并使用存储单,并使用存储单元或寄存器的元或寄存器的名字名字表示表示地址码地址码,以便于记忆和书写。,以便于记忆和书写。如,用如,用ADD表示表示加法加法(addition)、用、用MOV表示数
2、据的表示数据的传送传送(move)等等。等等。6.1 历史回顾历史回顾 程序设计语言程序设计语言 把寄存器把寄存器5的内容送入寄存器的内容送入寄存器6 机器语言机器语言 4056 0100 0000 0101 0110 汇编语言汇编语言 MOV R5,R66.1 历史回顾历史回顾 程序设计语言程序设计语言 机器语言机器语言 将存储单元将存储单元6C和和6D的内容相加,将结果存入地址的内容相加,将结果存入地址6E6.1 历史回顾历史回顾 程序设计语言程序设计语言 汇编语言汇编语言 依赖于机器,遵循特定的机器特性编写,不方便依赖于机器,遵循特定的机器特性编写,不方便移植到另一种机器上(寄存器配置和
3、指令系统)。移植到另一种机器上(寄存器配置和指令系统)。6.1 历史回顾历史回顾 程序设计语言程序设计语言 高级程序设计语言高级程序设计语言 60年代,按照一定的年代,按照一定的“语法规则语法规则”构建程序,用英语构建程序,用英语单词表示的单词表示的关键字关键字和和数学符号数学符号组成。组成。使用高级程序设计语言编写的程序称为使用高级程序设计语言编写的程序称为源程序源程序,把用,把用二进制代码表示的程序称为二进制代码表示的程序称为“机器代码程序机器代码程序”或者或者“目标程序目标程序”。源程序源程序必须经过必须经过翻译器翻译器翻译成翻译成机器语言机器语言才能执行。才能执行。面向过程:面向过程:
4、Pascal、C 面向对象:面向对象:C+、Java、C#6.4 语言实现语言实现词法分析器词法分析器语法分析器语法分析器 代码生成器代码生成器6.4 语言实现语言实现 词法分析词法分析 识别识别源程序中构成单个实体源程序中构成单个实体-标记标记-的符号串;的符号串;153:识别为:识别为1个数值,而不是个数值,而不是1、5、3;对标记对标记分类分类并并编码编码 数、词、算术运算符数、词、算术运算符 提交给提交给语法分析器语法分析器6.4 语言实现语言实现 语法分析语法分析 分析过程基于分析过程基于语法规则语法规则,称为,称为文法文法;使用使用语法图语法图表达这些规则;表达这些规则;布尔表达式
5、语句语句非终结符:需要进一步描述非终结符:需要进一步描述终结符终结符6.4 语言实现语言实现 语法分析语法分析 描述描述表达式表达式结构的结构的语法语法 项项Term 因子因子Factor6.4 语言实现语言实现 语法分析语法分析 语法分析树语法分析树 图形化表示一个特图形化表示一个特定的串符合一组语定的串符合一组语法图的方式;法图的方式;x+y*z语法分析过程本质上就是为源程序构建语法分析树的过程语法分析过程本质上就是为源程序构建语法分析树的过程6.4 语言实现语言实现 语法分析语法分析 符号表符号表 识别识别声明语句声明语句时,将信息记录在一个时,将信息记录在一个符号表符号表中;中;包括包
6、括变量名变量名、数据类型数据类型和数据结构的信息;和数据结构的信息;z x+y;x实型、实型、y字符型:没有意义,报告字符型:没有意义,报告出错出错;x、y整型:语法分析器将请求代码生成器生成整型:语法分析器将请求代码生成器生成相应的整数加法相应的整数加法操作码操作码的机器语言指令;的机器语言指令;x、y实型:语法分析器将请求代码生成器生成实型:语法分析器将请求代码生成器生成相应的浮点数加相应的浮点数加法操作码法操作码的机器语言指令;的机器语言指令;x、y字符型:建立一串机器指令来完成相应的字符型:建立一串机器指令来完成相应的连接连接操作。操作。6.4 语言实现语言实现 代码生成代码生成 生成生成机器语言指令机器语言指令以实现语法分析器识别出的以实现语法分析器识别出的语句的过程;语句的过程;生成生成效率高效率高的机器语言版本的程序;的机器语言版本的程序;x y+z;w x+z;作为独立语句来进行翻译:每一条作为独立语句来进行翻译:每一条语句都需要数据从主存传送到语句都需要数据从主存传送到CPUCPU代码优化代码优化