一.程序语言的定义
1.语法:指这样的一组规则,用它可以形成和产生一个合适的程序。而这些规则的一部分成为词法规则,另一部分成为语法规则。
(1)单词符号是语言中具有独立意义的最基本的结构。(一般包括:各类型的常数、标识符、基本字、算符和界符)
(2)语法规则:规定了如何从单词符号形成更大的结构(语法单位)。
语法单位有:表达式,语句,分程序,函数,过程和程序等等。
(3)词法规则:合法单词的构成规则。
2.语义:指这样的一组规则,使用它可以定义一个程序的意义。这些规则成为语义规则。
(1)程序设计语言定义:建立在有限字母集上的一个符号系统。
功能:描述数据和对数据的运算。
二.高级语言的一般特性:程序结构,数据类型与操作,语句,控制结构
1. 高级语言分类 按照程序设计类型(1)强制式语言(过程属语言,c语言)
(2)应用式语言(函数式语言,bisp)
(3)基于规则的语言(prolog)
(4)面向对象语言(java):特征支持封装性,继承性,和多态性。
按照编译时是否需要类型的检查:(1)静态类型语言(c/c++/java)
(2)动态类型语言(Python/Ruby/PHP)
类型检查强弱:(1)弱类型语言(c/c++/VB)
(2)强类型语言(java/c#)
2.程序结构(1)支持过程的嵌套定义(Pascal)
(2)不支持过程的嵌套定义(c/c++/java)
程序结构的不同决定了符号构造方法的不同。
3.数据类型与结构:(1)初等数据类型(数值数据,逻辑数据,字符数据,指针类型)
(2)数据结构
(3)抽象数据类型
4.语句与控制结构:表达式,语句(赋值语句,控制语句,说明句,简单句和复合句)。
三。程序语言的语法描述
1.规定 V0 = {ε} 令: V* = V0UV1UV2U… 称 V*是V的闭包 V+ = VV*, 称 V+是V的正则闭包。
2.上下文无关文法:他所定义的语法范畴是完全独立于这种范畴可能出现的环境的。 包括一组终结符号,非终结符号,一个开始符号,以及一组产生式。 形式上定义一个上下文无关文法G是一个四元式(VT,VN,S,P)。
VT是一个非空有限集,它的每一个元素称为终结符号;
VN是一个非空有限集,它的每一个元素称为非终结符号,
VT∩VN=Φ;
S是一个非终结符号,称为开始符号;