中级数据库工程师笔记(五)------ 程序设计语言

1、程序设计语言基本概念

(1)低级语言

  • 机器语言指0和1组成的机器指令序列
  • 汇编语言指用符号表示指令的语言

(2)高级语言

1.1 表达式

(1)前缀表达式:操作符置于操作数之前,如 - x + 3 4 5 6。

从右向左扫描,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们左相应的计算,并将结果入栈。

(2)中缀表达式:(3+4)x 5 - 6。

(3)后缀表达式:将操作符置于操作数之后,3 4 + 5 x 6 - 。

从左向右扫描,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们左相应的计算,并将结果入栈。

1.2 操作符的优先级

  • 指针最优,单目运算优于双目运算。
  • 先乘除,后加减
  • 先算数运算,后移位运算,最后位运算
  • 逻辑运算最后计算

2、程序语言编译过程

编译程序的工作过程分为6个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成。

2.1 词法分析

输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个单词,删掉无用信息,报告分析时的错误。

2.1.1 表现形式

(1)状态转换图:状态有限的有向边,用圆圈表示节点状态,节点之间有向边代表状态转换(可标记字符),表示从前一个状态接受某一个字符之后的状态转移。

  • 初始状态用 “o” 表示
  • 非终止状态用 “.o” 表示
  • 状态之间的跳转用有向边表示
  • 终止状态用 “◎” 表示
  • 多读进一个字符用 “*” 表示

(2)正规式:

“|” 表示或

“.” 表示连接

“*” 表示“闭包”

(3)确定有限状态自动机(DFA):每次转换后状态是唯一的

一个确定的有限自动机M是一个五元式,M= {S ,∑,δ,s0,F }

  • S是一个有限集,它的每个元素称为一个状态
  • ∑是一个又穷字母表,每个元素称为一个输入字符
  • δ是一个状态转换
  • s0是唯一的初始状态
  • F是终态集

(4)不确定有限自动机(NFA):

2.2 语法分析阶段

分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等。

2.3 语义分析阶段

检查源程序是否存在语义错误,并收集类型信息供后面的代码生成阶段使用,只有语法和语义都正确的源程序才能翻译成正确的目标代码。

语义分析的主要工作是进行各类型分析和检查。赋值语句的左右端类型不匹配。表达式的除数是否为零等。

2.4 中间代码生成阶段

代码的方式与具体的机器无关

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值