8. 程序设计语言和处理语言

在这一章中,我们可以看到如下的知识

其中重要的点有 正规式, 表达式, 传值和传址

接下来也主要讲下这些信息

  1. 编译和解释

这是由于一般的开发语言由解释性和编译型两种组成的

其中解释型的语言是动态的,在运行的时候直接解释语法运行,

编译型的则需要将源代码转换为运行代码之后才能运行

这里我们着重说下编译型这类代码

编译型的语言经常需要进行如下的流程方可执行

我们首先将源代码输入

首先进行词法分析,主要是针对代码中包含的词是否有不合规的进行检查

然后是语法分析,是针对代码是否符合语法规则进行检查

最后是语义分析,检查代码是否有死锁或者死循环这类不合规的语义

之后是中间代码的生成,可选项

然后是代码优化,最后目标代码的生成

  1. 文法

关于文法我们也简单的带过即可

一般来说文法是一个四元组,其中包含

直接看道例题

可以如此推导

  1. 自动机

对于自动机,其概念如上,

就比如下面这张图

其次是正规式,描述如下

这个概念很难解释,我们直接看下例题

对于一个选项,我们需要来代入进去一个个的球

比如 从S开始,可以换成a b

如果到了a,那么就可以到b,并可以选择是否回到S

那么就可以 ababab

依次带入进去可以看出只有D不符合

其次是第二个空正规式

对于A是可以选择a或者b 多次,可以

B是可以选择 ab多次

C是可以 选择ab或者ba多次

D是 ab多次接着ba多次

对于自动机,表现形式还可以如下

这个也是依次带入

0000则无法达到C

1111也无法达到C

0101 可以到达

1010 不行

  1. 表达式

分为了前缀表达式,中缀表达式,后缀表达式

比如一个树

前缀就是 +ab 中缀是 a+b, 后缀是 ab+

这里看下例题

我们需要先构建一个对应的树

首先是 a-b和c+5 最后是两者相乘,构建的树也如下

那么后缀转换下就是 ab- c5+ *

  1. 传值和传址

两者的区别可以如下图形容

这种是传值,得到的结果是 4 3 3 4

这种是传址,得到的结果是4 3 4 3

最后是简单说下不同程序语言的特点

其特点为

Fortran科学计算

Pascal 为教学而生

C 语言高效

Lisp 适合人工智能

C++ 高效 面向对象

Java 也是面向对象 中间代码

C# 和Java 一样

Prolog 主要体现逻辑推理

发表评论

邮箱地址不会被公开。 必填项已用*标注