高级程序语言可分为
1.强制性语言 2.作用时语言 3.基于规则的语言 4.面向对象的语言
程序语言主要由语法,语义,(语用)。
语用:有关程序设计和语言成分的使用方法,它使语言的基本概念与外界的语言(如数学概念或计算机的对象和操作)联系起来。
语法:
语法是指这样的一组规则,用它可以形成和产生一个合式的程序。这些规则的一部分称为词法规则,另一部分称为语法规则。
语义:
语言是指这样的一组规则,使用它可以定义一个程序的意义。
一个程序语言的基本功能是描述数据和对数据的运算。
上下文无关文法
语法分析树
语法的二义性:证明二义性
例:S→iSeS l iS l i
证明:S→iSeS→iiSeS→iiieS→iiiei
S→iS→iiSeS→iiieS→iiiei
形式语言:0型---短语文法(图灵机)
1型---上下文有关文法(线性界限自动机)
2型---上下文无关文法(非确定的下推自动机)
3型---右线性文法(正规文法)
0型最强→3型最弱