目录
一、常见的程序设计语言
二、程序设计语言组成
三、后缀表达式
四、传值调用和传址调用
五、语言处理程序
六、解释程序
七、链接程序
八、编译程序
九、出错处理
十、正规式
十一、有限自动机
Fortran语言(第一个高级程序设计语言,科学计算,执行效率高)
Pascal语言(结构化程序设计语言,表达能力强,Delphi)
C语言(通用、结构化程序设计语言,指针操作能力强,高效)
Lisp语言(函数式程序语言,符号处理,人工智能)
C++语言(C语言基础上增加了类机制,面向对象,高效)
Java语言(面向对象,中间代码,跨平台,通用的程序设计语言)
Python(面向对象,解释型程序设计语言,通用的脚本语言)
PHP(服务器端脚本语言,制作动态网页)
Ruby(简单快捷、面向对象、脚本语言)
Delphi(快速应用程序开发工具,可视化编程环境)
COBOL(数据处理领域最为广泛的程序设计语言,高级编程语言)
XML(可扩展标记语言,标准通用标记语言的子集)
PROLOG(逻辑式语言,建造专家系统、自然语言理解、智能知识库等)
数据成分:常量、变量、全局量、局部量以及数据类型。
运算成分:程序语言允许使用的运算符号及运算规则。
控制成分:顺序结构、选择结构、循环结构。
前缀表达式(+ab):把运算符写在运算对象的前面。
中缀表达式(a+b):把运算符写在运算对象的中间。
后缀表达式(ab-):又叫做逆波兰式,把运算符写在运算对象的后面。
传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。
引用(传址)调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此其值的改变同时就改变了实参的值。卷数的左值为地址,右值为具体的值。
语言处理程序:将高级语言转换成计算机可执行的机器语言,分为汇编、编译和解释程序。
汇编程序:翻译由汇编语言编写的程序,属于低级语言。
解释程序:针对高级语言编写的源程序,直接解释执行源程序。
编译程序:源程序翻译成目标语言程序,然后执行目标程序。
解释程序是一种语言处理程序。
在词法、语法和语义分析方面与编译程序的工作原理基本相同。
但在运行用户程序时,它直接执行源程序或源程序的内部形式(中间代码)
解释程序并不产生目标程序,这是它和编译程序的主要区别。
用高级语能出言编写的程序要在计算机上运行时,由于计算机只识别二进制,因此需要对源程序依次进行预处理、编译和链接的过程,才能确保源程序正确被执行。
编译程序的功能是把某高级语言书写的源程序翻译成与之等价的目标程序(汇编语言程序或机器语言程序)。
编译程序的工作过程可以分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成、符号表管理和出错处理,其中其中符号表管理和出错处理贯穿于编译器工作始终。
词法分析:从左到右逐个扫描源程序中的字符,识别其中如关键字(或称保留字)、标识符、常数、运算符以及分隔符(标点符号和括号)等。
语法分析:根据语法规则将单词符号分解成各类语法单位,并分析源程序是否存在语法上的错误。包括:语言结构出错、if…end if 不匹配,缺少分号、括号不匹配、表达式缺少操作数等。
语义分析:进行类型分析和检查,主要检测源程序是否存在静态语义错误。包括:运算符和运算类型不符合,如取余时用浮点数。
动态错误:发生程序运行时,也叫动态语义错误,包括陷入死循环、变量取零时做除数、引用数组元素下标越界等错误。
静态错误:编译时所发现的程序错误,分为语法错误和静态语义错误,语法错误包含:单词拼写错误、标点符号错误、表达式中缺少操作数、括号不匹配等有关语言结构上的错误;静态语义分析:运算符与运算对象类型不合法等错误。
正规式是一种表示正规集的工具,正规式是描述程序语言单词的表达式。
正规式:由正规文法转换而来,通常正规文法等价于正规式。
正规集:正规文法产生的集合是语言基本字符集上的字符串的一个子集。
有限自动机:是一种识别装置的抽象概念,能够准确的识别正规集。分为确定(DFA)和不确定(NFA)两种。
确定的有穷自动机:当一个状态面对一个输入符号的时候,所转换到的是一个唯一确定的状态。
不确定的有穷自动机:当一个状态面对一个输入符号的时候,它所转换到的可能不只一个状态,可以是一个状态集合。
一个有限自动机所识别的语言是从开始状态到终止状态所有路径上的字符串的集合。要判断一个字符串能否被指定的自动机识别,就看在该自动机的状态图中能否找到一条从开始状态到达终止状态的路径,且路径上的字符串等于需要识别的字符串。