Xtext语言语法介绍
写在最前面
- XText是什么?
- XText超强灵活性
- XText的应用领域
- 谁在支持XText
- 什么是领域特定语言(DSL)?
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++以及其它常见的编程语言。使用这些通用语言,你可以解决任何计算问题,但并不一定是最好的解决办法。
设想一下,你想把果核从一个苹果中摘除,那么你当然可以使用瑞士军刀将其抠除。如果你只是进行一两次这样的操作,那显然是合乎情理的。但如果你是需要去除无限多个苹果的果核,那你应该使用苹果去芯机才是最明智的选择。
Xtext语言语法介绍相关推荐
- c语言中建一个文件的语法,C语言语法介绍_文件.ppt
C语言语法介绍_文件 第十三章 本章要点 文件的基本概念 文件的基本函数 文件的顺序读写 文件的随机读写 文件简单应用 主要内容 13.1 C文件概述 13.2 文件类型指针 13.3 文件的打开与关 ...
- Python语言语法描述规范BNF介绍
Python语言语法描述规范BNF介绍 读官方的 Python 语言参考(The Python Language Reference)需要了解BNF. BNF(Backus Normal Form:巴 ...
- salesforce.com开发平台 Apex语言介绍 (一.基础语法介绍)
概要 Salesforce.com 的Apex语言是在Salesforce.com平台上执行的一种强类型编程语言.Apex被用作添加应用程序的业务逻辑(Business Logic),开发数据库触发器 ...
- swift语言特性,swift语法介绍,swift使用技巧
Swift语言特性.Swift语法介绍.Swift使用技巧 Swift是一种由苹果公司开发的编程语言,于2014年首次发布.它是一种现代.快速.安全的编程语言,用于iOS.macOS.watchOS和 ...
- Markdown 语法介绍
Markdown 语法介绍 from:https://coding.net/help/doc/project/markdown.html 文章内容 1 Markdown 语法介绍 1.1 标题 1.2 ...
- Swift翻译之-Swift语法入门 Swift语法介绍
目录[-] Hello world - Swift 简单赋值 控制流 函数与闭包 对象和类 枚举与结构 协议和扩展 泛型 2014.6.3日,苹果公布最新编程语言Swift,Swift是一种新的编程语 ...
- 《C语言编程魔法书:基于C11标准》——1.3 主流C语言编译器介绍
本节书摘来自华章计算机<C语言编程魔法书:基于C11标准>一书中的第1章,第1.3节,作者: 陈轶 更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.3 主流 ...
- java方法的参数传递规则_java语言参数传递介绍
java语言参数传递介绍 Java不只是一种编程语言,它是一个完整的平台,拥有庞大的库,将诸如图形绘制.Socket连接.数据库存取等复杂操作进行了最大程度的简化.下面是小编分享的java语言参数传递 ...
- php语法介绍,PHP语法介绍
php7新特性是什么 php7新特性是什么?在PHP7中由于修改了底层引擎大部分代码,以及通过各种方式提高PHP的性能,所以在PHP7中也增加了一些新的语法,这些语法的使用也能对提高性能有帮助.下面给 ...
最新文章
- 1112. Stucked Keyboard (20)
- oracle中substr() instr() 用法
- Entity Framework Core 使用HiLo生成主键
- 经典面试题(4):use strict 有什么意义和好处?
- 想要学习UI动效设计?从这些软件入手
- 【hiho】127 后缀自动机一·基本概念 【后缀自动机】
- python 以行为单位进行字符串的切割
- thinkphp 按指定字段统计数据条数
- 软考2022上半年真题笔记
- erfc怎么用计算机计算,erfc(erfc函数如何计算)
- 如何在linux下编写代码(非常详细)
- 虎年用Python画一只老虎?
- 零基础写java网络爬虫
- 基础知识系列博客——计算机组成原理
- pytorch之transforms
- LifecycleOwner com.xx.MainActivity@28b4e79 is attempting to register while current state is RESUMED.
- 利用python批量查询企业信息_用Python批量查询域名(并行化,附源代码)
- 酷冷战神 先手致胜:腾讯ROG游戏手机6为游戏而生
- 安卓手机连接ssh主机教程
- window系统默认编码格式GBK怎么理解