形式语义学-chapter 1 specifying syntax

 chapter 1 specifying syntax(这个怎么翻译?指定的语法?具体语法?)

1.syntax ['sint?ks] 语法;句法
refers to the ways symbols may be combined to create well-formed sentences(or programs) in the language.(ps:整本书中,大部分还是以编程语言为主,所以这里重视一下programs)
句法包括:句子中的各个词充当什么成分(主谓宾定状补);句子中词语间的层次关系。对于一个程序,就是程序的语法是否正确

2.semantics [si'm?ntiks] 语义学
reveals the meaning of syntactically valid strings in a language .语义可以揭示句法有效的字符串的含义
词语与客观事物之间的关系,比如,施事,受事,中心语,结果是什么?对于程序,程序的语义是否正确,是否可以使输入通过程序得到设计的输出

3.pragmatics [pr?g'm?tiks]语用学
alludes to those aspects of language that involve the involve the users of the language
语言中大概是指,词与使用者之间的关系(符号与人),同一个意思,不用的表现方法,或者相同语法句法表现的意义因语气口气陈述方式不同而意义不同。
对于程序而言,易于施事、程序效率、程序方法等方面的问题。

句法是基础,语义语用都要通过句法结构显现。语言分别对应于:主语、施事、主题。程序:语法正确,程序可运行得到正确结果,优化

1.1 Grammars and BNF
巴科斯范式(BNF: Backus-Naur Form 的缩写)是由 John Backus 和 Peter Naur 首次引入一种形式化符号来描述给定语言的语法(最早用于描述ALGOL 60 编程语言)。Note that BNF is a language for defining languages—that is, BNF is a metalanguage.
定义: 语法 < Σ,N,P,S> 包含四个部分:
Σ ,终结符 (terminal symbols)的有限集合(组成句子的字母);
N,非终结符(nonterminal symbols) 或者  句法范畴 (syntactic categories)的有限集合
P,产生规则的有限集合
S,起始符号 (start symbol)

type0: unrestricted grammars,a <thing> b ::= b <another thing>
设G=(Σ ,N,P,S),如果它的每个产生式α→β是这样一种结构:α∈(Σ ∪N)*且至少含有一个非终结符,而β∈(Σ ∪N)*,则G是一个0型文法。0型文法也称短语文法。一个非常重要的理论结果是:0型文法的能力相当于图灵机(Turing)。或者说,任何0型文语言都是递归可枚举的,反之,递归可枚举集必定是一个0型语言。0型文法是这几类文法中,限制最少的一个,所以我们在试题中见到的,至少是0型文法。
type1:context-sensitive grammars,上下文相关<thing> b ::= b <thing>、α  <B>  γ ::=  αβγ
1型文法也叫上下文有关文法,此文法对应于线性有界自动机。它是在0型文法的基础上每一个α→β,都有|β|>=|α|。这里的|β|表示的是β的长度。
  注意:虽然要求|β|>=|α|,但有一特例:α→ε也满足1型文法。
  如有A->Ba则|β|=2,|α|=1符合1型文法要求。反之,如aA->a,则不符合1型文法。
type2: context-free grammars,<A> ::= α、<expression> ::= <expression> * <term>
2型文法也叫上下文无关文法,它对应于下推自动机。2型文法是在1型文法的基础上,再满足:每一个α→β中α必须是非终结符。如A->Ba,符合2型文法要求。
  如Ab->Bab虽然符合1型文法要求,但不符合2型文法要求,因为其α=Ab,而Ab不是一个非终结符。
type3: regular grammars,“<A> ::= a” or “<A> ::= a <A>”
3型文法也叫正规文法,它对应于有限状态自动机。正规文法有多种等价的定义,我们可以用左线性文法或者右线性文法来等价地定义正规文法。左线性文法要求产生式的左侧只能包含一个非终结符号,产生式的右侧只能是空串、一个终结符号或者一个非终结符号後随一个终结符号。右线性文法要求产生式的左侧只能包含一个非终结符号,产生式的右侧只能是空串、一个终结符号或者一个终结符号後随一个非终结符号。 它是在2型文法的基础上满足:A→α|αB(右线性)或A→α|Bα(左线性)。
  如有:A->a,A->aB,B->a,B->cB,则符合3型文法的要求。但如果推导为:A->ab,A->aB,B->a,B->cB或推导为:A->a,A->Ba,B->a,B->cB则不符合3型方法的要求了。具体的说,例子A->ab,A->aB,B->a,B->cB中的A->ab不符合3型文法的定义,如果把后面的ab,改成“一个非终结符+一个终结符”的形式(即为aB)就对了。例子A->a,A->Ba,B->a,B->cB中如果把B->cB改为B->Bc的形式就对了,因为A→α|αB(右线性)和A→α|Bα(左线性)两套规则不能同时出现在一个语法中,只能完全满足其中的一个,才能算3型文法。
  注意:上面例子中的大写字母表示的是非终结符,而小写字母表示的是终结符。

本章主要阐述四个方面:

1.1 概念 如上

1.2 语法错误(产生原因、类型,与语义错误的区别)

1.3 正则表达式(代替BNF中的递归定义)

1.4 推导树太繁琐,改成抽象语法树。


习题1.1

No.5 using  the grammar in Figure 1.6 derive the sentence aaabbbccc

Figure 1.6:

<s>::=abc|a<t>bc;    <t>b::=b<t>;   <t>c::=<o>bcc;    a<o>::=aa|aa<t>;   b<o>::=<o>b

derivation:

<s>::= a<t>bc        ::=ab<t>c     ::=ab<o>bcc       ::=a<o>bbcc        ::=aa<t>bbcc       ::=aabb<t>cc       ::=aabb<o>bccc           ::=aa<o>bbbccc       ::=aaabbbccc


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值