程序设计语言与语言处理程序基础.md
-
编译过程
- 编译顺序-源程序→词法分析→语法分析→语义分析→中间代码生产→代码优化→目标代码生成→目标程序
- 词法错误:非法字符,关键字或标识符拼写错误
- 语法错误:语法结构出错,if,endif不匹配,缺分号
- 语义错误:死循环,零除数,其他逻辑错误
-
有限自动机
- 表达式:M=(S,∑,δ,S0,Z)
- S是一个有限集,每个元素为一个状态
- ∑是一个有穷字母表,每个元素为一个输入字符
- δ是转换函数:是一个单值对照
- S0属于S,是其唯一的初态
- Z是一个终态集(可空)
- 有限状态自动机可以形象地用状态转换图表示,设有限状态自动机:DFA=({S,A,B,C,f},{1,0},δ,S,{0}),其中δ(S,0)=B,δ(S,1)=A,δ(A,0)=f,δ(A,1)=C,δ(B,0)=C,δ(B,1)=f,δ(C,0)=f,δ(C,1)=1
- 表达式:M=(S,∑,δ,S0,Z)
-
表达式
- 前缀表达式:(+ab)
- 中缀表达式:(a+b)
- 后缀表达式:(ab+)
-
函数调用-传值与传址
- 传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变
- 传址调用(引用调用):形参取得是实参的地址,即相当于实参存储单元的地址引用,因此其值得改变同时改变了实参的值
-
各种程序语言特点
- Fortran语言(科学计算,执行效率高)
- Pascal语言(为教学而开发的,表达能力强,衍生出Delphi)
- C语言(指针操作能力强,高效)
- Lisp语言(函数式程序语言,符号处理,人工智能)
- C++语言(面向对象,高效)
- Java语言(面向对象,中间代码,跨平台)
- C#语言(面向对象,中间代码,.Net)
- Prolog语言(逻辑推理,简洁性,表达能力,数据库和专家系统)
作者:开源NetCore
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。