当前位置: 首页 > news >正文

最新的疫情动态长春seo优化

最新的疫情动态,长春seo优化,承揽合同和建设工程合同的区别,房地产网站广告销售怎么做Eclipse Xtext 是开发领域专用语言(DSL)的工具。例如数据库的SQL 语言,PLC 的ST 语言都是一种领域专用语言。在开放自动化领域,提倡基于模型的设计方法。DSL 是描述模型的强有力工具。 在开发PLC 程序IDE时,开发ST编译…

   Eclipse Xtext 是开发领域专用语言(DSL)的工具。例如数据库的SQL 语言,PLC 的ST 语言都是一种领域专用语言。在开放自动化领域,提倡基于模型的设计方法。DSL 是描述模型的强有力工具。

   在开发PLC 程序IDE时,开发ST编译器是一项重要的任务,使用的方法大致有两种:

  •   使用 Bison 和Flex
  •    使用Eclipse Xtext

  开源PLC项目Beremiz中,使用的就是Bison/Flex.而IEC61499 开源项目4diac 中使用的是Xtext。关于Xtext 实现ST 到C语言转换,我在两年前做过,有一些读者觉得不够详细,最近又将Eclipse Xtext 实现ST 语言转化为C++ 程序的过程做了一遍。供读者参考。其中的语法描述和代码生成是从4diacIDE 移植过来的。

整个过程在Window 下完成。

下载Eclipse Install 

官网地址:

Eclipse Downloads | The Eclipse Foundation

运行Eclipse Install

        以前介绍Xtext 是Eclipse Modeling Tool 下加Xtext 插件的方式安装Xtext IDE ,现在不需要了,直接选择安装DSL Developers 就可以了。 

新建一个xtext项目

新建了xtext 项目之后,回在Eclipse workspace 下建立了4 个项目。

 xtext 项目开发的主要工作

描述你打算开发的DSL 语言的语法描述文件。这是一个xtext 的文件

编写代码生成程序,这是一个xtend 文件

运行mwe2

运行DSL 编辑器

这相当于自动生成了一个DSL 的Eclipse IDE。你可以在里面编辑一个xxx.ST 文档,能够高亮关键字等等。 

独立的命令行编译程序

        我们已经知道,Eclipse Xtext 项目会建立一个针对DSL 的Eclipse IDE。在这个DSL IDE下能够编辑DSL 。但是,有时我们只需要一个独立的命令行编译器(类似于gcc)。Eclipse Xtext 项目能够导出命令行编辑程序。

     鼠标指向Main.Java文件 击右键 Run As | Java Application 这时在控制台下会出现“Aborting: no path to EMF resource provided!" 不要担心,因为你没有带任何命令参数。

 文件菜单中选择 Export... | Java | Runnable JAR File,然后点击 Next.

  按如下设参数
  

运行

PS E:\yao2023\eclipse-workspace> java  -jar STCompiler.jar ./GenericFB.ST
Code generation finished.
PS E:\yao2023\eclipse-workspace>

 ST 代码

VARX :INT;Y:REAL;Z:BOOL;A:ARRAY[1..12] OF INT;i:INT;
END_VAR;
IF Z THENX:=0;X:=X*60;Y:=sin(3.14156);
ELSIF X>0 THEN X:=10;
ELSEX:=10;		
END_IF;Z:=TRUE;i:=0;
WHILE i<14 DOA[i]:=i;i:=i+1;
END_WHILE;X:=3;
FOR i:=0 TO 12 DOX:=X+i;
END_FOR;
CASE i OF
0:i:=1;
1:i:=2;
END_CASE;
RETURN;

翻译的C语言

int X;
double Y;
bool Z;
int A[11];
int i;
if(Z) {X = 0;X = MUL(X, 60);Y = sin(3.14156);
}
else if((X > 0)) {X = 10;
}
else {X = 10;
};
Z = true;
i = 0;
while((i < 14)) {A[i] = i;i = ADD(i, 1);
};
X = 3;
for(i = 0;i <= 12;i = i +1){X = ADD(X, i);
};
switch (i) {case 0:i = 1;break;case 1:i = 2;break;
}
return;

过程记录难免不全,有问题就问吧!

结束语

        最近再次对DSL 感兴趣的原因是本人对自动化行业的信息模型文本描述十分关注。觉得使用DSL 语言描述模型更加有效。

http://www.dt0577.cn/news/19070.html

相关文章:

  • 昆明搜索引擎推广360优化大师安卓下载
  • 免费企业网站seo推广优化
  • 做网站怎么写代码网络推广费用
  • wordpress页面模板修改长春seo排名扣费
  • 模板网站定制seo优化工具
  • 萍乡土建设计网站seo超级外链发布
  • 网站建设的方案图片站长平台
  • 百度手机浏览器长沙谷歌seo
  • 外国ps修图网站网络营销考试答案
  • 免费公司网站郑州网络推广代理
  • 注册网站送金币企业宣传视频
  • 做内部网站cms整站seo排名
  • 做网站算法推广联系方式
  • 定制自动化营销seo如何快速排名百度首页
  • 网站结构设计怎么写网络推广公司加盟
  • 网站做多个产品营销的目的有哪些
  • 高校网站建设seo关键词如何设置
  • 四川网站建设外包业务站长工具高清吗
  • o2o平台是什么意思石家庄整站优化技术
  • 做宣传册模板的网站武汉seo楚天
  • 网站做cpa推广引流建立一个国外的网站
  • 本地企业网站建设模板大连seo外包平台
  • 手机网站开发 c兰州网络推广技术
  • 网站开发与管理内容今日军事新闻头条视频
  • 盐城网站建设培训免费搜索引擎入口
  • 博物馆 网站 建设营销中存在的问题及对策
  • 在哪查询网站做的哪些外链网站百度不收录
  • 网站开发常用jquery插件总结(四)验证插件validation360网站推广费用
  • 深圳建设一个网站制作公司网页设计与制作个人网站模板
  • 做一借款撮合网站好的网站或网页