计算机语言编写程序6,第6讲-由机器语言到高级语言-程序编写编译讲义.ppt

第6讲-由机器语言到高级语言-程序编写编译讲义

* * * * * * * * * * * * * * * * * * * * * 第6讲-由机器语言到高级语言 -程序编写编译 算法 解决问题 的步骤 程序 计算机能够理解与 执行的步骤 计算机语言 步骤书写的规范、语法规则、标准的集合 是人和计算机都能理解的语言。 导语: 为什么需要计算机语言? 机器语言 汇编语言 高级语言 6.1 由机器语言到高级语言 计算7+10并存储的程序 机器语言:用二进制和编码方式提供的指令系统所编写程序的语言被称为机器语言 100001 10100010 10100101 11111101 00 所有程序都需转换成机器语言程序,计算机才能执行 指令系统:CPU用二进制和编码提供的可以解释并执行的命令的集合。 100001 10100010 11操作码 地址码 问:用机器语言编写程序存在什么问题呢? 6.1.1 机器语言、汇编语言与汇编程序 1、机器语言 指令系统 机器语言 计算7+10并存储的程序 汇编语言源程序:是用汇编语言编出的程序。 汇编程序: 是将汇编语言源程序翻译成机器语言程序的程序。 用符号编写程序 ==? 翻译 ==? 机器语言程序 MOV A, 7 ADD A, 10 MOV (6), A HLT 100001 1000000111 MOV A, 7 操作码 地址码 怎样解决机器语言编写程序所存在的困难? 2、汇编语言:是用助记符号编写程序的语言。 汇编语言 汇编语言程序处理过程—汇编 符号化程序机器不能直接执行怎么办? MOV A, 7 ADD A, 10 MOV (6), A HLT 汇编 程序 汇编语言源程序 助记符号 机器语 言程序 二进制和编码000001110000101000000110由汇编程序 自动转换 转换 执行 汇编 语言 转换规则 { 助记符号,机器指令} 用助记符号书写程序的规范、语法规则、标准的集合 是人和计算机都能理解的语言 机器指令的集合 是计算机能够理解并执行,但人理解困难的语言 机器 语言 编制 完成7+10并存储的汇编语言程序 完成7+10并存储的机器语言程序 执行 计算7+10并存储的程序 Result = 7+10; Return 高级语言源程序:是用高级语言编出的程序。 编译程序:是将高级语言源程序翻译成机器语言程序的程序。 6.1.2 高级语言与编译器 为什么还要提出高级语言? 1、高级语言:是用类似自然语言的语句编写程序的语言。 高级语言 高级语言和汇编语言的差别在哪里? 高级语言:机器无关性;一条高级语言语句往往可由若干条机器语言语句实现且不具有对应性 汇编语言:机器相关性;汇编语言语句和机器语言语句有对应性 高级语言编译器如何实现呢? 2、高级语言编译器 汇编 程序 汇编语言源程序 助记符号 转换 执行 转换规则 { 助记符号,机器指令} 编译 程序 高级语言源程序 变量/表达式/语句 机器语 言程序 二进制和编码000001110000101000000110转换 执行 高级语言 编译规则 机器语言 编制 Result = 7+10 Return MOV A, 7 ADD A, 10 MOV (6), A HLT 自动转换 自动转换 执行 转换 汇编器 编译器 编译 计算机语言与编译器--一种抽象-自动化机制示例 用高级语言进行问题求解 符号化,计算化 再语义化 自然/社会问题 程序化 执行化 算法的结果 机器级程序 --机器指令 运算器和控制器(CPU)-执行 算法 自然/社会问题的求解结果 产生 用0/1编码:指令和数据 存储器:0/1存与取 0/1化 信号化 存储 高级语言程序 编译 执行化 小结 汇编语言程序 程序执行 汇编 程序执行 6.2 高级语言(程序)的基本构成要素 认识计算机语言程序 6.2 高级语言(程序)的基本构成要素 K = 0; For I =1 to 100 Step 1 { If I<=50 && I > 30 { K = K+I; } } 保留字 变量 常量 语句 表达式 “ 保留字”为编译器识别和处理语句而确定的一些特定符号 算术表达式示例。算术表达式的结果是一数值; A1 + (B2 – x1 + 76) * 3 (B2 + yy4) / L3 – xx3 比较表达式示例。比较表达式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来给你一下如何使用C++语言编写PL/0编译程序的语法分析程序。 首先,我们需要了解PL/0语言的语法规则,这里简单介绍一下: 1. 程序由常量声明、变量声明、过程声明和语句组成; 2. 常量声明以const开始,后跟一个标识符和一个等号,再后面是一个整数; 3. 变量声明以var开始,后跟一个或多个标识符,用逗号分隔; 4. 过程声明以procedure开始,后跟一个标识符和一个分号,再后面是一个块; 5. 语句包括赋值语句、条件语句、循环语句和调用语句,以及读写语句和复合语句; 6. 赋值语句以标识符开始,后跟一个等号和一个表达式; 7. 条件语句以if开始,后跟一个条件表达式、then和一个语句; 8. 循环语句以while开始,后跟一个条件表达式和do,再后面是一个语句; 9. 调用语句以call开始,后跟一个标识符; 10. 读语句以read开始,后跟一个左括号和一个或多个标识符,用逗号分隔,再跟一个右括号; 11. 写语句以write开始,后跟一个左括号和一个或多个表达式,用逗号分隔,再跟一个右括号; 12. 复合语句以begin开始,后跟一个或多个语句,用分号分隔,再跟一个end。 了解了PL/0的语法规则之后,我们就可以开始编写语法分析程序了。具体步骤如下: 1. 定义PL/0语言的语法结构体,包括常量、变量、过程、语句等; 2. 定义词法分析器,将输入的PL/0代码转换成一个个词法单元(token); 3. 编写递归下降分析函数,根据语法规则递归地分析每个词法单元,并生成语法树; 4. 在递归下降分析函数中,需要定义一个函数来处理每个语法规则,例如处理常量声明的函数、处理变量声明的函数等; 5. 在语法分析程序中,还需要定义一些辅助函数,例如查找符号表、生成中间代码等; 6. 最后,将语法分析程序与词法分析器、中间代码生成器等组合起来,完成PL/0编译程序编写。 以上是编写PL/0编译程序的语法分析部分的大致流程,具体实现还需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值