程序语言的定义:语法和语义
语法中的基本概念:
1.字母表:一个有限的字符集,包括大小写字母、数字、特殊字符
2.单词符号:语言中具有独立意义的最基本结构,包括:常数,标识符,基本字、算符和界符
3.语法单位:由单词符号构成的更大的结构,包括表达式、语句、分程序(语句块)、函数(有返回值)、程序
语法:一组规则,这组规则产生形式上正确的程序,词法规则和语法规则
词法规则:合法单词的构成规则,也就是如何从字母表中选择字符构成一个合法单词(用有限状态自动机或正规式描述)
语法规则:合法程序的构成规则,也就是如何把各个单词符号组成更大的语法单位(语句、程序)(用上下文无关文法进行描述)
语义:语义是指这样的一组规则,使用它可以定义一个程序的意义
语义描述方法:属性文法和基于属性文法的语法制导翻译方法
程序设计语言的定义:
1.建立在有限字母集之上的一个符号系统
2.有一定的语法和语义规则
语法规则:词法规则和语法规则语义规则:描述语法单位的功能和含义
3.程序的功能是描述数据和对数据的运算
高级语言的分类:
1.程序设计范型:强制式语言(过程式语言,c),应用式语言(函数式语言,lisp),基于规则的语言(proolog,yacc),面向对象的语言(java)
2.编译时是否需要类型检查:静态类型语言(c,c++,java),动态类型语言(Python,Ruby,PHP)
3.类型检查强弱:弱类型语言(C,C++,VB),强类型语言(java,C#)
程序设计语言的一般特性:
1.程序结构:是(Pascal)否(c/c++/java)支持过程的嵌套定义
程序结构的不同,决定了符号表构造方法的不同
2.数据类型和操作:
数据类型:每种数据类型都隐含了数据对象可以具有的值和作用于这种类型数据对象的操作
标识符:以字母开头后跟字母数字组成字符串
名字:当给标识符一定意义时,该标识符成为名字
数据类型通常包括要素:
a.用于区别这种类型的数据对象的属性
b.这种类型的数据对象可以具有的值
c.可以作用于这种类型数据对象的操作
3.语句:根据属性文法的定义进行处理
4.控制结构
文法:文法是描述语言的语法结构的形式规则(即语法规则)
字母表:由若干元素组成的有限非空集合,用S表示,它的每个元素称为一个符号
符号串: 由S中的符号所构成的有穷序列
空字:不包含符号的序列称为空字,记为e
f表示不含任何元素的空集{}
上下文无关文法:它所