文档库 最新最全的文档下载
当前位置:文档库 › 第五章:一阶逻辑的语法和语义

第五章:一阶逻辑的语法和语义

第五章:一阶逻辑的语法和语义
第五章:一阶逻辑的语法和语义

一阶谓词逻辑部分——一阶语法:

1定义字母表的定义

一个一阶语言L的字母表由以下符号组成:

1)一组非逻辑符号,其中包含:

i)一个(可能空的)个体常项集;{a1,a2,…}

ii)对每个n ≥1, 一个(可能空的)n元谓词集;

{F11,F12,…,F21,F22,…,F n1,F n2,…,…}

iii)对每个n ≥1, 一个(可能空的)n元函数符号集{f11,f12,…,f21,f22,…,f n1,f n2,…,…}

2)一组固定的逻辑符号,其中包含:

i)个体变项x0, x1, x2,…(可数无穷多);

ii)量词?,[?];

iii)联结词?,→,[∧,∨,?];

iv)等词[≡];

v)括号),(。

注1:我们上面定义的,可以叫做带等词的一阶语言的字母表。形式语言对其字母集(及其每个子类)的大小做了限定,要求它(它们)是可数的。这是因为,对不可数集合,一般没有一个能行的方法来判定一个对象是否属于它。

注2:所有一阶语言有共同的逻辑符号,它们的字母表的差别完全由非逻辑符号决定,所以,在不引起误解的情况下,我们不妨把一个一阶语言就简单地看成它的非逻辑符号

集。

注3:一个语言(的字母表)虽然可能是为了描述某个特殊的结构而设计的,但字母表一旦给定,这个语言也可以用来描述其他的结构,只要这些结构的组成与这些字母(的一部分)相匹配就行。

注4:在谈论一个一阶语言的时候,我们需要一些元语言的变项来代表这个(对象)语言字母表中的任意某类符号。我们约定,在元语言中用

x, y, z等代表一阶语言的个体变项;

c, d, e等代表一阶语言的个体常项;

P, Q, R等代表一阶语言的谓词;

f, g, h等代表一阶语言的函数符号。

2 项的归纳定义

下一步我们要从字母表中构造一阶语言的词项(以下简称项)。项的作用是指称或表示结构中的个体,所以个体常项是一种项,个体变项是另一种项,而函数,如f(x) = x的母亲,其函数值也代表个体,所以函数表达式也是项。现在的问题是:到底哪些东西是项,或者,我们如何确切定义项的集合?

设L为一阶语言。L-项定义为:

1)基始条件:

i)L字母表中的每个个体常项是L-项。

ii)每个个体变项是L-项。

2)归纳条件:对任意n 1,若f是L的n元函数符号,且符号串t1,…, t n是n个L-项,则它们的连接ft1…t n也是L-项。

3)封闭条件:没有其他东西是L-项。

注1:叙述这个定义时,我们用到了新的元语言变项t。以后我们就用r,s,t等代表项。

注2:如此定义的L中的项具有可判定性,具体的判定步骤我们省略。项的长度是有穷的,但是项的集合可以是可数无穷的。

3 公式的归纳定义

语言中有了项,我们便可以用不同的方式指称结构中的个体。但是,仅能指称个体,还不足以描述结构。我们还需要语言中其他的表达式,来表达个体具有什么性质(属于什么集合)以及个体间具有什么关系(个体的有序组属于什么集合),或者说,表达关于结构的一阶命题。这种表达式,叫做公式。

公式与项类似,也是字母表中的符号组成的符号串,也能用归纳定义把它确定下来。

定义设L为任意一阶语言。L的公式(或L-公式)定义为:

1)基始条件:

i)对L的任意n(n ≥ 1)元谓词P和任意n个L-项t1, t2,…, t n,Pt1…t n是L-公式;

2)归纳条件:

ⅰ)如果A是L-公式,则?A也是L-公式;

ⅱ)如果A,B是L-公式,则(A → B)也是L-公式;

ⅲ)如果A是L-公式,x是个体变项,则?x A也是L-公式;

3)封闭条件:没有其他东西是L-公式。

注1:可以看出,这里定义的还是L-串的某种连接形成的L-串。基始条件确定的公式,称为原子公式。原子公式由谓词和项直接连接而成。其他非原子公式都是从原子公式出发,添加真值联结词或量词形成的。归纳条件确定的公式ⅰ)ⅱ)ⅲ)分别称为否定式、蕴涵式、全称式。注意,?x或?x放在一个公式A之前形成新公式的时候,并不要求A中出现x。注2:定义中出现了元语言变项A和B,我们约定以后就用它们代表公式。注意,象Pt1…t n、A、(A ∧ B)、?x A等等的,有元语言变项出现于其中的,本身作为符号串都不是公式(公式只由对象语言中的符号组成),它们称为公式模式。每个公式模式都代表形如自身的一切公式。显然,与L-项的情形一样,每个L-公式也是有穷长的。公式的集合可以是可数无穷的。

注3:对于一个符号串是否是公式,我们也有能行的可判定

程序。

4自由和约束、代入

4.1 定义对一个量化式?x A(或?x A),称其子公式A是量词?x(或?x)的辖域。一般而言,如果?x A(或?x A)作为子公式出现在公式B中,则称A是这个量词在B中的辖域。

直观上看,一个量词的辖域就是紧跟着它的最短公式。比如,在L1st-公式?x1(P01c1→ (P01c1∧P11x1)) 中,?x1的辖域就是(P01c1→ (P01c1∧P11x1));而在(P01c1→?x1 (P01c1∧P11x1))中,?x1的辖域则是(P01c1∧P11x1)。一个量词在一个公式中可能有多次出现,此时它的每一次出现都有一个辖域。例如,在?x1 (P01c1→?x1 (P01c1∧P11x1))中,?x1的第一次出现的辖域是(P01c1→?x1 (P01c1∧P11x1)),而第二次出现的辖域则是(P01c1∧P11x1)。

4.2 定义在公式?中,一个变项x如果出现在某个形如?x (或?x)的量词的辖域中,或它就紧跟在?(或?)后面,则称x在A中的这处出现是约束的。变项的非约束的出现,称为自由出现。

如果x在A中有一处自由出现,则称x是A中的自由变项。如果x在A中的所有出现都是约束的,则x是A中的约束变项。

4.3 例考虑以下L ord-公式:

? x0≡x1;

?x0(? x0≡x1∧≤x0x1)

?x0(? x0≡x1∧?x1≤x0x1)

在第一个公式中,所有变项的所有出现都是自由的,因此两个变项都是自由变项。第二个公式中,x0的三处出现都是约束的,因此是约束变项,而x1的两处出现都是自由的,所以x1是自由变项。第三个公式中,x1的第一处出现是自由的,第二处出现是约束的,但既然x1有自由出现,它就是这个公式中的自由变项。

4.4 定义设L是一个一阶语言,s是一个L-项。对任意变项x和L-项t,我们如下递归定义t在s中对x的代入,记为s[x/t]:

1)若s为个体常项,则s[x/t] = s。

2)若s为个体变项y,则s[x/t]=y 若y≠x;

否则t若y = x。

3)若s为ft1…t n,则s[x/t]=ft1[x/t]…t n[x/t]。

容易归纳证明,s[x/t]仍然是L-项。

4.5 定义设L是一个一阶语言,A是一个L-公式。对任意变项x和L-项t,我们如下递归定义t在A中对x的代入,记为A[x/t]:

容易归纳证明,A [x/t]仍然是L-公式。

4.6 定义 设L 是一个一阶语言,A 是一个L-公式。对任意变项x 和L-项t ,称t 在A 中对x 可代入,如果x 在A 中不自由地出现于某个?y (或?y )的辖域中,这里的y 是出现于t 中的一个变项。t 在A 中对x 可代入也称为t 在A 中对x 是替换自由的。

4.7 举例及练习

(1) x 3对公式 中的x 2是自由的,而x 1对公式中的x 2则是不自由的。 因为x 2自由地出现在?x 1的辖域中,而x 2并没有自由地出现在?x 3的辖域中(在这里有两个意思:或者x 2没有出现在?x 3的辖域中,或者 x 2出现在?x 3的辖域中,但是x 2的出现是不自由的)。对于(1)1

112()x A x ?11111111111111,...,,...,(/,...,/),...,,...,(,...,),(/,...,/)(/,...,/,...,/,...,/),n n n n n n n n n n n n n n x x t t A A x t x t t t A x x A P u u A x t x t P u

x t x t u x t x t A B ? 令两两不同,令是项,且令是公式。

我们用表示用同时替换中

的所有自由出现而得到的结果。 (

1)若=则= ()() (2)若=111111111111(/,...,/)(/,...,/).,{,...,},(/,...,/)/,...,/(1),{,...,},(/,...,/)n n n n n n n n n i i n n n A x t x t B x t x t A B C A xB x x x A x t x t xB

x t x t A x B i n x x x A x t x t ?→????≤≤∈?则=

=的情况也是如此。 (

3)若=且则 =(). (4)若=即则

= 111111/,...,/,,/,...,/i i i i i n n i i x B x t x t x t x t x B x --++?()

(也就是说,对公式中出现的地方不进行替换)。

中所举的例子来说,是因为x 2没有出现在?x 3的辖域中。

(2)也有可能出现x 2约束地出现在?x 3的辖域中的情况,例如x 3对公式 中的x 2是自由的。 因为在这个公式中没有x 2的自由出现。由上不难看出,项t 对公式A 中的变元x 是自由的,主要是看t 对x 在A 中的自由出现进行代入是不是自由的。而对x 的约束出现进行代入则没有太多的意义。就好像这个例子所看到的那样。

(3)

(4)课堂练习

13212

()x x A x ??221112323121142212114122232223222312

2113131(,)(,)

(,)(,)(,)(,)(,)A x A x x x A x x f x x x x x f x x x f x x x x x x f x x x x x x f x x x ?→????令=则对是不自由的(自由地出现在的辖域中)对是自由的;

对是自由的(没有自由地出现在或的辖域中)对是不自由的;

对是自由的(注意仅自由出现一次);对是不自由的。122211212113

131211211211121122222

21112112321221132((,)(,)).()(,,).

()(,).(4)(((,),)(,(,))).(,)i x x A x x A x a A x x x A x x a x A x x A x x x A f x x x x A x f x x f x x x A x ?→→????→??→?1.下列公式中的哪些出现是自由的,哪些是约束的。

(1)(2)(3)项对哪些公式中的是自由的。

2.令()是L i j i j i i i j j j i i j x x A x x A x x x A x x A x A x x x 中一公式,其中自由出现,令是在公式()中并不自由出现的一变元。证明:如果对()中是自由的,那么对()中也是自由的。其中,()是对()中的每次自由出现代入后得到的结果。

(5)项t 对公式A 中的x 代入(t 对A 中x 的替换)举例:

请指出(2)的这些代入中,哪些是不自由的。

(6)项t 对公式A 中的x 代入(t 对A 中x 的替换)课堂练习:

22

112

211221121(,(,))(/(),/,/)((/(),/,/),((/(),/,/),(/(),/,/)))

((),(,))((/(),/,/)(/,/))

(,)P x F z y x G y y z z y P x x G y y z z y F z x G y y z z y y x G y y z z y P G y F y z x G y y z z y y y z z y z y yP x y xQ =?→? (1)==注意:中的替换仅对符合的情况替换一次,不要重复进行。例如而不是。(2)(31231123

11(,,))(/,/,/)

((,))(/,/,/)((,,))(/,/,/)(,)(,,)x y z x z y x z u y P x y x z y x z u x Q x y z x z y x z u yP z y xQ x x u =?→?=?→?1211311221

2121121111

13131111321123112331211112()(,).(/),(,(,))()(()())(())(,,)

((,(),)A x t f x x A x t t

x x A x f x x A x x x A x A x x A f x x A x x x x A x f x x ?→??→?→??→? 1.在下列情况中,令是给定的公式,并且令是项

写出公式并且判定,在每种情况下,对给定公式中的是否自由。

(1)(2)(3)(4)12311132

3

2

11131123((,)))

2.(,)(,,)

x A f x x x x f a x f x x x 对下面的项重做练习1

(a ) (b ) (c ) (d )

一阶谓词逻辑部分——一阶语义

1. 结构与解释

1.1 定义设L是一阶语言。一个L-结构?是一个有序对< ?, η>,它满足以下性质:

1)?是个体的非空集合,称为?的全域或L的论域。

2)η是定义在L的非逻辑符号集上的函数,使得

i)对L的每个个体常项c,η(c) ∈?。

ii)对L的每个n元谓词P,η(P)是?中的一个n元关系。

iii)对L的每个n元函数符号f,η(f)是?中的一个n 元函数。

我们用正体字母?等代表结构,相应地用斜体?代表它们的全域。全域?的基数|?|标示结构?的大小,当?为有穷集、可数无穷集、不可数集时,?也就分别称为有穷结构、可数无穷结构或不可数结构。

由定义知,一个L-结构? = < ?, η>首先有一个作为语言L的论域的非空个体域?,然后它有一个解释函数η,把L 中的个体常项、谓词、函数符号分别解释为?中个体、关系(一元关系是性质)和函数。以后我们把η的值η(c)、η(P)、η(f)等记作c?、P?、f?。对应于语言的记法,我们经常也把一个结构记为它的全域和其中的c?、P?、f?等组成的有序组。

例如,L m = {a, P, Q, f},一个L m结构就可记为A=

P?, Q?, f?>,其中

a是?中个体a?的名字;

P表达?的子集(?中的性质)P?;

Q表达?2的子集(?中的二元关系)Q?;

f表达?中一元函数f?。

一个L-结构?一旦给定,它就是语言L之外的一个世界,其中的事实独立于语言L而成立。在L之外述说?中成立的事实,要使用L之外的符号(如a?, P?, Q?, f?等等)。比如我们说:P? (a?)(或a?∈P?);对个体a,b ∈?,Q? (a, b)(或 ∈Q?);等等。

注意这里的区别:a, P, Q, f等是语言L m中的符号,它们可以构成项、公式等L m表达式,对结构进行描述,但它们不能用在L m之外述说关于结构的事实;而a?, P?, Q?, f?等,不是L m中的符号,它们不能出现在L m的项、公式之中。如Pa是公式,但P? (a?)或Q? (a, b)是在L m之外关于结构中事实的述说,混同二者的表达,如Pa?,Q(a, b)以及P? (a)等都是没有意义的。

还要注意,一个n元函数符号必须解释为论域A中的n 元全函数,即它的定义域为A n(对A n的所有元素有定义),值域包含在A中(函数对A封闭)。如A中的一元函数f?必须对A中所有的a有定义,且所有的f? (a)均属于A。

1.2 定义对给定的L-结构?= < ?, η>,一个?中的赋值是从L的个体变项集到?的全域?中的一个函数:ρ:{x0, x1, x2, …}→?。

1.3 定义对语言L的一个解释指有序对σ = ,其中?是一个L-结构,ρ是一个?中的赋值。

定义中的?叫做σ的结构,?的全域?也称解释σ的全域。显然,一个解释就是一个结构加上其中的一个赋值,把结构未能照顾到的个体变项一并规定了指称。

一个L-解释能够确定所有L-项的指称,我们把这个事实总结为如下的递归定义:

1.4 定义设t是一个L-项,σ = < ?, ρ>是一个L-解释。我们称t在σ之下所对应的个体为t在σ之下的指称,记为t?[ρ]。t?[ρ]是满足以下条件的函数的值:

1)若t为个体变项x i(i ≥ 0),则t?[ρ] =ρ(x i);

2)若t为L的个体常项c,则t?[ρ] = c?;

3)若t为ft1…t n,其中f是L的n元函数符号(n ≥ 1),t1, …, t n是n个L-项,则

t?[ρ] =f?(t1?[ρ], ..., t n?[ρ])。

可以用归纳法简单地证明,对每个t,t?[ρ]是σ的全域?中的个体。个体常项的指称直接由结构确定;个体变项的指称由赋值确定;ft1…t n的指称则是其子项t1, …,t n的指称t1?[ρ], ..., t n?[ρ]经过结构中的函数f?运算的值。

定义了每个L-项t的指称t?[ρ]之后,L的每个形如Pt1…t n的原子公式都表达某个确定的命题。Pt1…t n在L-解释σ= 之下可满足,当且仅当,存在有赋值ρ使得P?(t1?[ρ], ..., t n?[ρ])在结构?中成立,或者说在?中有事实:< t1?[ρ], ..., t1?[ρ]> ∈P?。Pt1…t n在L-解释σ = 之下为真,当且仅当,对任意赋值ρ都使得P?(t1?[ρ], ..., t n?[ρ])在结构A中成立,或者说在A中总有事实(不论赋值ρ如何给个体变项赋值):< t1?[ρ], ..., t1?[ρ]> ∈P?。

1.5 定义与赋值ρ x-等值的赋值ρ(x/a)

给定一个赋值ρ。我们有时需要用到一个新的赋值,它把某个体变项x对应到某个体a上,而对其他个体变项,它跟ρ的作用完全相同。当a =ρ(x)时,两个赋值实际上没有区别;当a ≠ρ(x)时,二者的唯一区别就是在x处的函数值不同。这个新的赋值,我们记为ρ(a/x),它的定义如下:对任意的个体变项y,

a,若y=x,

ρ(x/a) (y) =ρ(y),若y≠x。

如果解释σ = ,则把相应的新解释记为σ(x/a)。显然,σ(x/a)保持了σ中的结构,所以,对语言中的所有非逻辑符号,二者都有相同的解释。但是,σ(x/a)用ρ(x/a)替换了σ中的ρ,从而具有了一个新的赋值。两个解释若有区别的话,则它们唯一的区别在于x处的赋值不同。

2 量词的语义解释

在任何解释下,全称量词?读作“对所有的…”或“对任意的…”,存在量词?读作“存在…”或“至少有一个…”。

于是,公式?x?(x)似乎能解释为:对论域中所有的x,?(x)为真;而?x?(x)则解释为:论域中至少有一个x,使得?(x)为真。

但是,这种表达方式有问题:这里的x,根据我们的约定,代表语言中的个体变项,因此不能在未加限制的情况下,同时又用来表示论域中的对象。所谓“论域中所有的x”、“论域中至少有一个x”的说法,混同了两个层次的语言。

其实,?x?(x)要说的无非是:论域中任意个体都有?(x)表达的性质;而?x?(x)则表示:论域中至少有一个个体有?(x)表达的性质。但要严格表达这些意思,则需要从“一个个体a具有性质?(x)”开始分析。

对任意解释σ = ,“论域?中的个体a具有?(x)所

表达的性质”的准确的意思是,当我们用a来解释x而其他符号的解释都不变时,?(x)在这个新解释下为真。采用上节末引入的记法,这即是说,?(x)在新解释σ(a/x)=< ?, ρ(a/x)>=< ?, η,ρ(a/x)>之下为真。所以,

?x?(x)在σ之下严格读作:

对所有的a ∈?,?(x)在σ(x/a)之下为真。

?x?(x)则读作:

存在a ∈ ?,使得?(x)在σ(x/a)之下为真。

注:在一个个体域中,如果存在个体具有某性质,则显然并非全部个体都没有此性质。这就是说,“至少有一个,使得…”蕴涵“并非对所有的,都不…”。另一方面,我们的语义学假定了经典逻辑的排中律,就是说,我们假定,全域中任何一个个体或者有某性质或者没有某性质。这导致,“并非对所有的,都不…”反过来蕴涵“至少有一个,使得…”。所以,?x?等价于??x??。这使得我们可以用全称量词?加上联结词?来定义存在量词?。换言之,我们可以把所有形如?x?的公式看作形如??x??的公式的缩写,因而在原则上去除符号?。同理,?x?也等价于??x??,我们也可以用存在量词定义全称量词。两个量词,在理论上只需要一个,不必都作为初始符号放在语言的字母表中。我们之所以同时采取两个,是考虑到在实际应用上这样更方便一些。

3 满足和真

字母表中的所有符号都得到解释之后,一个语言的所有公式都表达命题。我们知道命题代表真值。那么,一个公式在什么条件下被解释为真或假呢?前面我们讨论了在一个解释之下,一个原子公式何时为真,一个量化式或含有联结词的复合式的真值如何被它们的子公式的真值决定。这些内容构成了一个充分的基础,使我们能够递归地确定“一个L-公式在一个L-解释下为真”的确切含义。塔斯基语义告诉我们:定义真必须先定义可满足。

3.1 定义设L是一阶语言,σ = < ?, ρ>是一个L-解释。对任意L-公式A,在σ之下可满足,记为? |=A[ρ];A在σ之下不可满足,记为? |≠A[ρ]:

1)若A是原子公式Pt1…t n,其中P是L的n元谓词,t1, ..., t n是n个L-项,则

? |=A[ρ]?∈P?

因此,? |≠A[ρ]??P?

2)若A为?B,则

? |=A[ρ]??|≠B[ρ],其中“?|≠B[ρ]”表示“并非?|=B[ρ]”

3)若A为B → C,则

? |=A[ρ]?如果? |=B[ρ],那么? |=C[ρ],即“或者? |≠B[ρ]或者? |=C[ρ]”

4)若A为?xB,其中x为个体变项,则

? |=A[ρ]?对每个a ∈?,? |=B[ρ(x/a)] 1)直接规定了原子公式在一个解释下可满足的条件。2)—3)确定了如何从子公式的可满足得到用联结词联结它们之后的复合公式的可满足,它们实际上定义了对联结词的解释。4)则定义了对量词的解释。量化式的真值也是由子公式的真值决定的,但这里要考虑的不仅是子公式在原解释下的真值,还包括解释中赋值变动后对子公式真值的影响。

3.2设L是一阶语言,σ = 是一个L-解释。对任意L-公式A,A在σ之下为真,记为σ(A) = T;A在σ之下为假,记为σ(A) = F。σ(A)是满足以下条件的唯一的函数的值:1)若A是原子公式Pt1…t n,其中P是L的n元谓词,t1, ..., t n是n个L-项,则

σ(A) = T?对σ中的任意赋值ρ都有? |=A(ρ) 2)若A为?B,则

σ(A) = T?σ(B) = F

3)若A为B → C,则

σ(A) = T?如果σ(B) = T,那么σ(C) = T 4)若A为?xB,其中x为个体变项,则:σ(A) =T?对每个a ∈?,σ(x/a)(A) = T

?对每个a ∈?,对任意赋值ρ∈σ都有? |=A[ρ(x/a)]。

对一个L-公式集Φ和一个L-解释σ,我们用σ(Φ) =T表示:对每个A ∈Φ,都有σ(A) = T(或者,对任意的A,若A ∈Φ,则σ(A) =T)。当Φ为空集时,因为对任意的A,A ∈?总为假,所以,对任意的σ,σ(?) = T。

3.3 定义对L-语句?和L-解释σ = ,如果σ(A) = T,则称A在结构?中为真,或?为A的模型。如果Φ为L-语句集,且对每个A ∈Φ,?为?的模型,则称?为Φ的模型。

直观上讲,每个闭公式直接表达关于结构的某个命题,如果这是个真命题,则这个结构就是那个闭公式的模型。闭公式的集合如果表达关于某个结构的一组真命题,则也以这个结构为模型。但开公式不是如此,在其中的自由变项没有确定的指称时,它们不表达关于结构的命题。含有一个自由变项的开公式,此时的作用类似于一元谓词,表达某个性质;含有n个自由变项的开公式则类似于n元谓词,表达某个n 元关系。只有用赋值确定了全部自由变项的指称时,开公式才表达关于结构的命题。

4. 语义后承

一个推理是有效的,当且仅当在一切情形之下,如果它的前提都真,则它的结论为真。现在,我们对这个直观表达中涉及的所有概念都有了精确的分析。首先,我们建立了形式

的一阶语言,用其中的公式表示一阶命题(的真值)。然后我们用“解释”这个概念代替了模糊的“情形”概念。最后我们澄清了“一个公式在一个解释之下为真”的确切含义。于是,推理的有效性就可以用如下方式精确地定义。

4.1 定义设Γ为语言L的一个公式集,A是一个L-公式。如果对任意的L-解释σ,只要σ(Γ) = T,就有σ(A) = T,则称A为Γ的语义后承,记为Γ╞A。

显然,A为Γ的语义后承,直观上表达的就是:从前提集Γ到结论A的推理是有效的。注意,这里的Γ既可以是有穷集(包括空集),也可以是无穷集。定义中的“只要…就…”表达的是实质蕴涵。

以后我们经常把

{A1, …, A n}╞A简写为A1, …, A n╞A;

Γ? {A1, …, A n}╞?简写为Γ, A1, …, A n╞?。

特别地,

?╞A就记为╞A。

因为对任意的σ,σ(?) = T,所以,╞?相当于说:对所有的σ,σ(A) = T。

由定义易知,A不是Γ的语义后承,当且仅当存在L-解释σ,使得σ(Γ) = T,但σ(A) = F。

4.2 例对任意公式A、B、C,以下的语义后承关系成立:

1)A, B ╞ A ∧ B;

2)A ∧ B ╞A, A ∧ B ╞B;

3)A╞ A ∨ B,B╞ A ∨ B;

4)A╞B → A;

5)A, A → B╞B;

6)A, ?A╞B;

7)A → B, A →?B╞?A

现代汉语语法基础知识

现代汉语语法基础知识 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】

现代汉语语法基础知识 实词:意义较实在,能独立充当句子成分;加上一定的语气语调,一般可独立成句。 名词、动词、形容词、数词、量词、代词 虚词:不能独立充当句子成分;除了个别副词,一般不能独立成句。 副词、介词、连词、助词、语气词 一、实词 1.名词:表示人或事物名称的词。 有人物名词: 如学生、群众、老头、妇女、同志、叔叔、维吾尔族、酒鬼等; 有事物名词: 如笔、杉木、蜗牛、猎豹、奥托、棒球、战斗机、冥王星、思想、中学、物理、过程等; 有时间名词: 如上午、过去、将来、午夜、三更、甲戊、世纪等; 有方位名词: 如东南、上面、前方、内部、中间等。 2.动词:表示动作行为及发展变化的词。 有行为动词:如跑、唱、喝、敲、吆喝、盯、踢、闻、听、摸; 有发展动词:如生长、枯萎、发芽、结果、产卵; 有心理动词:如喜欢、恨、气愤、觉得、思考、厌恶; 有存现动词:如消失、显现、有、丢失、幻灭;

有使令动词:如使、让、令、禁止、勒令; 有能愿动词:如会、愿意、可以、能够、宁可; 有趋向动词:如来、去、上、下; 有判断动词:如是、为、乃。 3.形容词,表示事物性质、状貌特征的词。 有表形状的:如大、高、胖、瘪、细、壮; 有表性质的:如甜、好、香、漂亮、圆滑、机智、单调; 有表示状态的:如快、浓、满、多、迅速、静悄悄。 4.数词,表示事物数目的词。 有确数:如1、2、3、一、二、三、壹、贰、叁、二分之一、; 有概数:如几、一些、左右、以下、余; 有序数:如第一、第二、老大、老三、初九、初十。 5.量词,表示事物或动作的单位。 有名量词:如尺、寸、里、公里、斤、两、辆、角、元; 有动量词:如把、次、趟、下、回、声、脚、座。 6.代词,能代替事物名称的词。 有人称代词:如我、你、它、她们、大家、咱们; 有疑问代词:如谁、什么、怎么、哪里、为什么、何以; 有指示代词:这、那、那里、那边。 二、虚词 1.副词,经常用在动词、形容词前面,表示程度、范围、时间、否定、语气、频率等。

实验三 自下而上语法分析及语义分析

实验三自下而上语法分析及语义分析 一、实验目的: 通过本实验掌握LR分析器的构造过程,并根据语法制导翻译,掌握属性文法的自下而上计算的过程。 二、实验学时: 4学时。 三、实验内容 根据给出的简单表达式的语法构成规则(见五),编制LR分析程序,要求能对用给定的语法规则书写的源程序进行语法分析和语义分析。 对于正确的表达式,给出表达式的值。 对于错误的表达式,给出出错位置。 四、实验方法 采用LR分析法。 首先给出S-属性文法的定义(为简便起见,每个文法符号只设置一个综合属性,即该文法符号所代表的表达式的值。属性文法的定义可参照书137页表6.1),并将其改造成用LR分析实现时的语义分析动作(可参照书145页表6.5)。 接下来给出LR分析表。 然后程序的具体实现: ●LR分析表可用二维数组(或其他)实现。 ●添加一个val栈作为语义分析实现的工具。 ●编写总控程序,实现语法分析和语义分析的过程。 注:对于整数的识别可以借助实验1。 五、文法定义 简单的表达式文法如下: E->E+T|E-T|T T->T*F|T/F|F F->(E)|i 上式中,i 为整数。 六、处理程序例 例1: 正确源程序例: 23+(45+4)* 40分析结果应为:正确的表达式。其值为:1983 例2: 错误源程序例: 5+(56+)-24 分析结果应为:错误的表达式:出错位置为)

附录:源程序 #include #include"string.h" #include using namespace std; #define R 30 #define C 20 typedef struct elem { char e[4]; }Elem; //ACTION表与GoTo表中的元素类型 Elem LR[R][C]; //存放ACTION表与GoTo表中的内容 typedef struct out { int order; //序号 int state[10]; //状态栈 char sign[30]; //符号栈 char grasen[20]; //产生式 char input[30]; //输入串 char explen[50]; //解释说明 }OutNode; //输出结果中每一行的类型 OutNode out[20]; //存放输出结果 char Sentence[20]; //存放文法的一个句子 char GramSent[10][20]; //存放文法的一组产生式

(完整版)现代汉语语法知识

现代汉语语法知识 一、语法知识概述 (一)词类 汉语的词可以分为12类。名词、动词、形容词、数词、量词和代词是实词,副词、介词、连词、助词、拟声词和叹词是虚词。 名词:表示人和事物的名称的实词。如:"黄瓜、白菜、拖拉机、计算机"。 表示专用名称的叫做"专用名词",如"云南、上海、李白、白居易"。 表示抽象事物的名称的叫做"抽象名词",如"范畴、思想、质量、品德、友谊、方法"。表示方位的叫做"方位名词",如"上""下""左""右""前""后""中""东""西""南""北""前面""后边""东边""南面""中间"等。 动词:动词表示人或事物的动作、行为、发展、变化。 有的动词表示一般的动作,如:来、去、说、走、跑、学习、起飞、审查、认识"等。 有的动词表示心理活动,如"想、重视、注重、尊敬、了解、相信、佩服、惦念"等,这样的动词前面往往可以加上"很、十分"。 有的动词表示能够、愿意这些意思,叫做"能愿动词",它们是"能、要、应、肯、敢、得(dei)、能够、应该、应当、愿意、可以、可能、必须",这些能愿动词常常用在一般的动词前面,如"得去、能够做、可以考虑、愿意学习、应该说明、可能发展"。 还有一些动词表示趋向,叫做"趋向动词",如"来、去、上、下、进、出、上来、上去、下来、下去、过来、过去、起,它们往往用在一般动词后面表示趋向,如"跳起来、走下去、抬上来、跑过去"。 "是""有"也是动词,跟动词的用法一样。 形容词:形容词表示事物的形状、样式、性质等,如"多、少、高、胖、死板、奢侈、胆小、丑恶"。 数词:数词是表示事物数目的词。如"一、二、两、三、七、十、百、千、万、亿、半"。 量词:量词是表示事物或动作单位的词。汉语的量词分为名量词和动量词。 名量词表示事物的数量,又可以分为单位量词和度量量词。 单位量词表示事物的单位,如"个、张、只、支、本、台、架、辆、颗、株、头、间、把、扇、等; 度量量词表示事物的度量,如"寸、尺、丈、斤、两、吨、升、斗、加仑、伏特、欧姆、立方米"。 动量词表示动作的数量,用在动词前后表示动作的单位,如"次、下、回、趟、场"。

语义语法

仗剑独行编辑 为了能够在网络上进行更好的传输,首先将每幀图像划分为NAL单元,为了提高压缩率及错误处理能力提出了RBSP编码算法。 nal_unit(NumBytesInNALunit){//NumBytesInNALunit规定了NAL单元的大小forbidden_zero_bit nal_ref_idc//nal_ref_idc如果不为0,说明NAL单元的内容包含一个序列参数集或一个图像参数集,或一个参考图像条带,或一个参考图像的条带数据分割。 nal_unit_type//指明含在NAL单元中的RBSP数据结构的类型 NumBytesInRBSP=0 for(i=1;i

现代汉语语法知识

第一课时短语 短语,也称词组,是词和词组合成的语言单位。根据其构成方式可以分成: ①并列短语,由两个或两个以上的名词、动词、形容词并列组成的短语。如老师和同学、调查研究、培养和提高、万紫千红、理直气壮、丰功伟绩、是非黑白等。 ②偏正短语,词和词按修饰关系构成的短语,由定语或状语加中心词组成。如我的老师、一个顾客、伟大的人民、世外桃源;小心观察、更加坚决、突然发现、非常壮观、相当迅速。 ③动宾短语,词和词按照支配关系构成的短语,由动词和宾语组成。如吃晚饭、盖房子、歌唱祖国、顾全大局、关心集体、饱经风霜、理清思路等。 ④后补短语,词和词按照补充关系构成的短语,由动词或形容词加上补语组成。如看明白、想得太多、送出去、住一宿、说两句、红得发紫、害怕得要命、好得很、傻呆了、漂亮极了。 ⑤主谓短语,词和词按照陈述关系构成的短语,由主语和谓语组成。如心情舒畅、人声鼎沸、春光明媚、好人一生平安、月儿弯弯照九州等。 附:课堂检测 1.选出下列说法错误的一项() A保卫祖国保持安静歌唱英雄整顿作风(动宾短语) B风俗习惯正大光明缤纷络绎天高地厚(并列短语) C精神文明宝贵意见多么活泼伟大成就(偏正短语) D人民伟大成果辉煌黑了一阵宿舍旁边(主谓短语) 2.选出下列说法正确的一项( ) A清醒过来推辞一番卧倒在地工作数月(动补短语) B边走边谈穷凶极恶居安思危朝夕相处(并列短语) C内心激动增长很快态度诚恳精力充沛(主谓短语) D久经风霜进驻营地深入研究学习技术(动宾短语) 3.选出短语结构相同的一项() A欣喜万分参天耸立B历史悠久精神抖擞 C绞尽脑汁不折不挠D风卷残云百年大计 4.下面的课文题目都是短语,从结构上看完全相同的一项是() A出师表木兰诗忆江南 B愚公移山曹刿论战望天门山 C七根火柴苏州园林驿路梨花 D从三到万想和做纪念白求恩 5.选出对短语分类有错误的一组:( ) ①天气睛朗②发挥作用③仔细翻阅④丰功伟绩⑤认真讲解⑥美好回忆⑦甜言蜜语⑧打击敌人A主谓短语有①B并列短语有④⑥⑦C偏正短语有③⑤D动宾短语有②⑧ 6.阅读下面一段文字,调整画线部分的语序,并做到各短语格式协调一致、匀整对称。(字数不得增减)(2002C) 成年累月的战事,每况愈下的社会治安,经济的衰退,动荡不安的政局,生存环境的日益恶化,使世界上越来越多的正常生活受到威协,甚至连生命财产都没有保障。 第二课时划分句子成分 一、句子成分口诀:主谓宾、定状补,骨干枝叶记清楚,定语必居主宾前,谓前为状谓后补。【练一练】

TEST语法语义规则

TEST语言语法语义规则 程序中最后的声明必须是一个函数声明,名字为main。没有原型说明, 约定:主调函数的定义必须在被调函数的定义之前。 1.→{ fun_declaration } 2. → function ID’(‘‘ )’< function_body> 3.→main’(‘‘ )’ < function_body> 4.→ ‘{‘’}’ 5.→{} 6. →int ID; 7. | ε →{} 8.||| || | | < call _stat> 9. → if ‘(‘) [else < statement >] 10. → while ‘(‘’)’ < statement > 11. → for’(‘;;’)’ 12. →write ; 13. →read ID; 14. →’{‘’}’ 15. →< expression >;|; 16. < call _stat>→call I D’(‘’‘) 17. < expression >→ ID=| 18. -> |< additive_expr >(>|<|>=|<=|==|!=)< additive_expr > 19. < additive_expr>→{(+|-)< term >} 20. < term >→{(*| /)< factor >} 21. < factor >→’(‘< additive_expr >’)’|ID|NUM 有待扩充: 1.函数名、变量名都不可以重名。(有待修改:同一函数内部变量名不能相同,但不同函数的变量名可以相同,符号表的处理会更复杂) 2.考虑函数带返回值的情况; 3.考虑函数带参数的情况。

现代汉语语法研究

论现代汉语语法研究历史 学院名称:人文社科学院专业:汉语言文学 班级:13东策划 姓名:丁玎 学号:2013801102 指导教师姓名:程树铭 指导教师职称:教授 2014年6月

摘要:通过对语法历史发展的回顾,即八十年代以后,汉语语法学者借鉴国外语法理论,发掘汉语事实,探讨适合于汉语的分析方法,在汉语的语法范畴、语法关系、语法单位以及语法表达功能等方面都进行广泛的探究这段历史,充分领悟现代汉语语法在现代汉语中的重要性,帮助我们更好掌握语法知识,能使我们再以后的语言表达能力上更上一层楼。 关键字:语法关系,语法单位,语法表达功能

语言是由语音形式、语义内容、结构关系三个方面构成的统一体,三个方面缺一不可,互相作用,构成了语言。语音是语言的形式部分,词汇是语言的意义部分,语法是语言单位的关系部分,说的是符号与符号怎样组合的问题。三个部分在语言中的作用,我们可以这样简单来表述:没有语音形式,语言就无法存在,没有词汇的内容意义,语言就是一个毫无作用的空壳,没有语法,语言就是一盘杂乱而毫无章法的散沙。例如:山上草在吃牛儿--牛儿在山上吃草从上面的一些组合的例子可以看出,语法虽然是看不见摸不着的东西,可是它又是实实在在的,客观存在于语言之中的。一种语言,即使是最原始的语言,也得有一套语法规则系统,指导人们按照已有的规则去组织符号,构成表达思想的句子,否则,像上面所举的例子那样,同样的意思同样的词语,不同的人完全自说自话,别人就根本不可能理解你说的什么内容,语言也就不可能成为人类的交际工具了。 语法是语言结构的三个要素之一,而且从某种意义上说是最重要而又最容易被人忽视的一个要素。简单地说语法就是用词造句的规则系统,它是词的构成规则、变化规则、组合规则的总和。而从八十多年来,汉语语法学者借鉴国外语法理论,发掘汉语事实,探讨适合于汉语的分析方法,在汉语的语法范畴、语法关系、语法单位以及语法表达功能等方面都进行了广泛的探究。 汉语语法学者从一开始就关注语法范畴的确立问题,数十年

现代汉语语法常识

现代汉语语法常识 一、了解一下语法单位 语法单位按照由小到大的顺序分为语素→词→短语(也称词组)→句子(包括单句和复句)→句群。 语素是最小的音义结合体,最小的语法单位,比如:单音节语素(山)、双音节语素(徘徊、坦克)、多音节语素(高尔夫、奥林匹克)。 句群是最大的语法单位,句群也叫句组或语段,是前后衔接连贯的,能表达一个明晰的中心意思的一组句子。 其中“语素”“句群”不需了解,“词”“短语”作一般了解,学习的重点是“句子”。 二、词、短语、句子 (一)词 词是最小的能够独立运用的语言单位,是构成短语和句子的备用单位。 词分为实词和虚词两大类,实词包括名词、动词、形容词、数词、量词和代词,虚词包括副词、介词、连词、助词、叹词、拟声词。

1.指出下列各句中加点词所属词性。 (1)教育 ..了我。 ..要面向未来。( ) (2)这件事教育 ( ) (3)话说得很明白 ..。( ) (4)一席话使她明白 ..了很多道理。 ( ) (5)他在.教室。 ( ) (6)他在.教室看书。 ( ) (7)他在.修自行车。( ) (8)小只是 ..哭,你问她,她什么都不说。( )

(9)这件事,他和.我谈过。( ) (10)这件事,他和.我都知道。 ( ) (11)山,好大的山啊.!( ) (12)啊.!好大的一幅画! ( ) (二)短语 短语是词的组合,是意义和语法上能搭配而没有句调的一组词,故又称词组。 1.短语按其在句中充当句子成分的功能分为: (1)名词性短语:以名词为主体构成,具有名词的特征和语法功能,一般在句中作主语、宾语。如:三贤故里、历史人物、负责人。 (2)动词性短语:以动词为主体构成,具有动词的特征和语法功能,一般在句中作谓语。如:走与停、吃得香、大力发扬。 (3)形容词性短语:以形容词为主体构成,具有形容词的特征和语法功能,一般在句中作谓语,也可作主语、定语。如:真与假、不土不洋、格外高兴。 2.短语按其部结构关系分为: (1)常见结构类型:

语法、语义和语用三个平面的联系与区别

语法、语义、语用三个平面的区别与联系 2004年北京语言大学对外汉语专业的考研题 近年来,国内外有些语言学家在语法研究中注意到区别三个不同的平面,即句法平面、语义平面和语用平面,这是语法研究方法上的新进展,有助于语法学科的精密化、系统化和实用化。但这样研究语法还仅仅是开始。如何在语法分析中,特别是在汉语的语法分析中全面地、系统地把句法分析、语义分析和语用分析既界限分明地区别开来,又互相兼顾地结合起来,这是摆在语法研究工作者面前的新课题,是值得进行深入探索的。 (一)语法研究中的句法平面,是指对句子进行句法分析。句中词语与词语(即符号与符号)之间有一定的关系,这种关系是属于句法的(Syntactic)。词语与词语按照一定的方式组合起来,构成一定的句法结构,对句法结构进行分析,就是句法分析。对句子进行句法分析,主要从两方面进行。 一方面,对句法结构内部的词语与词语之间的关系进行成分分析,也就是着眼于句子成分的确定和结构方式的判别。传统语法学进行语法分析时,总要把句子分为若干成分,如主语、谓语、宾语、定语、状语、补语等等,这些都是句法分析的术语。传统语法学分析一个句子,就是要分析句子里各类实词(包括名词、动词、形容词、数词、代词、副词等)充当什么句子成分。比如“张三批评了李四”,就得分析成主谓句,其中“张三”是主语,“批评了李四”是谓语,“批评”是谓语动词,“李四”是宾语。假如说成“李四被张三批评了”,也得分析成主谓句,

但这句里“李四”是主语,“被张三批评了”是谓语,“被张三”是介词短语作状语,“张三”是介词“被”的宾语,“批评”是谓语动词。这样的成分分析,讲什么词充当什么句子成分,都是着眼于句子结构分析出来的。与确定句子成分有联系的,就是结构类型的判别。结构类型决定于结构成分之间的关系,也就是决定于结构方式。比如“鸟飞”“身体健康”,是由主语和谓语两成分组成的,通常称为主谓结构;“飞鸟”“健康的身体”,是由定语和它的中心语两成分组成的,通常称为偏正结构;“读书”“建设祖国”,是由动词和它的宾语两成分组成的,通常称为动宾结构。研究一个组合体是什么结构,也是句法分析的重要内容。另一方面,对句法结构内部的词语与词语之间的层次关系进行分析,也就是着眼于句法结构的层次切分。这种层次分析,要求把句法结构中词语之间的关系分为直接关系和间接关系、内部关系和外部关系,也就是要句法结构的直接成分和间接成分以及内部成分和外部成分区别开来。例如“干大事的人”,这个句法结构里“干大事”和“人”之间是直接关系,“干”和“大事”之间也是直接关系,但“干”和“人”之间以及“大事”和“人”之间都是间接关系。又如“张三的哥哥批评了李四的弟弟”这个句子,进行层次分析,词语间的直接关系可图示如下: 三的哥哥批评了四的弟弟 直接关系直接关系 直接关系 直接关系 这个句子里“张三”与“批评”之间、“李四”与“批评”之间、“哥哥”与“李

编译原理课程设计(词法分析,语法分析,语义分析,代码生成)

编译原理课程设计(词法分析,语法分析,语义分析,代码 生成) #include #include #include #include #include #include using namespace std; /************************************************/ struct token// token { int code;// int num;// token *next; }; token *token_head,*token_tail;//token struct str// string { int num;// string word;// str *next; }; str *string_head,*string_tail;//string struct ivan// {

char left;// string right;// int len;// }; ivan css[20];// 20 struct pank// action { char sr;// int state;// }; pank action[46][18];//action int go_to[46][11];// go_to struct ike// { ike *pre; int num;// int word;// ike *next; }; ike *stack_head,*stack_tail;// struct L// { int k; string op;// string op1;// string op2;// string result;// L *next;// L *Ltrue;//true L *Lfalse;//false };

现代汉语语法知识整理

现代汉语语法知识整理

现代汉语语法知识及应用 第一单元 词类 词可分实词和虚词两大类。实词表示实在意义,能够作短语或句子的成分,一般能够独立成句。包括名词、动词、形容词、数词、量词、代词。虚词一般不表示实在的意义,它们的基本用途是表示语法关系。包括副词、介词、连词、助词、叹词和拟声词。 【一】名词:表示人或事物名称的词。 名词的分类: 1、表示人:老师、学生、作家、工人、鲁迅 2、具体事物:天、地、花、草、天空、海洋 3、抽象概念:方法、科学、法律、事业 4、处所:北京、青岛、黄河、长江、三味书屋 5、方位:东、西、南、北、上、下、前、后、左、右、里、外、内、中、间、旁 6、时间:早晨、正午、晚上、半夜、上午、白天、夏天、立秋、今天、星期二 动词:表示人或者事物的动作行为、发展变化、心理活动等意义的词。 动词的分类: 1、动作行为:穿、跳、走、纪念、朗诵 2、存在变化:有、增加、缩小、扩大、发生 3、心理活动:想、懊悔、喜欢、担心 4、可能意愿:应该、应当、能够、愿意、必须、敢、肯、会、能、要、可以 5、趋向:上、下、来、去、上去、下去、进来、进去、起来、上来 6、判断:是、就是、正是 7、使令:使、让、派、请、叫、要求、命令、推举、允许、鼓动、鼓励 【二】形容词:表示事物的形状、性质或状态的词。 形容词的分类: 1、形状:大、小、高、圆、长、短、高大、肥胖 2、性质:好、坏、镇定、勇敢、乐观、伟大、优秀 3、状态:愉快、慌张、急躁、迅速、朦胧、桔红 代词:代替名词、动词、形容词、数量词、短语和句子的词叫做代词。 代词的分类: 1、人称代词(代替人或事物的名称)大家、人家、你、我、他们、我们、自己 2、疑问代词(用来提出问题)谁、什么、怎样、哪、哪里 3、指示代词(用来区别人或事物)这、那、这里、那里、这么、那么、每、各 【三】数词:表示数目的词叫数词。 例:一、二、千、万、亿、第一、初五、三分之一、九成、三倍、十倍 量词:表示人、事物或行为的单位的词。 (1)表示人或事物的单位:个、位、尺、只、条、批、群、套、双、副、丈、尺、亩 (2)表示动作行为的单位:次、回、下、趟、遍、阵、场、遭、焉 副词:用在动词或形容词前边,表示程度、范围、时间、语气、然否等的词。 副词的分类: 1.时间(动作行为的时间、频率):已经、正在、将要、马上、顿时、忽然、一时、终于、常常、 再三、向来、始终、永远、一旦、暂时、渐渐、赶紧、恰巧、仍旧、曾、才、将、就、再 2.范围:都、全、总、只、仅、全部、总共、统统、只好、仅仅 3.程度:很、最、太、更、还、非常、十分、格外、稍 4.然否:必、必定、一定、不、没有、未必、也许、或许、大概、大约 5.语气:可、偏偏、索性、简直、原来、反正、居然、难道、究竟 6.关联:又、也、再、还、才 【四】介词:用在名词(或短语)、代词前头,组成“介宾短语”,表示动作行为的起止、方向、处所、时间、对象、目的等。 表时间:在于自自从从当由趁随着到 表处所:从打朝向在沿着顺着 表排除:除除了 表对象、范围:对于和跟同与替将把关于被 表方式、手段:按照依依照根据以凭本着用 表目的、原因:为为了为着因由 【五】连词:能够把两个词或比词大的单位连接起来的词。 连词的分类: 1.并列:和、跟、同、及、与、并、并且、而、不是……而是……、既……又…… 2.递进:并、并且、而且、况且、不但……而且……、尚且……何况……、与其……不如…… 3.选择:或、或者、或是、不是……就是……、要么……要么……、是……不是……

语法、语义、语用

语法、语义、语用的区别 (2012-12-23 22:38:32) 汉语是缺乏形态标志的语言,注重意合是汉语语法的一个主要特点。汉语的语序对语义的制约性很强,句法成分之间存在着较复杂的语义关系,在许多情况下仅对语法形式进行句法结构分析是解释不了句子的内部规律的。教学实践表明,让外国学生按照教材上所展示的句法结构模式去造句,他们有时会造出许多符合句法但不合情理也不能使用的句子来,究其原因,正是错在句子语义搭配和语用选择上。 句法、语义和语用这三个平面既有联系又有区别。句法是基础,语义和语用都要通过句法结构才能表现。句法结构中构成成分之间存在着诸如主谓、动宾、动补、偏正等句法关系意义,同时也存在着诸如动作与施事、受事、处所、工具等语义关系意义,还存在着诸如陈述、话题、焦点和预设、已知信息与新信息等语用意义。但是,句法、语义和语用实际上又处于不同平面上,它们之间并没有严格的对应。例如:“写文章”、“写毛笔”、“写黑板”,句法结构完全相同(动宾),但分别表达了“动作与结果”、“动作与工具”、“动作与处所”不同的语义关系;又如:“客人来了”与“来了客人”,两个句法结构的语义关系基本相同,“客人”与“来”都是“施事”与“动作”的关系,但句法关系分别是主谓和动宾。语用意义也不相同,前一个结构的“客人”是定指,表达已知信息,后一个结构的“客人”是非定指,表达新信息。更复杂一点的结构,如:①“床上躺着一个人”;②“那个人在床上躺着”;③“那个人躺在床上”;④“床上的那个人躺着”,这几个句子的句法结构关系各不相同,但语义关系基本相同,“人”、“床上”、“躺”之间都是“施事”、“处所”与“动作”的关系。 语法教学中进行语义分析,除了上述指出的句法成分间的语义规定性,即施事(主体)、受事与事(客体)、对象、处所、时间、结果、原因、目的、方式等之外,主要还是对语义指向的分析。由于汉语句法上的结合关系与语义的结合关系存在着不一致的现象,语义指向分析对理解句子的语义结构显得尤其重要。如:①“这些书我都看过了”;②“这本书我们都看过了”;③“这些书我们都看过了”。这三个句子中的“都”在句法上均与动词“看”结合,构成偏正关系,在语义上“都”的语义指向分别是①“这些书”(受事),②“我们”(施事),③在没有特定语境时,“都”所涉及的可以是“我们”,也可以是“这些书”,还可以是“我们”和“这些书”。再如:①“饭吃多了”。②“饭吃饱了”;③“饭吃快了”; ④“饭吃完了”。以上几例按照句法分析,它们的层次构造完全一样,但分析其语义指向,“多”指“吃的饭”多了,“饱”指吃饭的人“饱”了,“快”说明的是“吃”这一动作行为,而“完”既可以说明“饭”完了(即“饭吃光了”),也可以说明吃饭这一动作行为的结束。以上几个句法结构体,“多”“饱”“快”“完”都与“吃”是句法上的直接成分(动补),但语义结构上却有区别。④ 语法教学中的语用分析,是对语言现象的动态分析,指明其使用的条件和语境,以利于学生恰当地使用学过的句子去交际。⑤比如动词重叠式,主要表示“短时、尝试、轻微、少量”的意义,但在具体语言环境中,意义又有所侧重,有着不同的表达功能和限定条件。如为什么我们可以说“讨论这个问题”,但不能说“讨论讨论一个问题”呢?这是因为后一句违背了“动词重叠后,其宾语前带数量词作定语时,数量词须为确定的。”这样一条语用规则。 ⑥其他如:动词带补语时,不用重叠形式,所以不能说“我想想清楚再说”,“请把房间收拾收拾整齐。”又如,否定式陈述句不用动词重叠式,不能说“我不想去唱唱歌”。(但可以说“你怎么不去唱唱歌?”);动词做修饰限制语的成分时,也不能用重叠式,不能说“你试试的那件衣服很合身。”等等。类似这样的各种条件限制,对汉语为母语的人来说,一般

词法、语法、语义分析结合

词法、语法、语义分析结合 一、实验目的与要求 在实现词法、语法分析程序的基础上,编写相应的语义子程序,进行语义处理,加深对语法制导翻译原理的理解,进一步掌握将语法分析所识别的语法范畴变换为某种中间代码(四元式)的语义分析方法,并完成相关语义分析器的代码开发。 二、实验内容 语法制导翻译模式是在语法分析的基础上,增加语义操作来实现的。对于给定文法中的每一产生式,编写相应的语义子程序。在语法分析过程中,每当用一个产生式进行推导或归约时,语法分析程序除执行相应的语法分析动作之外,还要调用相应的语义子程序,以便完成生成中间代码、查填有关表格、检查并报告源程序中的语义错误等工作。每个语义子程序需指明相应产生式中各个符号的具体含义,并规定使用该产生式进行分析时所应采取的语义动作。这样,语法制导翻译程序在对源程序从左到右进行的一遍扫描中,既完成语法分析任务,又完成语义分析和中间代码生成方面的工作。 输入:包含测试用例,如由无符号数和+、?、*、/、(、)构成的算术表达式的源程序文件。 输出:将源程序转换为中间代码形式表示,并将中间代码序列输出到文件中。若源程序中有错误,应指出错误信息。 三、一般实现方法 语法制导翻译模式实际上是对前后文无关文法的一种扩展。一般而言,首先需要根据进行的语义工作,完成对文法的必要拆分和语义动作的编写,从而为每个产生式都配备相应的语义子程序,以便在进行语法分析的同时进行语义解释。要求从编译器的整体设计出发,重点通过对实验二中语法分析程序的扩展,完成一个编译器前端程序的编写、调试和测试工作,形成一个将源程序翻译为中间代码序列的编译系统。 四、基本实验题目 题目:对文法G3[<算术表达式>]中的产生式添加语义处理子程序,完成无符号数的四则运算的计值处理,将输入的四则运算转换为四元式形式的中间代码。本实验只进行了算术表达式四元式的翻译。 五、源代码 *****************************词法分析.h文件 # include # include # include # include # include # define UNKNOWN -1 # define LB 0//左括号 # define RB 1//右括号 # define PL 2

编译原理实验三-自下而上语法分析及语义分析.docx

上海电力学院 编译原理 课程实验报告 实验名称:实验三自下而上语法分析及语义分析 院系:计算机科学和技术学院 专业年级: 学生姓名:学号: 指导老师: 实验日期: 实验三自上而下的语法分析 一、实验目的: 通过本实验掌握LR分析器的构造过程,并根据语法制导翻译,掌握属性文法的自下而上计算的过程。 二、实验学时: 4学时。 三、实验内容

根据给出的简单表达式的语法构成规则(见五),编制LR分析程序,要求能对用给定的语法规则书写的源程序进行语法分析和语义分析。 对于正确的表达式,给出表达式的值。 对于错误的表达式,给出出错位置。 四、实验方法 采用LR分析法。 首先给出S-属性文法的定义(为简便起见,每个文法符号只设置一个综合属性,即该文法符号所代表的表达式的值。属性文法的定义可参照书137页表6.1),并将其改造成用LR分析实现时的语义分析动作(可参照书145页表6.5)。 接下来给出LR分析表。 然后程序的具体实现: ● LR分析表可用二维数组(或其他)实现。 ●添加一个val栈作为语义分析实现的工具。 ●编写总控程序,实现语法分析和语义分析的过程。 注:对于整数的识别可以借助实验1。 五、文法定义 简单的表达式文法如下: (1)E->E+T (2)E->E-T (3)E->T

(4)T->T*F (5)T->T/F (6)T->F (7)F->(E) (8)F->i 状态ACTION(动作)GOTO(转换) i + - * / ( ) # E T F 0 S5 S4 1 2 3 1 S6 S1 2 acc 2 R 3 R3 S7 S13 R3 R3 3 R6 R6 R6 R6 R6 R6 4 S 5 S4 8 2 3 5 R8 R8 R8 R8 R8 R8 6 S5 S4 9 3 7 S5 S4 10 8 S6 R12 S11 9 R1 R1 S7 S13 R1 R1 10 R4 R4 R4 R4 R4 R4 11 R7 R7 R7 R7 R7 R7 12 S5 S4 14 3 13 S5 S4 15 14 R2 R2 S7 S13 R2 R2 15 R5 R5 R5 R5 R5 R5 五、处理程序例和处理结果例 示例1:20133191*(20133191+3191)+ 3191#

语义语法与翻译表达

语义语法与翻译表达 在影响翻译表达的诸多因素中,首先遇到的莫过于对句中词汇意思的、对句子结构的分析,也就是语义和语法这两个方面。在翻译过程中这两个方面的问题解决得好,那么翻译的东西可以说基本上达到了"信"和"达"。至于"雅"的问题,它与译者的文笔修养及其他一些因素等联系甚紧,本文无意谈及。笔者只想从语义和语法的角度对翻译表达中出现的一些问题用实例加以分析,旨在证明语义和语法这两个因素在翻译表达中的重要性。 一、语义理解应准确 符号学的观点认为,一门语言就是一个系统,表达概念的词可以看作是系统中的实体,这些实体只有在系统中才有意义。这就是说词汇是静态的,句子是动态的。词汇只有置于句子才有意义,而只有根据句子乃至语篇来确定某个词汇的准确含义,才能真正达到翻译便是译意的目的。所以,语义的理解应力求准确。不仅要突出文字的表层意思,有的还必须译出其深层的涵义。这样译文表达才可能正确无误。可见理解准确是翻译准确的前提,否则便会译不达意,贻笑大方。现就语义理解的重要性以若干实例加以说明: 1. Health is above wealth, for this cannot give so much happiness as that. 译文:健康比财富更重要,因为财富不能像健康那样给人们带来幸福。 原句中this代替就近的名词,即wealth(财富),that代替较远的名词,即health(健康)。要把两个代词翻译成所代之名词才说得通。如果把this和that拘泥于表面原意译成"这个"和"那个",这样指代很不明确,放到译文中则让人不知所云。再如: There are two classes of people: the selfish and the selfless; these are respected, while those are looked down upon. 此句中的these指前面靠近的the selfless(忘我的人),those指较远的the selfish(自私的人)。所以全句应译成: 世上有两种人:自私者和忘我者;忘我的有受到尊敬,而自私的人则遭鄙视。 2. Men and nations working apart created these problems, men and nations working together must solve them. 译文:人与人之间以及国与国之间离心离德产生了这些问题:人与人之间以及国与国之间同心同德必定能解决这些问题。 句中men和nations都是复数。如果简单地译成"人们"和"国家"但不合原意,甚至被理解为人同国家之间离心离德和同心同德。故此,应在"人"和"国家"之后加上"之间",使句子不仅准确地表达了men和nations两个词在句中的深层含义,而且读起来也通顺。 3.He was astounded but highly pleased that the man who presided over the destinies of the mighty British Empire should come pleading to him. 译文:他又惊又喜,那位掌握着大英帝国命运的人居然来向他央求。 Should作为情态动词有"应该"的意思,但是当句子中有pity, surprise, shame, shock等表达说话人感情色彩的词时,从句中的should就往往被译成"居然","竟然"等,把说话人的同情、吃惊、羞怯、不满、赞叹、怀疑等感情表达出来。原文中有astounded和pleased表示惊喜的词,所以should应译民"居然",如果译成"应该",就错了。 4. Hairless Yunus has a few marbles missing because he is a wrestler. 译文:秃头尤诺斯是个角力士,他缺几个心眼。

语法和语义分析器

实验二语法和语义分析器 一实验目的 1.掌握 Yacc 的基本用法,并能够根据语言给出语法规则的定义,最后生成语言的解析器; 2.使用Yacc实现一个高级计算器程序。 二实验内容 实现一个简单的表达式计算器,要求能进行加、减、乘、除、幂运算,注意优先级。求写出详细的步骤和相应的flex源程序。 三实验步骤 1.在linux中安装flex,使用如下命令: Undo apt-lex install bison 2.实验源程序 %{ #define YYSTYPE double #include #include #include int yylex (void); void yyerror (char const *); %} %token NUM %left '-' '+' %left '*' '/' %% input: | input line ; line: '\n' | exp '\n' { printf ("\t%.10g\n", $1); } | error '\n' {yyerrok;} exp: NUM { $$ = $1; } | exp '+' exp { $$ = $1 + $3; } | exp '-' exp { $$ = $1 - $3; } | exp '*' exp { $$ = $1 * $3; } | exp '/' exp { $$ = $1 / $3; } | '(' exp ')' { $$ = $2; } ; %%

yylex () { int c; while ((c = getchar ()) == ' ' || c == '\t'); if (c == '.' || isdigit (c)) { ungetc (c, stdin); scanf ("%lf", &yylval); return NUM; } if (c == EOF) return 0; return c; } main () { return yyparse (); } yyerror(char *msg) { printf("error %s encountered\n", msg); }四实验结果 五实验内容中遇到的问题、解决方法和体会。 通过本次实验实现一个简单的表达式计算器,要求能进行加、减、乘、除运算,注意运算的优先级问题。掌握了Yacc 的基本用法,并能够根据语言给出语法规则的定义,最后生成语言的解析器。但在运行时出现了错误,经过同学帮助修改成功。

相关文档
相关文档 最新文档