【技术实现步骤摘要】
将程序码于不同程序语言间进行转换及优化的方法
[0001]本专利技术涉及程序语言,尤其涉及一种将程序码于不同的程序语言架构之间进行转换并且进行优化的方法。
技术介绍
[0002]目前在工业自动化领域中,开发人员可以使用多种不同的程序语言来进行开发,而各种程序语言是分别针对不同学科背景人士与不同产业领域所各别提供的。
[0003]具体地,工业自动化领域中一般常见的程序语言,包括有传统阶梯图(Ladder Diagram)、功能块图(Function Block Diagram)、连续功能图(Continuous Function Chart)、顺序功能图(Sequential Function Chart)、结构化文字(Structured Text)、PASCAL、Java、C/C++/C#、Python、Objective
‑
C、Lua等,并且一般可被区分为图形程序语言及文字程序语言。
[0004]如上所述,各种不同的程序语言是分别具有不同的使用族群,因此并非所有的开发人员都会使用全部的程序语言。为了克服上述问题,目前市面上有部分的工控产品提供了可将程序码在少数图形程序语言之间进行转换的转换程序。
[0005]然而,现今市面上可见的转换程序主要仅针对图形程序语言所设计,无法将基于图形程序语言架构所编写完成的程序码逻辑转换为符合文字程序语言的架构并且具有同质性语意的程序码,无法将基于文字程序语言架构所编写完成的程序码逻辑转换为符合图形程序语言的架构并且具有同质性语意的程序码, ...
【技术保护点】
【技术特征摘要】
1.一种将程序码于不同程序语言间进行转换及优化的方法,应用于一程序语言编辑器,包括:a)取得基于一来源程序语言所编写的一程序片段,其中该来源程序语言为图形程序语言或文字程序语言;b)取得该程序片段对应的一抽象语法树,其中该抽象语法树包括多个区块;c)通过一语法标记解析器巡访该抽象语法树的该多个区块的其中之一;d)依据该被巡访的区块的一物件内容及与相邻区块的连接关系查询一语法标记对应表,以产生对应至一目的程序语言的一语法标记,其中该语法标记对应表记录该来源程序语言的复数语法与该目的程序语言的复数语法间的一对应关系,该目的程序语言为图形程序语言或文字程序语言;e)于该多个区块皆被该语法标记解析器巡访并且产生该语法标记前,重复执行该步骤c及该步骤d;f)于该多个区块皆被该语法标记解析器巡访后,通过一语意组合器巡访该抽象语法树中的该多个区块的其中之一;g)将该被巡访的区块的该物件内容及该语法标记与上一个被巡访的区块的该物件内容及该语法标记进行组合以产生一中间结果;h)于该多个区块皆被该语意组合器巡访前,重复执行该步骤f及该步骤g以更新该中间结果;i)于该多个区块皆被该语意组合器巡访后,依据更新后的该中间结果产生一目的程序片段,其中该目的程序片段符合该目的程序语言的架构;j)通过一语意优化器巡访该目的程序片段中的一或多个语意组合,并且于该一或多个语意组合符合一条件等式时执行一等价置换程序并产生一优化后目的程序片段;及k)于该程序语言编辑器上输出该优化后目的程序片段。2.如权利要求1所述的方法,其中该抽象语法树中的该多个区块包括一分支区块、一连续区块或一般区块,该分支区块包括至少两个并联的区块,该连续区块包括至少两个串联的区块,该一般区块记录一条件物件、一功能物件或一结尾物件,并且各该区块分别对应一个节点暂存器,各该区块的该物件内容及该语法标记记录于该节点暂存器中。3.如权利要求2所述的方法,其中该步骤c于该来源程序语言为文字程序语言时,以一正向递回方式巡访该抽象语法树中的该多个区块,并于该来源程序语言为图形程序语言时,以一反向递回方式巡访该抽象语法树中的该多个区块。4.如权利要求2所述的方法,其中该步骤d包括下列步骤:d11)于当前巡访的该区块为该分支区块,并且该分支区块为上层区块中最后一个具有条件执行的区块时,依据该分支区块与相邻区块的连接关系取得对应的一条件陈述,依据该条件陈述查询该语法标记对应表以取得对应至该目的程序语言的该条件陈述的该语法标记,并将该语法标记记录于该分支区块的该节点暂存器中;及d11)于当前巡访的该区块为该分支区块时,依据一OR条件运算查询该语法标记对应表以取得对应至该目的程序语言的该OR条件运算的该语法标记,并将该语法标记记录于该分支区块的该节点暂存器中。5.如权利要求4所述的方法,其中该步骤d更一步骤d21):
于当前巡访的该区块为该连续区块,且该连续区块为上层区块中最后一个具有条件执行的区块时,依据该连续区块与相邻区块的连接关系取得对应的该条件陈述,依据该条件陈述查询该语法标记对应表以取得对应至该目的程序语言的该条件陈述的该语法标记,并将该语法标记记录于该连续区块的该节点暂存器中。6.如权利要求5所述的方法,其中该步骤d还包括下列步骤:d31)于当前巡访的该区块为该一般区块、该一般区块的该物件内容包含一条件物件,且该条件物件为连续条件物件中的第一个条件物件或最后一个条件物件时,依据该一般区块与相邻区块的连接关系取得对应的该条件陈述,依据该条件陈述查询该语法标记对应表以取得对应至该目的程序语言的该条件陈述的该语法标记,并将该语法标记记录于包含该条件物件的该一般区块的该节点...
【专利技术属性】
技术研发人员:郑懋桦,
申请(专利权)人:台达电子工业股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。