考点:动态静态语言,编译与解释,文法,调用,程序运行过程
1. 动态(脚本)(解释型)语言: Python,Javascript,ASP,PHP,VBScript,Ruby,PERL,Nuva
结构化语言:C,PASCAL
面向对象:Python,C++,JAVA,SmallTalk
Prolog : 模式匹配,逻辑型语言
C#,Python,C++ 与com 直接集成
2. 程序编译运行:词法分析(单词)--> 语法--> 语义(检查静态语义错误)--> 中间代码(与具体机器无关)(后缀式,三元,四元,树)--> 代码优化--> 目标代码(与具体机器有关)
解释程序不生成目标代码,需要参与到运行中,编译程序不参与执行,编译器可忽略中间代码和代码优化
静态错误:语法,静态语义
动态错误:动态语义错误
3. 声明语句存在符号表中。静态数据存储区:全局变量,静态局部变量,静态全局变量
4. 调用:传值调用:不影响实参,实参是表达式常量,变量
引用调用:实参的地址传给形参,实参是变量地址/数组名
5. 文法: 0型:图灵机。 1型:上下文有关,A-->B |B|>=|A| 。 2 型 :上下文无关(常用程序设计语言的语法),B属于(终结符∪非终结符)* 。