Xtext语言语法介绍


eRedG4:一个基于Java技术的开放源代码的、面向企业计算环境下异构系统集成与行业应用快速二次开发的平台。

XText是什么?

XText为你提供了一组领域特定语言(DSL)和模型(Model)的编程接口(APIs),用以描述你所构建语言的不同方面。这样一来,你便可以将你的语言很好的实现并运行在Java虚拟机上。语言的编译器组件是不依赖于Eclipse或者OSGI的,可以被方便的移植到任何Java环境上。它包含语法分析器(parser)、类型安全抽象语法树(AST)、serializer、代码格式化程序(Code Formatter)、域框架以及链接程序、编译检查和静态分析或者说是验证器还有最后一个但很重要的代码发生器和解释器。这些运行时组件和基于Eclipse的模型框架(EMF)结合在一起,便可以使你有效的将XText和其它EMF框架比如,图形化模型框架(GMF)一起使用。
除了这个精妙的运行时架构,你还将得到为你设计的语言专门量身定做的一个基于Eclipse的基础开发环境。XText已经为你实现了一套缺省的功能强大的IDE功能,当然你也可以非常容易的对DSL以及APIs进行定制和修改。如果你认为不够灵活的话,也可以基雨于Guice(Google发布的轻量级依赖注入框架)自己实现。

XText超强灵活性

XText使用轻量级的依赖注入框架Google Guice构建语言以及IDE的底层架构。一个重要的外部组件被作为依赖注入(DI)的配置容器。就像上文提到过的一样,XText提供了很好的缺省IDE实现、DSLs以及APIs并可以很方便的定制。但如果你想实现一些非常个性化的东西,那Goolge Guice也给你提供了一种强大的非侵入式的方法。

XText的应用领域

XText有着非常广泛的应用,比如:手机备、汽车智能设备、嵌入式系统、Java企业级应用以及游戏开发等领域。人们使用基于XText的语言去驱动诸如:Java、C\C++、C#、Obj-C、Python、Ruby等目标语言。尽管这种语言本身架构运行于Java虚拟机(JVM),但是你依然可以将XText语言编译到任何目标语言平台上去。基于XText的语言在很多知名的开源项目中都有应用:Maven、Eclipse B3、Eclipse WTP、Google缓冲协议、甚至在搜索引擎项目中也有应用。

谁在支持XText

Xtext是一个专业的开源项目。我们,这个项目的主要开发人员和领导者供职于一家以基于模型开发而闻名的咨询公司:itemis。因此,我们基本上是全职开发和支持这个项目。XText是Eclipse.Org开源基金会旗下的一个项目,除了常规意义下的一些好处之外,你不必担心XText会带来任何的版权争议,因为Eclipse基金会有它们专职律师会小心呵护这些知识财富不被非法使用。
或许你会有这样的质疑:支持我们进行开源开发的经费从何来呢?我们提供围绕XText周边的一些有偿的专业级服务,例如:培训、现场咨询、原型开发或者是IDE开发。我们不但对XText了如指掌,而且也是程序设计和领域特定语言设计的骨灰级老鸟。别再犹豫,快和我们取得联系吧!(http://www.itemis.com)

什么是领域特定语言(DSL)?

领域特定语言(DSL)是一种小型的计算机编程语言,它关注于某一个应用领域,几乎任何一个事物对象都可以作为我们研究的一个领域。他的理念就是用尽可能接近于真实领域思考问题和解决方案的概念以及表示方法来描述。这样,我们所思考的问题便能由计算机以某种方式得到解决或处理。
和领域特定语言(DSL)相反的一种语言被称做通用语言(GPL:General purpose Language),比如Java、C/C++以及其它常见的编程语言。使用这些通用语言,你可以解决任何计算问题,但并不一定是最好的解决办法。
设想一下,你想把果核从一个苹果中摘除,那么你当然可以使用瑞士军刀将其抠除。如果你只是进行一两次这样的操作,那显然是合乎情理的。但如果你是需要去除无限多个苹果的果核,那你应该使用苹果去芯机才是最明智的选择。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值