软件设计师:02程序语言设计

一、KMP模式串匹配

请添加图片描述

二、编译程序和解释程序

(1)编译程序

编译时独立生成目标程序,源程序和编译程序不参与目标程序的运行过程

(2)解释程序

编译时不生成独立的目标程序,解释程序和源程序都参与程序运行过程

三、传值调用和引用调用

(1)传值调用

实参传递值,可以是常量、变量、表达式

(2)引用调用

实参传递地址给形参,双向传递数据

四、编译器工作阶段

请添加图片描述
其中,中间代码生成和代码优化可以省略
源程序 -》 词法分析 -》 记号流 -》语法分析 -》语法树 -》语义分析

(1)词法分析

分析构成程序的字符,及由字符按照构造规则构成的符号是否符合程序语言的规定。
非法字符,关键字或标识符拼写错误。

(2)语法分析

可以发现程序中所有的语法错误,
对各条语句的结构做合法性的分析。
语法结构错误, if、endif不匹配,缺分号。

(3)语义分析

类型分析和检查,
只能发现静态语义错误,动态语义错误只有当程序运行时才能发现。
死循环、零除数

(4)中间代码

与具体的机器无关,常见的中间代码有:
后缀式、三地址码、三元式、四元式、树图等

(5)目标代码生成

将中间代码转换成特定机器上的指令代码,以及寄存器分配。

五、脚本语言

主要采用解释方式实现,一般运行在解释器或虚拟机中便于移植。

六、符号表

记录程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成。

七、沟通路径

请添加图片描述

八、正规式

只需要记住:
a*是由0个或多个a构成的字符串的集合
请添加图片描述

九、有限自动机

(1)确定的有限自动机

对每个状态来说,识别字符后转移的状态是唯一的。

(2)不确定的有限自动机

对每个状态来说,识别字符后转移的状态是不唯一的。
请添加图片描述
请添加图片描述

十、后缀表达式

又叫逆波兰式
请添加图片描述

十一、上下文无关文法

请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值