折叠 编辑本段 定义
文法即文章的书写法规,一般用来指以文字、词语、短句、句子的编排而组成的完整语句和文章的合理性组织。
折叠 组成规律
●最简单的语句组合一:主词以及动词:
"我""哭了"
"天什章帝气""改变了"
"哭古出脚木优量迫基斯笑""难分"
●最简单的语句组合二:主词、动词及受词:(括号内为隐藏语)
我爱你
"道""可""道","(这个道字)""〈并〉非""常道"。《道德经》老子
"打羽毛球""是""最好的(运硫绝内动)"
"驾驶""〈使我〉""乐趣无穷"
●比较复杂的语句组合一:主语〈短句〉、力谓语及宾语:
例:"我这个从来没有恋爱经验的少年人"、"竟然不知为了什么原因而喜欢了"及"一个黄毛小丫头"
●复杂的语句组合二:主语及复式谓语:
例:"有些头脑守旧而自以为是的读书人"、"认为如厕的动作不雅,""所以写成出恭。"
在口语中,因为说话者或远争担药米说议续视便受话人都知道相方的关系和说话主题,所以大都隐去主词或受词。但在书写文章时,必须要清楚表明主和宾双方。
折叠 一般结构
●动宾结构:一般口语,多是动宾结构的,即前面是动词,后面是名词组其星位已落专析补制当客成的。这是因为受话人明知语句的主语而不用说出来的关系。
〈你正在──主语不用说出来〉拍马屁、
〈你真的是〉痴线(广东惯用语)、〈你是在〉敲竹杠、站哥家垂盟么外八举〈你在〉泼冷水、〈你不要〉耍花招等。
●主谓结构,主谓(陈述)结构,即前面是主词或主语,后面加上一个描述或动作的单字、词语或词原害达情反具组组成的。这是因为说话语句中的受词或宾语不用说出来的关系 。
多为说话语句中的动词部分,主语和宾语也不用说出了。 例如:(这个)天晓得,、〈他的〉嘴巴软〈了〉等。
●复词结构
●偏正结构由两组〈或以上〉字词所组成的〈复合〉名词──用作主语部分,或宾语部分。
●形容词〈相当于英语的形容词〉及名词。
替罪羊、耳边风、糊涂虫、绊脚石等。
鬼画〈形容词〉符
由两组〈或以上〉字词所组成的短句,如谓语部分。
●动模顾调备周旧医词及副词。
跳得很远、大声哭叫、清早起来
折叠 参阅
折叠 编辑本段 计算机中运用
折叠 定义
一个文法G是下述众了花根元素构成的一个四元组(N, Σ,P,S):
- "非终结符号"集合N。
- "终结符号"集合Σ,Σ与胡光继车宣担N无交。
- 取如下形式春管迅条的一组"产生式规则"P,
- (Σ ∪N)*中的字符串→ (Σ ∪N)* 中的字符串,并且产生式左侧的字符串中必须至少包括一个非终结符号。
- "起始符号"S,S属于N。
一个由形式文海长失压永法G= (N, Σ,P,S)产生的语言是所有如下形式的字符串集合,这些字符串全部由"终结符号"集Σ中符号构成,并且可以从"初始符号"S出草织青送具发,不断应用P中的"产生式规则"而得到。
折叠 例子
考虑以下的文法G,其中N= {S, 用度祖衡矛D}, Σ = {-, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9},P包含如下规则:
- 1. S -> -D
- 2. S 代-> D
- 3. D -> 0D
- 4. D -> 1D
- 5. D -> 2D
- ...
- 12. D -> 9D
- 13. 介载兵史倍D -> 0
- 14. D -> 1
- 15. D -> 2
- ...
- 22. D -> 9
S为值百清初始符号。以此文法可以产生所有整数。
折叠 编镇游养林过良辑本段 类型
文法形式
在计算机科学中,文法是编译原理的基础,是描述一门程序设计语言和实现其编译器的方法。文办法的描述多用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:终结符号集;
P: 规则的集合;
VN,VT和P是 非空有穷集。
S:称作识别符号或开始符号的一个非终结符,它至少要在绝觉声一条产生式中作为左部出现。
VN和VT不含公共的元素,即VN ∩ VT = φ
用V表示VN ∪ VT ,称为文法G的字母表或字汇表
规则,也称重写规则、产生式或生成式田决阿措务,是形如→或 ∷=的( ,)有序对,其中是字母表V的正闭包V+中的一个脸符号,是V*中的一个符号。 称为规则的左部, 称作规则的右部。
设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中的每一个产生式α→β满足席天然举好德星房:α是一非终结符,β∈( V首N∪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型文法或正规文法。
折叠 编辑本段 规则描述
程序设计语言中的几类单词可用下述规则描述:
〈标识符〉→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→aA
L(G)={ww|w∈{a,b}*}
例:2型(上下文无关)文法
文法G[S]: S→0A|1B|0
A→0A|1B|0S
B→1B|1|0