软件设计师备考笔记(七)程序设计语言及语言处理程序基础(编译原理和传值方式)

前言

  • 该部分总体而言难度较高:

    • 最近在降低;
  • 涉及编译原理(专业课中也是极难的课程)

目录

  • 编译与解释

  • 文法

  • 正规式

  • 有限自动机

  • 传值与传址

  • 多种程序语言特点

考试范围

  • 编译和解释:区别、流程

  • 正规式:必考

  • 表达式:偶尔

  • 传值与传址:高频

  • 其他的点考频较低;

    • 必须分主次的去对待这些点;

编译与解释

编译过程(重点)

解释型和编译型的区别

  • 解释:敲一行代码一回车,就把后台相关的东西操作了,有问题就直接告诉你;

  • 编译:你整段程序都敲完了,按编译运行时才做成可执行程序;

三种分析的作用

  • 词法分析:非法字符、关键字或标识符是否写对;=

  • 语法分析:if后面没有相应的else匹配、一句话后面是否有分号等

  • 语义分析:循环是否有结束条件等,分母是否为0等,往往只能分析一小部分问题;

文法

定义

  • 以前考的多,现在偶尔考;

  • 后面结合例子具体讲

  • 正则闭包很少考;不用刻意记

  • 3型时探讨最多的;

语法推导树

  • 用来进行语法规则的推导

  • 通过推导树我能能了解到一种语法能够表达的一些串,构造的句型时什么样子

例子:

{a,b}两个元素表示终结符

{S,A}非终结符(能推出其它符号)

S 起始符

P 产生式–>指篮筐的中间的两个式,其实就是推导式;

S->aAS|a:

S->aAS

S->a

S能推出别人,是非终结符;a只能被推不能推出别的东西叫终结符

有限自动机

考察的重点:衍生出来的正规式和有限自动机能互相转换;

最下面的式子意思:

例子:O(S,0)

S处输入一个0能到B

考法:能不能找到一个数字串(比如 10、01、001等)

解法:能不能从起点到终点找到一个和数字串一样的通路

正规式

对有限自动机的另一种表达方式;

以一个实例来看:

| :表示或关系,能解析出 a或b

  • :表示循环多次,可以是0到无穷大;(a|b)*可以表示空串;可以表达a、aa、ba、bbbbbb、等无限个

(1)选D

a选项剋识别

b也行

(2)不用常规方法算(速度慢);

用的代入法:通过带入第一题的三个式子;哪个能把式子全部推导出来就可能是正确答案;可以用其他正规式也推出所有表达式,但范围更广;

A:能表达所有,但范围更大;待定

B:没法生成ba

C:能;

D:只能先ab后ba无法满足(1)C选项

所以第二问选C

到终点后也能继续输入;所以C可以;只要最后在终态位置即可;

表达式

要注意先后顺序;

先构造树,以后序方式便利树就能得到后缀表达式;

选D

如果不考虑括号:构造出来的树完全不同

函数的两种调用方式

经常考,反复考

传值:

各种程序语言特点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值