标题：文法
汉语言中的文法
文法即文章的书写法规，一般用来指以文字、词语、短句、句子的编排而组成的完整语句和文章的合理性组织。文句组成的规律●最简单的语句组合一：主词及动词： 
“我”“哭了” 
“天气”“改变了” 
“哭笑”“难分” 
●最简单的语句组合二：主词、动词及受词：（括号内为隐藏语） 
我爱你 
“道”“可”“道”，“(这个道字)”“〈并〉非”“常道”。《道德经》老子 
“打羽毛球”“是”“最好的(运动)” 
“驾驶”“〈使我〉”“乐趣无穷” 
●比较复杂的语句组合一：主语〈短句〉、谓语及宾语： 
例：“我这个从来没有恋爱经验的少年人”、“竟然不知为了什么原因而喜欢了”及“一个黄毛小丫头” 
●复杂的语句组合二：主语及复式谓语： 
例：“有些头脑守旧而自以为是的读书人”、“认为如厕的动作不雅，”“所以写成出恭。” 
在口语中，因为说话者或受话人都知道相方的关系和说话主题，所以大都隐去主词或受词。但在书写文章时，必须要清楚表明主和宾双方。一般句子结构●动宾结构：一般口语，多是动宾结构的，即前面是动词，后面是名词组成的。这是因为受话人明知语句的主语而不用说出来的关系。
〈你正在──主语不用说出来〉拍马屁、 
〈你真的是〉痴线（广东惯用语）、〈你是在〉敲竹杠、〈你在〉泼冷水、〈你不要〉耍花招等。 
●主谓结构，主谓（陈述）结构，即前面是主词或主语，后面加上一个描述或动作的单字、词语或词组组成的。这是因为说话语句中的受词或宾语不用说出来的关系 。
多为说话语句中的动词部分，主语和宾语也不用说出了。 例如：（这个）天晓得，、〈他的〉嘴巴软〈了〉等。 
●复词结构
●偏正结构由两组〈或以上〉字词所组成的〈复合〉名词──用作主语部分，或宾语部分。 
●形容词〈相当于英语的形容词〉及名词。 
替罪羊、耳边风、糊涂虫、绊脚石等。 
鬼画〈形容词〉符 
由两组〈或以上〉字词所组成的短句，如谓语部分。 
●动词及副词。
跳得很远、大声哭叫、清早起来参阅文字、词语、句子、文章、词、书本、编集 
中文旧式体裁 
楚辞、秦汉骈文、诗、词、歌、赋、唐宋古文 
民谣、元曲、明清八股、文言文、白话文 
历、记事或纪录、经、史、子 
中文体裁 
抒情文、描写文 
散文、小说 
记叙文 
历史、回忆录 
议论文 
社论、评述、 
报告 
论文、会议记录 
说明文 
通告、产品说明书、书序 
应用文 
合约、租约 
文法词性分类
计算机科学中的文法
计算机科学中的文法文法即语言中的每个句子可以用严格定义的规则来构造.
多用在编译程序和语言处理等领域，例如在编译程序中，根据一些指定的规则，来确定编程语言的语法，从而实现编译器的功能。
比如有这样一个文法
E -> T+E | T-E | T
T -> F*T | F/T | F
F -> (E) | i
它可以推导出任何一个算述表达式，例如这样一个表达式(i + i) * i,可以通过如下的文法推导获得：
E => T => F * T => (E) * T => (T + E) * T => (F + E) * T => (i + E) * T => (i + T) * T => (i + F) * T
=> (i + i) * T => (i + i) * F => (i + i) * i文法的类型文法形式
在计算机科学中，文法是编译原理的基础，是描述一门程序设计语言和实现其编译器的方法。文法的描述多用BNF(巴克斯范式)，而另一个重要的概念:正则表达式，也是文法的另一种形式。
文法分类
自从乔姆斯基(Chomsky)于1956年建立形式语言的描述以来，形式语言的理论发展很快。这种理论对计算机科学有着深刻的影响，特别是对程序设计语言的设计、编译方法和计算复杂性等方面更有重大的作用。
乔姆斯基把文法分成四种类型，即0型、1型、2型和3型。这几类文法的差别在于对产生式施加不同的限制。 
多数程序设计语言的单词的语法都能用正规文法或3型文法来描述。 
3型文法G=(VN，VT，P，S)的P中的规则有两种形式：一种是前面定义的形式，即：A→aB或A→a其中A，B∈VN ，a∈VT*，另一种形式是：A→Ba或A→a，前者称为右线性文法，后者称为左线性文法。正规文法所描述的是VT*上的正规集。 
四个文法类的定义是逐渐增加限制的，因此每一种正规文法都是上下文无关的，每一种上下文无关文法都是上下文有关的，而每一种上下文有关文法都是0型文法。称0型文法产生的语言为0型语言。上下文有关文法、上下文无关文法和正规文法产生的语言分别称为上下文有关语言、上下文无关语言和正规语言。
类型说明
设G=(VN，VT，P，S)，如果它的每个产生式α→β是这样一种结构：α∈( VN∪VT )*且至少含有一个非终结符，而β∈( VN∪VT )*，则G是一个0型文法。 
0型文法也称短语文法。一个非常重要的理论结果是，0型文法的能力相当于图灵机(Turing)。或者说，任何0型语言都是递归可枚举的；反之，递归可枚举集必定是一个0型语言。 
对0型文法产生式的形式作某些限制，以给出1，2和3型文法的定义。
设G=(VN，VT，P，S)为一文法，若P中的每一个产生式α→β均满足|β|≥|α| ，仅仅S→ε除外，则文法G是1型或上下文有关的。 
在有些文献给的定义中，将上下文有关文法的产生式的形式描述为α1Aα2→α1βα2，其中α1、α2和β都在( VN∪VT 
)*中(即在V*中)，β≠ε，A在VN中。这种定义与前边的定义等价。但它更能体现"上下文有关"这一术语，因为只有A出现在α1和α2的上下文中，才允许用β取代A。 
设G=(VN，VT，P，S)，若P中的每一个产生式α→β满足：α是一非终结符，β∈( VN∪VT )*则此文法称为2型的或上下文无关的。有时将2型文法的产生式表示为形如：A→β其中A∈VN，也就是说用β取代非终结符A时，与A所在的上下文无关，因此取名为上下文无关文法。 
例4.1和例4.2中的文法都是上下文无关的，下面我们再给出一个例子(例4.4)，例中的文法G是上下文无关文法，G的语言是由相同个数的a和b所组成的{a，b}*上的串。 
设G=(VN，VT，P，S)，若P中的每一个产生式的形式都是A→aB或A→a，其中A和B都是非终结符，a是终结符，则G是3型文法或正规文法。
文法G定义为四元组(VN，VT，P，S )其中
VN:非终结符号(或语法实体，或变量)集；
VT:终结符号集；
P: 规则的集合；
VN，VT和P是 非空有穷集。 
S:称作识别符号或开始符号的一个非终结符，它至少要在一条产生式中作为左部出现。
VN和VT不含公共的元素，即VN ∩ VT = φ
用V表示VN ∪  VT ，称为文法G的字母表或字汇表
规则，也称重写规则、产生式或生成式，是形如→或 ∷=的( ，)有序对，其中是字母表V的正闭包V+中的一个符号，是V*中的一个符号。  称为规则的左部，  称作规则的右部。
规则描述
程序设计语言中的几类单词可用下述规则描述： 
〈标识符〉→l|l〈字母数字〉 
〈字母数字〉→l|d|l〈字母数字〉|d〈字母数字〉 
〈无符号整数〉→d|d〈无符号整数〉 
〈运算符〉→+|-|*|/|=|〈〈等号〉|〉〈等号〉…… 
〈等号〉→= 
〈界符〉→，|；|(|)|…… 
其中l表示a～z中的任何一英文字母，d表示0～9中的任一数字。 
关键字（保留字）也是一种单词，一般关键字（保留字）都是由字母构成，它的描述也极容易，实际上，关键字（保留字）集合是标识符集合的子集。 
最复杂的一类单词要属无符号实数了，比如25.55e+5和2.1，它们可以由如下规则描述。 
例4.6 
〈无符号数〉→d〈余留无符号数〉|.〈十进小数〉|e〈指数部分〉 
〈余留无符号数〉→d〈余留无符号数〉|.〈十进小数〉|e〈指数部分〉|ε 
〈十进小数〉→d〈余留十进小数〉 
〈余留十进小数〉→e〈指数部分〉|d〈余留十进小数〉|ε 
〈指数部分〉→d〈余留整指数〉|s〈整指数〉 
〈整指数〉→d〈余留整指数〉 
〈余留整指数〉→d〈余留整指数〉|ε 
其中s表示正或负号(+，-)，d表示0～9中的任一数字。
举例
例：1型（上下文有关）文法 
文法G[S]： S→CD　　Ab→bA 
C→aCA 　Ba→aB 
C→bCB 　Bb→bB 
AD→aD 　C→ε 
BD→bD 　D→ε 
Aa→bD 
L(G)={ww|w∈{a,b}*} 
例：2型（上下文无关）文法 
文法G[S]： S→0A|1B|0 
A→0A|1B|0S 
B→1B|1|0 
例：定义标识符的3型（正规）文法 
文法G[I]： I → lT 
I → l 
T → lT 
T → dT 
T → l 
T → d 
其中l表示a～z中的任何一英文字母，d表示0～9中的任一数字。