首页 > 代码库 > 软考笔记第七天之程序设计语言与语言处理程序基础
软考笔记第七天之程序设计语言与语言处理程序基础
内容:
编译与解释
文法
正规式(几乎每次考到)
有限自动机(重点)
表达式(偶尔考到)
传值与传址(考到频率高)
多种程序语言特点
编译过程:
编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。
解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。
C/C++等都是编译型语言,而Java,C#等都是解释型语言。
虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解成一个中间语言),
在运行的时候,由JVM将字节码再翻译成机器语言。
.Net和Java一样,在运行的时候,由JIT翻译成机器语言
脚本语言一般都有相应的脚本引擎来解释执行。它们一般需要解释器才能运行。JavaScriot,ASP,PHP,PERL,Nuva都是脚本语言。
C/C++编译、链接后,可形成独立执行的exe文件。
文法定义
一个形式文法是一个有序四元组G=(V,T,S,P),其中:
1)V:非终结符。不是语言组成部分,不是最终结果,可理解为占位符。
2)T:终结符。是语言的组成部分,是最终结果。V∩T=?
3) S:起始符。是语言的开始符号。
4)P:产生式。用终结符替代非终结符的规则。形如α→ β
类型 | 别称 | 说明 | 对应自动机 |
0型 | 短语文法 |
G的每条产生式α→ β满足a属于V的正则闭包且 至少含有一个非终结符,而β属于V的闭包 |
图灵机 |
1型 | 上下文有关文法 |
G的任何产生式α→ β满足|α|<=|β|,仅仅S→ ε 例外,但S不得出现在任何产生式右部 |
线性界限自动机 |
2型 | 上下文无关文法 |
G的任何产生式为A→ β,A为非终结符, β为V的 闭包 |
非确定的下推自动机 |
3型 | 正规文法 |
G的任何产生式为A→ αB或A箭头α,α属于非终结符 的闭包,A、B都属于非终结符 |
有限自动机 |
语法推导树
有限自动机
例题选C(经过选项中的状态码可以从初态到终态)
正规式
文法推导
例题答案:D,C
表达式
例选D
函数调用-传值与传址
传递方式 | 主要特点 |
传值调用 | 形参取的是实参的值,形参的改变不会导致调用点的所传的实参的值的改变 |
引用(传址)调用 | 形参取的是实参的地址,即相当于实参存储单元的地址引用因此其值的改变同时就改变了实参的值 |
各种程序语言的特点
Fortran语言(科学计算,执行效率高)
Pascal语言(为教学而开发的,表达能力强,Delphi)
C语言(指针操作能力强,高效)
Lisp语言(函数式程序语言,符号处理,人工智能)
C++(面向对象,高效)
Java(面向对象,中间代码,跨平台)
C#(面向对象,中间代码,.Net)
Prolog语言(逻辑推理,简洁性,表达能力,数据库和专家系统)
软考笔记第七天之程序设计语言与语言处理程序基础