语言(Language)和语法(Syntax)简述

语言(Language)和语法(Syntax)简述

什么是语法?如何表示一种语言的语法?如何验证语言是否符合语法?怎样归纳语言的语法特征?……在正式学习编译原理之前,我们需要对这些概念有一定的认识。
语言有语法(syntax)、语义(semantics)和语用(pragamatics),符合语法则称为合法的(legal),语义正确则是合理的(rational),语用描述的是语言的多义性。分析(Analyse)指的是语法和语义的分析。

一、字母表和字符串

如果令A表示字母表,A0表示空字符串,A1表示由一个字符表示的单词,我们可以这样表示一个单词:
closure
也就是一个单词可以由n个字符组成,A*就是在字母表A基础上所有字符串的闭包,我们就可以用(A*)*表示由单词组成的句子。
positive
把空字符串去掉后,A+叫做正闭包

因此,一种描述语言的方式是:
语言是字母表上正闭包的子集。

二、语法和语言

1、几个基本概念

(a)语法(Grammer)

Grammar is the formal production rules describing the construction of syntax elements.

语法就是一系列产生规则,它描述了语法元素是怎样构建的。如何表示规则呢,举例来说:

<program>-><head><body>

语法系统分为三个部分:

  • 顶级元素(top element or identified symbol)–核心内容,是系统开始标志,如上面的<program>,通常用大写字母S表示
  • 中间元素 (middle elment)–即非终端元素(Non–terminal),又表示为Vt,就是除了顶级元素以外还能推导的元素,一般用大写字母表示。
  • 末端元素(finest element)–即终结符(Terminal Symbol),用小写字母表示,差不多可以理解成字母表 Σ

举例:

S->ABC
A->aA| ϵ
B->bB| ϵ
C->cC| ϵ
( ϵ 表示空)

这里表示的就是类似于a...ab...bc...c这样的语言,a、b、c可以有0个也可以有多个。即句型(Seutentialform)是
S+ => ai bj ck of Σ *的子集。

综上所述,语法可以描述为 G( Σ , VN, S, P)(其中 Σ 也可以表述成是VT

  • Σ : 字母表或终结符
  • VN:中间元素
  • S:开始元素(顶级元素)
  • P : (production rules) 产生规则
(b)推导(Derivation)

The process that starts from the Start Symbol, and derives a sentence by replacing the left-side with right side in a production rule.

从开始符号(S)开始,根据产生

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值