![](https://csdnimg.cn/release/download_crawler_static/18829722/bg1.jpg)
收 稿日期 : 2007-01-04; 修 回日期 : 2007-04-14 基 金项 目: 国 家科 技攻关 项目 ( 2004BA907A20) ; 吉林 省重大 科技 项目( 20040304)
作 者简介 : 徐玉坤 ( 1983-) , 女 , 吉 林 榆 树 人 , 硕 士, 主 要 研 究 方 向 为 软 件 开 发 新 技 术、软 件 工 程 ( xuyukun. china@ yahoo. com. cn) ; 刘 淑 芬
( 1950-) , 女, 吉林长 春人 , 教 授, 博导 , 主 要研究 方向 为计算 机网 络与安 全、计算 机支持 协同 工作 ; 李 兵( 1977- ) , 男, 河 南沁 阳 人, 讲 师, 主 要 研究 方
向为软 件开发 新技 术、软件 工程.
建 模 语 言 中 的 文 本 表 面 语 法 分 析 方 法 研 究
*
徐玉坤, 刘淑芬, 李 兵
( 吉林 大学 计 算机科 学与 技术 学院 , 长春 130012)
摘 要: 通 过分 析三 种常 见文 法的 利弊 , 采 用了 扩展 的 BNF 文法 进行 文本 语法 规则 的描 述, 并通 过准 引用 ( qua-
si-quote) 和语法 糖方 法对 该文 法进 行了 改 进 和 扩 充, 增 强 了 文 本 语 法的 描 述 能 力 和 易 用 性。 通 过 准 引 用 方 法 ,
已经 被建 立好 的文本 语法 元素 的抽 象语 法能 够被 重用 来构 造新的 语法 元素 。通 过使 用语 法糖, 新 的 语 法构 件 能
被转 换到 存在 的语法 构件 上。 当元 模型 在实 例上执 行 计 算或 编 译 时, 可 以 通过 脱 糖 ( desugar) 转 换 操 作, 建 立 一
个新 的语 法类 的实例 。
关键 词: 建 模语 言; 文本 表面 语法 ; 扩展 的巴 科斯 —诺 尔范 式; 准 引用 ; 语 法糖
中图 分类 号: TP311 文 献标 志码: A 文章编 号: 1001-3695( 2008) 03-0791-04
Research of text concrete syntax analysis methods in modeling language
XU Yu-kun, LIU Shu-fen, LI Bing
( School of Computer Science & Technology, Jilin University, Changchun 130012, China)
Abstract: This paper analyzed three common grammar’s advantages and disadvantages, and adopted extreme BNF as the de-
scription of the text concrete syntax regulation. Furthermore quasi-quote and syntactic sugar were used to improve and extend
the grammar and also enhance the description and usability of the text concrete syntax. With the quasi-quote mechanism, the
abstract syntax of text concrete syntax element which had been builtby the systemcould be reused to construct new syntax ele-
ment. New syntax element could be constructed by transformto existing element with the syntax sugar. The desugar operation
performs to create an instance of a new syntax category when the metamodel was computing or compiling on the instance.
Key words: modeling language; text concrete syntax; XBNF; quasi-quote; syntactic sugar
在语言工程中, 需要一种语言以一种统一标准和丰富语义
的方式来捕获、描述和操 作语言 的所有 方面, 这种语 言就叫 做
元建模
[ 1]
语言。而在广义上, 元模型
[ 2]
就是语 言的模 型, 即 表
示语言工程的主要方式。它有 两个主 要的区 别于其 他模型 的
特点: a) 它必须捕获被建模语言的主要特 性和性质; b) 一个 元
模型应能够描述一个语言的抽象语法、具体语法和语义。一个
元建模语言经常是 以三 个主 要的 步 骤来 定义: a) 定 义语 言 的
概念与概念之间形式良好的关系, 如词汇表和分类法就是被抽
象语法捕获的; b) 语义应以用户 清晰理解的方 式来描 述; c) 精
确的描述定义是很重要的, 这是由表面语法捕获的。表面语法
是提供给程序员或建模者的具体表达模型的方式, 它们是抽象
语法的不同视图。所以一个语 言可以 有多种 表面语 法或多 个
表面语法。抽象语 法 的定 义已 经 被 OMG 的 四 层元 模型 体 系
结构标准化了, 所以大多数语言规范都是以非正式的方式来描
述语义和表面语法的。表面语 法的定 义被认 为是元 建模语 言
中最重要的一部分。表面语法的处理分为两个阶段: 包含了解
析语法和确保它是合法的; 表面语法被用于构建抽象语法。表
面语法可以多种方式被建 模。模型语 言的表 面语法 主要包 括
文本表面语法( 如 Java语言的 具体语 法) 和 图形表 明语法 ( 如
UML
[ 3]
的图形符号) , 它们又被简称为文本语法和图语法。
图像语法经常被用户显 示的实 际情况 所限制。元 模型 定
义图形具体语法已经 被 OMG 和 许多 作者提 出。OMG 采纳 了
一个标准来 定义 UML2. 0 ( UML-DI) 的 图形 交 互 来克 服 基 于
XMI的模型交互的缺点。虽然 图像语 法用得 多, 也 比较 流行,
但是文本语法是基础, 必不可少。因此本文主要集中于文本表
面语法部分, 采用了扩展的 BNF文法描 述它的文本 语法规则,
尤其是它与抽象语法的联 系。 本文着 重讲述 了表面 语法的 文
本语法解析过程。
1 文法
语法的结构和形式规则 由文法 来描述。文 法用于 描述 具
体语法的合法构造规则。本章 其余部 分将介 绍语法 的描述 方
法—文法, 以及如何根据文法规则解析一个语法和如何用具体
语法构建抽象语法模型。
1. 1 文法定义
定义 1
[ 4]
一个上下文无关文法( CFG) G= ( V
T
, V
N
, S, P)
由下列四部分组成:
a) V
T
是有限的终极符集。
b) V
N
是有限的非终极符集。
c) S是初始符, S∈V
N
。
d) P 是产生式的有限集。其产生式具有下面形式:
A→X
1
X
2
…X
n
其中: A∈V
N
; X
i
∈( V
N
∪V
T
) , 右部可空。
从定义中可以看出终极 符只能 出现在 产生式 的右 部。 一
第 25 卷 第 3 期
2008 年 3 月
计 算 机 应 用 研 究
Application Research of Computers
Vol. 25 No. 3
Mar. 2008