CN106155668A - 一种宏语言的图形化表达方法 - Google Patents
一种宏语言的图形化表达方法 Download PDFInfo
- Publication number
- CN106155668A CN106155668A CN201510187184.1A CN201510187184A CN106155668A CN 106155668 A CN106155668 A CN 106155668A CN 201510187184 A CN201510187184 A CN 201510187184A CN 106155668 A CN106155668 A CN 106155668A
- Authority
- CN
- China
- Prior art keywords
- grand
- connecting line
- parameter
- source program
- event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000011282 treatment Methods 0.000 claims abstract description 24
- 238000004590 computer program Methods 0.000 claims abstract description 18
- 239000000463 material Substances 0.000 claims description 62
- 230000008569 process Effects 0.000 claims description 51
- 238000012545 processing Methods 0.000 claims description 26
- 238000007689 inspection Methods 0.000 claims description 16
- 230000015572 biosynthetic process Effects 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000012805 post-processing Methods 0.000 claims description 3
- 238000009877 rendering Methods 0.000 claims description 3
- 238000012958 reprocessing Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 14
- 238000012423 maintenance Methods 0.000 abstract description 3
- 230000008901 benefit Effects 0.000 abstract description 2
- 230000007774 longterm Effects 0.000 abstract description 2
- 230000000007 visual effect Effects 0.000 abstract description 2
- 230000009471 action Effects 0.000 description 38
- 230000004044 response Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 6
- 238000007373 indentation Methods 0.000 description 5
- 230000000994 depressogenic effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 2
- RSXXGWGVKBYFGH-UHFFFAOYSA-N grandone Natural products CC(=CCC1=C(O)C(CC=C(C)C)(CC=C(C)C)C(=C(C(=O)c2ccccc2)C1=O)O)C RSXXGWGVKBYFGH-UHFFFAOYSA-N 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种宏语言的图形化表达方法,通过用图形呈现宏、宏间连接,直观形象地表达出计算机程序中各语句间的拓扑结构,提升了计算机程序开发的直观度;通过对嵌套宏的应用,即可以在开发时采用自顶向下、不断深化的开发方式,充分利用接口驱动的现代开发模式;也可以通过不断选择已有的宏,充分复用已有的宏,使得开发模块化,提升了开发主线清晰度、和宏的复用度。摒弃了由人来开发源程序带来的不可避免的各人差异性、不规范性,充分发挥了“人看图,机看文”的优势,对于软件的长期维护尤其方便。本方法在建立了源程序规则处理程序集后,几乎可以用于对所有的计算机程序语言的图形化表达,提高了计算机程序语言开发的直观度和可维护性。
Description
技术领域
本发明涉及计算机语言、计算机图形学,尤其涉及对计算机程序图形化开发的表达。
背景技术
计算机程序是在一定的计算机语言中,实现特定业务功能的一组编码,是软件的组成核心,随着计算机技术的发展,计算机语言越来越多,计算机软件也越来越大,各种程序也就越来越复杂,对“零代码编程”的要求也越来越迫切。
然而,现有的几种所谓的“零代码编程”,本质上采用的仍然是人工编写字符文本的方式,不过是将自然语言进行替换,如将英文换成了中文,将某些复杂的代码用宏符号来表示,并没有形成图形化的开发方式。并且设计与开发仍然是各说各话:设计已经有很多图形化的设计工具,但程序员在开发上,并没有持续应用设计的成果,而是在各种IDE工具上编写字符文本,使得设计成果形同虚设,这给开发、维护都带来了极大的不便。
宏的概念,在计算机编程语言中很早就出现了,而且应用也十分广泛,如宏汇编语言等。它的实质就是允许无限次的嵌套,将十分复杂的程序无限地分解成可复用的、较小的、简单的处理过程。
发明内容
通过对大量的编程实践,和对程序结构的深入理解后发现,在一定的计算机语言里,完全可以用类似程序框图设计的方式,结合宏的概念,来进行程序的开发:将各个框图中的结点,作为宏;将框图中的带箭头线,作为程序的执行分支;将业务上的待开发内容作为业务素材写入宏的参数,这样便将计算机程序,完全表达成图形,而不再出现一行代码,将业务与技术彻底分离;而且借助宏的概念,随着时间的积累,这样的图形表达可以一直持续生长;在分析一个软件时,也可以将宏不断分解下去,直到最基本的技术处理单元。
发明目的:在一定的计算机语言中,克服计算机程序开发的字符文本化弊端,提出用图形化宏的方式来直观地表达计算机程序开发的方法。
发明的技术方案是:通过将业务逻辑过程图形化表达成宏、宏参数和宏之间的连接线,得到连接线的条件表格,和宏的参数表格,按已存在的源程序规则表格中所规定的处理程序进行处理,输出成此种计算机语言下实际的源程序表格。
一种宏语言的图形化表达方法,其特征在于,包括以下步骤。
步骤1,遍历已存在的宏,建立已有宏表格;遍历已存在的业务素材,建立已有业务素材表格。
所述的宏,是实现有确定业务功能的、有确定的内部处理算法、有确定的输入参数和输出参数的程序处理单元。
所述的已有宏表格,是指开发人员对一定的计算机语言,或多或少都有一些已经完成的程序处理单元,即宏,在本步骤中,遍历这些处理单元,获得可以直接包含这些宏的名称的一个存在于内存的二维表格。
所述的业务素材,是指待开发的计算机程序,为达到开发目的而必须提供的确定的内容。业务素材通常是作为各种程序处理单元的参数而使用。
所述的已有业务素材表格,是指为了达到开发目的,已经设计或开发完成的一部分业务素材,如数据库表的模型、业务表单等。在本步骤中,遍历这些业务素材,获得可以直接包含这些业务素材的名称的一个存在于内存的二维表格。
步骤2,根据已有宏表格,绘制包括宏选择器;根据已有业务素材表格,绘制业务素材选择器;并绘制参数编辑器、控制和逻辑工具、宏表达容器。
所述的宏选择器,是指根据在步骤1中已建立的已有宏表格,绘制的选择宏及其参数的工具。
所述的宏选择器,包括绑定了拖拽到宏表达容器中的拖拽捕获事件的已有宏;和绑定了拖拽到参数编辑器的拖拽捕获事件的宏的参数。
所述的事件,是指在特定条件下,发生的有结果的动作。
所述的特定条件,即触发条件,有时也称为请求。所述的发生的动作,是对请求的响应的动作,简称响应。所述的绑定,是指在指定的对象上,附加所述事件,使所述对象具有产生所述响应的能力。
所述的拖拽捕获事件,是指当接收到输入装置在 “压下”的动作时,将“压下”时的所在对象的内容用于呈现拖拽的内容或轨迹,作为拖拽事件开始的响应动作。
所述的拖拽捕获事件,是拖拽三个事件中的第一个事件,拖拽中的第二个事件是拖拽拖动事件,是指拖拽捕获事件发生后,移动输入装置所发生的事件,其响应动作通常是在显示装置上移动与拖拽捕获时获得的对象的内容。拖拽中的第三个事件是拖拽释放事件,是指拖拽捕获事件发生后,“放开”输入装置的时发生的事件。
所述的绑定了拖拽到宏表达容器中的拖拽捕获事件的已有宏,是指在宏选择器中的宏上绑定了拖拽该宏时发生的拖拽捕获事件。
所述的绑定了拖拽到参数编辑器的拖拽捕获事件的宏的参数,是在宏选择器上拖拽宏的参数上绑定了拖拽该参数时发生的拖拽捕获事件。
所述的业务素材选择器,是指根据步骤1中已建立的已有业务素材表格,绘制的选择业务素材的工具。
所述的业务素材选择器,绑定了将业务素材拖拽到参数编辑器中确定的形式参数位置的拖拽捕获事件。
所述的绑定了将业务素材拖拽到参数编辑器中确定的形式参数位置的拖拽捕获事件,是指当接收到输入装置在业务素材选择器“压下”的动作时,将“压下”时的所在的业务素材的内容用于呈现拖拽的内容或轨迹,作为拖拽事件开始的响应动作。
所述的参数编辑器,是指显示并操作当前宏或连接线在当前处理内容的工具。
所述的参数编辑器,在参数编辑器中确定的形式参数位置,绑定了对拖拽的宏的参数或业务素材的拖拽释放事件;绑定了对拖拽的逻辑工具的拖拽释放事件;绑定了接收键盘输入文本的事件。
所述的对拖拽的宏的参数或业务素材的拖拽释放事件,是接收到输入装置在参数编辑器上某一位置“放开”动作时,将拖拽的该参数或拖拽的业务素材关联到这一位置上,这一位置,通常都是宏的一个形式参数或连接线的条件,于是就将拖拽的宏参数或拖拽的业务素材与参数编辑器上的宏的形式参数或连接线的条件进行了关联。
所述的对拖拽的逻辑工具的拖拽释放事件,是接收到输入装置在参数编辑器上某一位置“放开”动作时,将拖拽捕获的逻辑工具关联到这一位置上,于是就将逻辑工具与宏的参数或连接线的条件进行了关联。
所述的键盘输入文本的事件,是指在参数编辑器上形式参数位置,绑定了接收键盘输入文本的事件,使得在这一参数位置,可以直接输入某些固定的值。
所述的控制和逻辑工具,是指显示并操作多个宏之间执行顺序或嵌套、和逻辑表达式所需要的工具。
所述的控制和逻辑工具,包括绑定了拖拽到宏表达容器中形成一个新宏的拖拽捕获事件的新宏控件;绑定了拖拽逻辑工具到参数编辑器中形成逻辑表达式的拖拽捕获事件的控件;绑定了点击后,在拖拽一个宏到另一个宏时,产生有向连接线的连接线控件;绑定了点击后进入新的下一嵌套层次的事件的嵌套宏控件;绑定了点击后根据宏表达容器中各宏和连接线的拓扑结构、以及设置的各宏的参数和连接线的条件,按一定的算法建立各个连接线的条件表格和各个宏的参数表格,并提交这两个表格给步骤3的事件的控件。
所述的新宏控件,是指当接收到输入装置在这个新宏控件 “压下”的动作时,在“压下”点产生新的一个宏的对象,用于呈现拖拽的内容或轨迹,作为新宏控件拖拽事件开始的响应动作。
所述的绑定了拖拽逻辑工具到参数编辑器中形成逻辑表达式的拖拽捕获事件的控件,是指绑定了拖拽捕获事件且在参数编辑器上参数位置发生释放事件时,产生相应逻辑表达式的行为的控件。
所述的连接线,是指在两个宏之间,有首尾两个端点的、有明确方向箭头的、有确定条件参数的线条。
所述的连接线控件,是指在这个控件上绑定了一个点击事件,这个点击事件的响应动作是:在对一个宏拖拽捕获事件发生时,从这个宏上产生一条连接线,且连接线随着拖拽移动事件的位置而变化,至到在另一个宏位置上拖拽释放事件发生为止,产生一条从捕获事件发生所在宏到释放事件发生所在宏的有向连接线。
所述的嵌套宏控件,是指在这个控件上绑定了一个点击事件,这个点击事件的响应动作是:宏表达容器中的当前宏若是一个新宏,则进入另一个包括宏选择器、素材选择器、宏参数选择器、和空白的宏表达容器的宏表达界面,开始新的嵌套宏的开发;宏表达容器中的当前宏若是一个已经定义的嵌套宏,则进入另一个包括宏选择器、素材选择器、宏参数选择器、和宏表达容器的宏表达界面,开始嵌套宏的开发。
所述的绑定了点击后建立各个连接线的条件表格和各个宏的参数表格,并提交给步骤3的事件的控件,是指当图形表达操作结束时,点击所述控件,将图形表达结果形成连接线的条件表格和宏的参数表格,并提交给步骤3。
所述的连接线的条件表格,是指包括连接线的条件信息的一个二维内存表,包括条件、开始宏名称、结束宏名称列,一条连接线一行,且按连接线的指向顺序进行连接线行的顺序排列。
所述的宏的参数表格,是指包括宏的参数信息的一个二维内存表,包括宏名称、输出参数、输入参数、嵌套行号列,一个宏的引用占据一行,根据连接线的条件表格和连接首尾的顺序排列;输入参数和输出参数均按参数的顺序排列,用一定的分隔符分开;若宏有嵌套,则需在嵌套行号列记录下一个嵌套宏所在的行号。
所述的宏的引用,是指在一个图形表达中,可能在不同位置多次引用同一个宏,在这种情况下,在宏的参数表格中,是分别在相应的行位置上占据不同的多行,而不是只占据一行。
所述的宏表达容器,是图形化表达计算机程序的主要工作区,是容纳多个有序宏的容器。
所述的宏表达容器,绑定了将已有宏从宏选择器拖拽到宏表达容器中的拖拽拖动、释放事件;绑定了被点击宏在参数编辑器中显示输入、输出参数的点击宏事件;绑定了宏的捕获、拖动、释放事件,且拖动事件发生过程中,连结于该宏的全部连接线端点位置随之发生改变;绑定了被点击连接线在参数编辑器中显示该连接线条件的点击线事件。
所述的将已有宏从宏选择器拖拽到宏表达容器中的拖拽拖动、释放事件,是指在这个已有宏在宏表达容器上拖动事件发生时,其响应动作是宏的位置相应发生改变;所述的拖拽释放事件,是指当这个事件发生时,其响应动作是这个宏的位置被固定。
所述的点击宏事件,是指在宏表达容器中,某个宏的点击事件发生时,其响应动作是将这个宏已经过编辑的输入、输出参数在参数编辑器上显示并允许操作。
所述的宏的捕获、拖动、释放事件,是指当这一系列的事件发生时,当前宏在宏表达容器中随拖动事件位置而改变当前宏的位置,且连接于当前宏的全部连接线的端点位置也随之而改变,直到当前宏的释放事件发生为止。
所述的点击线事件,是指在宏表达容器中,某个连接线的点击事件发生时,其响应动作是将这个连接线的已经编辑的条件及其参数在宏参数编辑器上显示并允许操作。
所述的连接线,是指连接线具备首尾两个端点,且这两个端点必须属于两个不同的宏;两个端点上均绑定了拖拽中的捕获、拖动、释放事件;当所述端点绑定的拖拽释放事件发生时,若此端点所处的位置与捕获时的位置分别是属于两个不同的宏,则将此端点原所属宏改成当前释放事件位置所在的宏。
所述的属于,是指连接线的两个端点分别与不同的宏关联在一起的:当宏位置改变时,相应的连接线的端点位置也发生改变。
所述的捕获、拖动、释放事件,是指在宏表达容器中,某个连接线的端点可以被拖拽捕获,拖动。所述的所属宏的改变,是指当端点释放事件发生时,其响应动作是,若释放位置是另一个宏,则当前端点的所属宏改成释放位置所属宏;若释放位置没有任何宏,或者是当前端点被捕获时的宏,或者是当前端点所在连接线另一端点所在的宏,则端点所属宏不变,且当前端点的位置为其捕获时位置。
步骤3,根据已经预先建立完成的源程序规则处理程序集和源程序规则表格,对表达界面建立并提交的连接线的条件表格和宏的参数表格进行处理转换,形成计算机的源程序表格。
所述的源程序规则处理程序集和源程序规则表格,其特征在于,是在使用步骤1之前,根据确定的计算机语言的特点,已经预先建立完成的;所述的源程序规则处理程序集,是一个可执行的计算机程序集,包括首先对连接线的条件表格的各行、宏的参数表格的各行进行是否适用于本源程序规则处理程序的处理的检查,再对该行进行处理转换的功能;所述的源程序规则表格,是一个存在于内存中的二维表格,包含了调用对应的源程序规则处理程序的语句。
所述的待开发程序的业务内容和目标,是指程序运行后要完成的特定功能,和要达到的目的。
所述的处理转换,其特征在于,按连接线的条件表格中行的顺序,对连接线的条件表格的每一行按下述顺序进行处理:首先处理开始宏,再处理连接线的条件,之后处理结束宏,然后处理连接线的条件表格的下一行的连接线的条件和结束宏,依此类推;按宏递归算法处理每一个宏;处理连接线本身的条件时,按源程序规则表格依次进行循环,按调用语句调用相应的源程序规则处理程序,将处理结果写入源程序表格的新增行中。
所述的“然后处理连接线的条件表格的下一行的连接线的条件和结束宏”,是指
下一行连接线的开始宏,可能已经作为上一行的连接线的结束宏进行了处理,故不能再进行重复处理。
所述的宏递归算法,是指在宏的参数表格中,检查该宏是否是嵌套宏,若是嵌套宏,则在保存当前宏的参数表格的行的位置后,找到对应的嵌套宏,递归处理这个嵌套宏的内部,一直递归到当前宏不再是嵌套宏,然后按非嵌套宏处理,再依次回退到各个递归层次,在各个保存的宏的上述位置之后继续进行处理;对于非嵌套宏,将宏的参数表格中的该行组,按源程序规则表格依次进行循环处理:按调用语句调用相应的源程序规则处理程序该行,将处理结果写入源程序表格的新增行中。
从以上说明可以看出,对确定的计算机语言来说,只要有足够完善的源程序规则处理程序集,采用本方法,就总能完全地用图形化地表达出业务目标和业务内容,并生成对应的计算机程序,不用编写一行字符文本,且与该计算机程序的复杂度无关。而源程序规则处理程序集可以看作是针对这种计算机语言类型的独立插件,与本方法无关。
本发明与现有的技术相比的有益效果为:
(1) 本发明提出的宏语言的图形化表达方法,通过用图形呈现宏、宏间连接,直观形象地表达出计算机程序中各语句间的拓扑结构,提升了计算机程序开发的直观度。
(2)
本发明提出的宏语言的图形化表达方法,通过对嵌套宏的应用,即可以在开发时采用自顶向下、不断深化的开发方式,充分利用接口驱动的现代开发模式;也可以通过不断选择已有的宏,充分复用已有的宏,使得开发模块化,提升了开发主线清晰度、和宏的复用度。
(3)
本发明提出的宏语言的图形化表达方法,摒弃了由人来开发源程序带来的不可避免的各人差异性、不规范性,充分发挥“人看图,机看文”的优势,对于软件的长期维护尤其方便。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是宏语言的图形化表达方法步骤2中,拖拽宏和业务素材的示意图。
图2是宏语言的图形化表达方法步骤2中,拖拽宏和宏参数的示意图。
图3是宏语言的图形化表达方法步骤2中,点击连接线并拖拽逻辑工具的示意图。
图4是宏语言的图形化表达方法步骤2中,点击宏并在形式参数上键盘输入文本的示意图。
图5是宏语言的图形化表达方法步骤2中,连接线构成循环的示意图。
图6是宏语言的图形化表达方法步骤2中,新建并点击嵌套宏的示意图。
图7是宏语言的图形化表达方法步骤2中,点击进入嵌套宏内部,打开新的图形表达的示意图。
图8是宏语言的图形化表达方法步骤2中,再次点击进入嵌套宏内部,打开新的图形表达的示意图。
具体实施例
下面结合具体实施例对本发明和附图进行进一步描述。显然,所描述的实施例是只是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现在我们有一个待图形化表达的计算机JAVA程序, 其业务目的是将得到的表单数据写入数据库指定的表中。
我们用HTML、JavaScript和JAVA来实现这个实施例。所述的宏表达容器是HTML页面中的<DIV></DIV>包括的矩形区域。
在步骤1开始之前,我们先要得到已经建立完成的源程序规则处理程序集和源程序规则表格。
所述的源程序规则处理程序集和源程序规则表格,是在使用步骤1之前,根据确定的计算机语言的特点,已经预先建立完成的;所述的源程序规则处理程序集,是一个可执行的计算机程序集,包括首先对连接线的条件表格的各行、宏的参数表格的各行进行是否适用于本源程序规则处理程序的处理的检查,再对该行进行处理转换的功能;所述的源程序规则表格,是一个存在于内存中的二维表格,包含了调用对应的源程序规则处理程序的语句。
在本实施例中,计算机源程序的类型为JAVA ,已预先建立完成的源程序规则处理程序集为一组已经编译、打包完成且测试通过的JAVA包;这组程序集对应的源程序规则表格可能如下表所示。
步骤1,遍历已存在的宏,建立已有宏表格;遍历已存在的业务素材,建立已有业务素材表格。
所述的待开发程序的业务内容和目标,是指程序运行后要完成的特定功能,和要达到的目的。
所述的宏,是实现有确定业务功能的、有确定的内部处理算法、有确定的输入参数和输出参数的程序处理单元。
所述的已有宏表格,是指开发人员对一定的计算机语言,或多或少都有一些已经完成的程序处理单元,即宏,在本步骤中,遍历这些处理单元,获得可以直接包含这些宏的名称的一个存在于内存的二维表格。
在本实施例中,已有宏表格可能如下表所示。
所述的业务素材,是指待开发的计算机程序,为达到开发目的而必须提供的确定的内容。业务素材通常是作为各种程序处理单元的参数而使用。
在本实施例中,所述的待开发程序的业务内容和目标,是将得到的表单数据写入数据库指定的表中。
所述的已有业务素材表格,是指为了达到开发目的,已经设计或开发完成的一部分业务素材,如数据库表的模型、业务表单等。在本步骤中,遍历这些业务素材,获得可以直接包含这些业务素材的名称的一个存在于内存的二维表格。
在本实施例中,已有业务素材表格可能如下表所示。
步骤2,根据已有宏表格,绘制包括宏选择器;根据已有业务素材表格,绘制业务素材选择器;并绘制参数编辑器、控制和逻辑工具、宏表达容器。
所述的宏选择器,是指根据在步骤1中建立的已有宏表格,绘制可选择的宏及其参数的工具。
在本实施例中,0101是本实施例的宏选择器,显示了已存在的宏:“得到人员信息”宏、“检查人员信息是否存在”宏、“增加人员信息”宏、“提示信息”宏,其中“得到人员信息”宏包括输入参数:“人员id”和返回参数:“返回Map”,而“返回Map”中又包括其内部结构:各个键值。
所述的宏选择器,包括绑定了拖拽到宏表达容器中的拖拽捕获事件的已有宏;和绑定了拖拽到参数编辑器的拖拽捕获事件的宏的参数。
所述的事件,是指在特定条件下,发生的有结果的动作。
所述的特定条件,即触发条件,有时也称为请求。所述的发生的动作,是对请求的响应的动作,简称响应。所述的绑定,是指在指定的对象上,附加所述事件,使所述对象具有产生所述响应的能力。
所述的拖拽捕获事件,是指当接收到输入装置在 “压下”的动作时,将“压下”时的所在对象的内容用于呈现拖拽的内容或轨迹,作为拖拽事件开始的响应动作。
所述的拖拽捕获事件,是拖拽三个事件中的第一个事件,拖拽中的第二个事件是拖拽拖动事件,是指拖拽捕获事件发生后,移动输入装置所发生的事件,其响应动作通常是在显示装置上移动与拖拽捕获时获得的对象的内容。拖拽中的第三个事件是拖拽释放事件,是指拖拽捕获事件发生后,“放开”输入装置的时发生的事件。
所述的绑定了拖拽到宏表达容器中的拖拽捕获事件的已有宏,是指在宏选择器中的宏上绑定了拖拽该宏时发生的拖拽捕获事件。
在本实施例中,“得到人员信息”、“检查人员信息是否存在”、“增加人员信息”、“提示信息”这四个宏的名称,均绑定了拖拽到宏表达容器中的拖拽捕获事件,即这四个宏,均能被拖拽到宏表达容器中。
所述的绑定了拖拽到参数编辑器的拖拽捕获事件的宏的参数,是在宏选择器上拖拽宏的参数上绑定了拖拽该参数时发生的拖拽捕获事件。
在本实施例中,如图2中的0208和0209所示,例如可以将宏选择器中“得到人员信息”宏的返回参数:绑定了上述拖拽捕获事件的返回Map中的内部结构域“人员id”,拖拽到正在编辑的“检查人员信息是否存在”宏的参数编辑器中的形式参数“人员id”上。
所述的业务素材选择器,是指在步骤1中建立的已有业务素材表格,绘制可选择的业务素材的工具。
在本实施例中,0102是业务素材选择器,共有“人员列表”、“修改人员信息”、“得到某个人员信息”三个表单,其中,“人员列表”表单,包括“人员id”、“姓名”、“工号”、“身份证”、“电话”栏目。
所述的业务素材选择器,绑定了将业务素材拖拽到参数编辑器中确定的形式参数位置的拖拽捕获事件。
在本实施例中,0102 是业务素材选择器,它包括了三个表单:人员列表、修改人员和得到人员,其中人员列表中,包括了人员id,姓名等栏目。
所述的绑定了将业务素材拖拽到参数编辑器中确定的形式参数位置的拖拽捕获事件,是指当接收到输入装置在业务素材选择器“压下”的动作时,将“压下”时的所在的业务素材的内容用于呈现拖拽的内容或轨迹,作为拖拽事件开始的响应动作。
在本实施例中,0102中的这三个表单及其栏目,均绑定了拖拽到参数编辑器中确定的形式参数位置的拖拽捕获事件,即能将这三个表单及其栏目,拖拽到参数编辑器中的形式参数位置。
所述的参数编辑器,是指显示并操作当前宏或连接线在当前处理内容的工具。
在本实施例中,0105是参数编辑器,刚进入步骤2,尚未进行任何操作时,参数编辑器无内容。当从宏选择器中已经拖入了“得到人员信息”宏后,参数编辑器0105的内容显示:“得到【人员】信息”,其中的“【】”包括的部分“人员”就是“得到人员信息”宏的形式参数。
所述的参数编辑器,在参数编辑器中确定的形式参数位置,绑定了对拖拽的宏的参数或业务素材的拖拽释放事件;绑定了对拖拽的逻辑工具的拖拽释放事件;绑定了接收键盘输入文本的事件。
所述的对拖拽的宏的参数或业务素材的拖拽释放事件,是接收到输入装置在参数编辑器上某一位置“放开”动作时,将拖拽的该参数或拖拽的业务素材关联到这一位置上,这一位置,通常都是宏的一个形式参数或连接线的条件,于是就将拖拽的宏参数或拖拽的业务素材与参数编辑器上的宏的形式参数或连接线的条件进行了关联。
在本实施例中,当从业务素材选择器中拖入了“人员id”到参数编辑器中的“【人员】”位置,后,形成的显示内容由“得到【人员】信息”变为“得到【人员列表.人员id】信息”。
所述的对拖拽的逻辑工具的拖拽释放事件,是接收到输入装置在参数编辑器上某一位置“放开”动作时,将拖拽捕获的逻辑工具关联到这一位置上,于是就将逻辑工具与宏的参数或连接线的条件进行了关联。
在本实施例中,如图3中0302和0303所示,当从逻辑工具中已经拖入了“等于”到参数编辑器中的“逻辑符”位置后,形成的显示内容为“等于”的逻辑符:“==”。
在本实施例中,如图3中0304和0305所示,当从逻辑工具中已经拖入了“非”到参数编辑器中的“【】”位置后,形成的显示内容为“否”。
所述的键盘输入文本的事件,是指在参数编辑器上形式参数位置,绑定了接收键盘输入文本的事件,使得在这一参数位置,可以直接输入某些固定的值。
在本实施例中,如图4中0402所示,当在宏表达容器中点击提示信息宏时,参数编辑器形式参数“【】”包括的部分,可以接收键盘输入文本:“人员信息已经存在”。
所述的控制和逻辑工具,是指显示并操作多个宏之间执行顺序或嵌套、和逻辑表达式所需要的工具。
在本实施例中,0103 是控制和逻辑工具选择器。
所述的控制和逻辑工具,包括绑定了拖拽到宏表达容器中形成一个新宏的拖拽捕获事件的新宏控件;绑定了拖拽逻辑工具到参数编辑器中形成逻辑表达式的拖拽捕获事件的控件;绑定了点击后,在拖拽一个宏到另一个宏时,产生有向连接线的连接线控件;绑定了点击后进入新的下一嵌套层次的事件的嵌套宏控件;绑定了点击后建立各个连接线的条件表格和各个宏的参数表格,并提交给步骤3的事件的控件。
所述的新宏控件,是指当接收到输入装置在这个新宏控件 “压下”的动作时,在“压下”点产生新的一个宏的对象,用于呈现拖拽的内容或轨迹,作为新宏控件拖拽事件开始的响应动作。
在本实施例中,如图6中0601、0602和0603、0604所示,“新空白宏1”和“新空白宏2”均是点击新宏控件时拖拽出来的新的宏。
所述的绑定了拖拽逻辑工具到参数编辑器中形成逻辑表达式的拖拽捕获事件的控件,是指绑定了拖拽捕获事件且在参数编辑器上参数位置发生释放事件时,产生相应逻辑表达式的行为的控件。
所述的连接线,是指在两个宏之间,有首尾两个端点的、有明确方向箭头的、有确定条件参数的线条。
所述的连接线控件,是指在这个控件上绑定了一个点击事件,这个点击事件的响应动作是:在对一个宏拖拽捕获事件发生时,从这个宏上产生一条连接线,且连接线随着拖拽移动事件的位置而变化,至到在另一个宏位置上拖拽释放事件发生为止,产生一条从捕获事件发生所在宏到释放事件发生所在宏的有向连接线。
在本实施例中,如图3中0301所指的连接线,即是点击连接线控件后,从“检查人员信息是否存在”宏开始拖拽到“增加人员信息”宏后产生的连接线。
在本实施例中,如图5中,0502所指的连接线,即是点击连接线控件后,从“根据报文增加人员信息”宏开始拖拽到“得到人员信息”宏后产生的连接线,这条连接线构成一个循环处理,因而这条连接线必须在参数编辑器中加上执行条件,也就是循环条件。0501所指是将业务素材选择器中的“数据末尾标识”拖到0502指的参数编辑器中的循环条件。
所述的嵌套宏控件,是指在这个控件上绑定了一个点击事件,这个点击事件的响应动作是:宏表达容器中的当前宏若是一个新宏,则进入另一个包括宏选择器、素材选择器、宏参数选择器、和空白的宏表达容器的宏表达界面,开始新的嵌套宏的开发;宏表达容器中的当前宏若是一个已经声明的嵌套宏,则进入另一个包括宏选择器、素材选择器、宏参数选择器、和宏表达容器的宏表达界面,开始嵌套宏的开发。
在本实施例中,如图6中所示,点击“新空白宏1”后,将打开图7所示的“新空白宏1”所嵌套包含的“新空白宏3”和“新空白宏4”两个宏组成的表达内容;再点击“新空白宏4”。将打开图8所示的“新空白宏4” 所嵌套包含的“新空白宏5”和“新空白宏6”两个宏组成的表达内容。
所述的绑定了点击后根据宏表达容器中各宏和连接线的拓扑结构、以及设置的各宏的参数和连接线的条件,按一定的算法建立各个连接线的条件表格和各个宏的参数表格,并提交这两个表格给步骤3的事件的控件,是指当确认图形表达完成后,点击所述控件,根据宏表达容器中各宏和连接线的拓扑结构、以及设置的各宏的参数和连接线的条件,按一定的算法建立连接线的条件表格和宏的参数表格,并提交给步骤3。
在本实施例中,所述的一定的算法,对于图1至图4所示的情况,按如下过程进行:首先根据一个宏是否存在有“上游”宏的原则,找到第一个开始宏,读出其宏名称,和在参数编辑器中设置的输入、输出参数,写入宏的参数表格的第一行,并设置宏行号为“1”;然后找到这个宏作为开始宏的连接线,自动生成“conn”和序号构成的id值“conn01”,读出其在参数编辑器中设置的条件:无条件,按自然数序列依次设置开始宏号“1”和结束宏号“2”,写入连接线的条件表格;找到此连接线的结束宏,同样读出其宏名称,和在参数编辑器中设置的输入、输出参数,写入宏的参数表格的第二行,并设置宏行号为“2”;找到以此结束宏作为开始宏的连接线,依此类推,直到以此结束宏作为开始宏的连接线不存在为止。
在本实施例中,对于图5所示的情况,若以此结束宏找到的开始宏是在连接线的条件表格中已经作为开始宏存在,则判定为循环结构,检查此连接线的条件是否为空,若为空则提示此图形化表达的拓扑结构有误;
在本实施例中,对于图6至8所示的情况,若有嵌套宏,存在,则设置嵌套行号为其嵌套内部的第一个宏的行号。
所述的连接线的条件表格,是指包括连接线的条件信息的一个二维内存表,包括条件、开始宏名称、结束宏名称列,一条连接线一行,且按连接线的指向顺序进行连接线行的顺序排列。
在本实施例中,对应于图4,点击产生的连接线的条件表格,可能如下表所示。
在本实施例中,对应于图5,点击产生的连接线的条件表格,可能如下表所示。
在本实施例中,对应于图6至图8的有嵌套宏的情况,点击产生的连接线的条件表格,可能如下表所示。
所述的宏的参数表格,是指包括宏的参数信息的一个二维内存表,包括宏名称、输出参数、输入参数、嵌套行号列,一个宏的引用占据一行,根据连接线的条件表格和连接首尾的顺序排列;输入参数和输出参数均按参数的顺序排列,用一定的分隔符分开;若宏有嵌套,则需在嵌套行号列记录下一个嵌套宏所在的行号。
所述的宏的引用,是指在一个图形表达中,可能在不同位置多次引用同一个宏,在这种情况下,在宏的参数表格中,是分别在相应的行位置上占据不同的多行,而不是只占据一行。
在本实施例中,对应于图4,点击产生的宏的参数表格,可能如下表所示。
在本实施例中,对应于图5,点击产生的宏的参数表格,可能如下表所示。
在本实施例中,对应于图6至图8的有嵌套宏的情况,点击产生的宏的参数表格,可能如下表所示。
所述的宏表达容器,是图形化表达计算机程序的主要工作区,是容纳多个有序宏的容器。
在本实施例中,0104 是宏表达容器,在图1所示中,0104包括了拖拽进入的“得到人员信息”宏、“检查人员信息是否存在” 宏、“增加人员信息”宏、“提示信息”宏及其连接线。
所述的宏表达容器,绑定了将已有宏从宏选择器拖拽到宏表达容器中的拖拽拖动、释放事件;绑定了被点击宏在参数编辑器中显示输入、输出参数的点击宏事件;绑定了宏的捕获、拖动、释放事件,且拖动事件发生过程中,连结于该宏的全部连接线端点位置随之发生改变;绑定了被点击连接线在参数编辑器中显示该连接线条件的点击线事件。
所述的将已有宏从宏选择器拖拽到宏表达容器中的拖拽拖动、释放事件,是指在这个已有宏在宏表达容器上拖动事件发生时,其响应动作是宏的位置相应发生改变;所述的拖拽释放事件,是指当这个事件发生时,其响应动作是这个宏的位置被固定。
在本实施例中,如图1所示,0106和0107将“得到人员信息”宏,从宏选择器拖拽到宏表达容器中“释放”,在宏表达容器产生了“得到人员信息宏”。
又如图2所示,0206和207将“检查人员信息是否存在”宏,从宏选择器拖拽到宏表达容器中“释放”,在宏表达容器产生了“检查人员信息是否存在”。
所述的点击宏事件,是指在宏表达容器中,某个宏的点击事件发生时,其响应动作是将这个宏已经过编辑的输入、输出参数在参数编辑器上显示并允许操作。
在本实施例中,如图1所示,点击表达容器中的“得到人员信息”宏时,在参数编辑器中显示已经设置的“得到【人员列表表单.人员id】信息”。
在本实施例中,如图2所示,点击表达容器中的“检查人员信息是否存在”宏时,在参数编辑器中显示已经设置的“得到【人员列表表单.人员id】信息”。
又如图2所示,点击表达容器中的“检查人员信息是否存在”宏时,在参数编辑器中显示已经设置的“检查人员信息是否存在【得到人员信息.返回Map.人员id】”。
所述的宏的捕获、拖动、释放事件,是指当这一系列的事件发生时,当前宏在宏表达容器中随拖动事件位置而改变当前宏的位置,且连接于当前宏的全部连接线的端点位置也随之而改变,直到当前宏的释放事件发生为止。
在本实施例中,如图4中0401所示,“提示信息”宏,可以在表达容器中自由拖拽,且连接于“提示信息”宏一侧的连接线的端点位置,也将随着“提示信息”宏的拖动而移动。
所述的点击线事件,是指在宏表达容器中,某个连接线的点击事件发生时,其响应动作是将这个连接线的已经编辑的条件及其参数在宏参数编辑器上显示并允许操作。
在本实施例中,如图3中0301所示,当点击“检查人员信息是否存在”到“增加人员信息”的连接线时,在参数编辑器中将显示此连接线的条件:“分支条件:是否存在==否”。
所述的连接线,是指连接线具备首尾两个端点,且这两个端点必须属于两个不同的宏;两个端点上均绑定了拖拽中的捕获、拖动、释放事件;当所述端点绑定的拖拽释放事件发生时,若此端点所处的位置与捕获时的位置分别是属于两个不同的宏,则将此端点原所属宏改成当前释放事件位置所在的宏。
所述的属于,是指连接线的两个端点分别与不同的宏关联在一起的:当宏位置改变时,相应的连接线的端点位置也发生改变。
所述的捕获、拖动、释放事件,是指在宏表达容器中,某个连接线的端点可以被拖拽捕获,拖动。所述的所属宏的改变,是指当端点释放事件发生时,其响应动作是,若释放位置是另一个宏,则当前端点的所属宏改成释放位置所属宏;若释放位置没有任何宏,或者是当前端点被捕获时的宏,或者是当前端点所在连接线另一端点所在的宏,则端点所属宏不变,且当前端点的位置为其捕获时位置。
在本实施例中,如图3中0301所示,当拖拽“检查人员信息是否存在”宏一侧的此连接线的端点时,若拖拽到表达容器的空白处,或拖拽到“增加人员信息”宏上,此端点的所属宏均不变,仍是“检查人员信息是否存在宏”。但若拖拽到“得到人员信息”宏,或“提示信息”宏上时,则此端点的所属宏就将发生变化。
步骤3,根据已经预先建立完成的源程序规则处理程序集和源程序规则表格,对表达界面建立并提交的连接线的条件表格和宏的参数表格进行处理转换,形成计算机的源程序表格。
所述的处理转换,其特征在于,按连接线的条件表格中行的顺序,对连接线的条件表格的每一行按下述顺序进行处理:首先处理开始宏,再处理连接线的条件,之后处理结束宏,然后处理连接线的条件表格的下一行的连接线的条件和结束宏,依此类推;按宏递归算法处理每一个宏;处理连接线本身的条件时,按源程序规则表格依次进行循环,按调用语句调用相应的源程序规则处理程序,将处理结果写入源程序表格的新增行中。
所述的“然后处理连接线的条件表格的下一行的连接线的条件和结束宏”,是指
下一行连接线的开始宏,可能已经作为上一行的连接线的结束宏进行了处理,故不能再进行重复处理。
所述的宏递归算法,是指在宏的参数表格中,检查该宏是否是嵌套宏,若是嵌套宏,则在保存当前宏的参数表格的行的位置后,找到对应的嵌套宏,递归处理这个嵌套宏的内部,一直递归到当前宏不再是嵌套宏,然后按非嵌套宏处理,再依次回退到各个递归层次,在各个保存的宏的上述位置之后继续进行处理;对于非嵌套宏,将宏的参数表格中的该行组,按源程序规则表格依次进行循环处理:按调用语句调用相应的源程序规则处理程序该行,将处理结果写入源程序表格的新增行中。
在本实施例中,对于图1至图4所对应的表达产生的连接线的条件表格可能如下表所示。
在本实施例中,对于图1至图4所对应的表达产生的宏的参数表格可能如下表所示。
在本实施例中,处理前,先将计算机的源程序表格清空,然后按照连接线的条件表格的行的顺序,首先处理第一行conn01,在计算机的源程序表格中增加一行,其开始宏号为1,在宏的参数表格中找到宏行号为1的宏“com.fx.claz15.fun03”和输入参数“fomr07.col01”,然后按源程序规则表循环调用源程序规则处理程序处理该行。循环中对应编号1和2的源程序规则处理程序“com.tool.deal01(line);”和“com.tool.deal02(line);”检查该行后判断符合其处理条件,对其进行了处理,处理结果为:Map
var001= com.fx.claz15.fun03(request.getParameter(“col01”)),然后将其直接写入计算机的源程序表格的当前行中。
第一个宏处理结束后,根据连接线的条件表格,处理连接线的条件,连接线的条件表格的该行条件为空,说明没有条件,跳过。
接下来处理连接线的条件表格第一行的结束宏,在计算机的源程序表格中增加一行,其结束宏号为2,在宏的参数表格中找到宏行号为2的宏com.fx.claz15.fun05,然后按源程序规则表循环调用源程序规则处理程序,循环中对应编号1的源程序规则处理程序“com.tool.deal01(line);”,符合其处理条件,对其进行了处理,处理结果为:boolean
var002=(Boolean)com.fx.claz15.fun05(var001.get(“mf1501”));将其直接写入计算机的源程序表格的当前行中。
下面处理连接线参数第二行,第二行的开始宏,已经作为第一行的结束宏进行了处理,跳过。
接下来处理连接线的条件,该条件是“com.fx.claz15.fun03.Map.mf1501==0”,不为空,于是在计算机的源程序表格中增加一行,按源程序规则表循环调用源程序规则处理程序处理该条件,循环中对应编号4的源程序规则处理程序“com.tool.deal04(line);”,符合其处理条件,对其进行了处理,处理结果为:“if(var002==false){”,将其直接写入计算机的源程序表格的当前行中。由于是分支开始,故下行缩进计数器增1。
然后处理连接线的条件表格第二行的结束宏,在计算机的源程序表格中增加一行。其结束宏号为3,在宏的参数表格中找到宏行号为3的宏“com.fx.claz15.fun06”,然后按源程序规则表循环调用源程序规则处理程序,循环中对应编号0的源程序规则处理程序“com.tool.deal00(line);”,符合其处理条件,对其进行了处理,处理结果为:“com.fx.claz15.fun06(var001);”将其直接写入计算机的源程序表格的当前行中。
接下来处理连接线的条件表格第三行,同理,第三行的开始宏已经处理,故跳过。
下面处理连接线的条件表格第三行的条件,第三行的开始宏是作为开始宏的第2次出现,且条件是“com.fx. claz15.fun03.Map.mf1501==0”,不为空,于是在计算机的源程序表格中增加一行,按源程序规则表循环调用源程序规则处理程序处理该条件,循环中对应编号5的源程序规则处理程序“com.tool.deal05(line);”,符合其处理条件,对其进行了处理,处理结果为:“}else
if(var002==true){”,将其直接写入计算机的源程序表格的当前行中。由于是分支开始,故下行缩进计数器先减1,再增1。
然后处理连接线的条件表格第三行的结束宏,在计算机的源程序表格中增加一行。其结束宏号为4,在宏的参数表格中找到宏行号为4的宏“com.fx.claz02.fun03”,然后按源程序规则表循环调用源程序规则处理程序,循环中对应编号0的源程序规则处理程序“com.tool.deal00(line);”,符合其处理条件,对其进行了处理,处理结果为:com.fx.claz02.fun03 (“人员已经存在”);将其直接写入计算机的源程序表格的当前行中。
连接线的条件表格已处理完成,但下行缩进计数器不为0,说明有缩进,在计算机的源程序表格中增加一行,写入“}”,关闭缩进。
最后形成的计算机的源程序表格,如下表所示。
可以看出,建立的计算机的源程序表格,稍做处理,如写入一个文本文件,即可形成可编译的JAVA源程序。
在本实施例中,对于图5所示的含有循环的情况,对应的表达产生的连接线的条件表格可能如下表所示。
在本实施例中,对于图5所示的含有循环的情况,对应的表达产生的宏的参数表格可能如下表所示。
对于连接线的参数表格中第3行结束宏号“1”曾经是开始宏号,故源程序规则处理程序6:“com.tool.deal06(line);”要参与对第3行的处理。因此对于图5示例,最后形成的计算机的源程序表格,可能如下表所示。
可以看出,建立的计算机的源程序表格,稍做处理,如写入一个文本文件,即可形成可编译的JAVA源程序。
在本实施例中,对于图6至图8所示的宏嵌套的情况,所对应的表达产生的连接线的条件表格可能如下表所示。
在本实施例中,对于图6至图8所示的宏嵌套的情况,所对应的表达产生的宏的参数表格可能如下表所示。
从连接线的条件表格开始,第一行的开始宏在宏的参数表格中,可以看出是一个嵌套宏,其行号为3;在宏的参数表格中找到第3行的宏,它不是一个嵌套宏,且符合源程序规则处理程序0的处理,处理返回“com.fx.claz02.fun03("新空白宏3");”;然后找到开始宏行号为3的连接线2,处理连接线的条件,再找到连接线2的结束宏4,发现它也是一个嵌套宏,其嵌套开始宏为5,处理这个宏5和相关连接线3和结束宏6,处理完宏6后,由于宏6没有再次嵌套,于是逐一回退到每次宏开始的位置,最终回退到宏1处,根据其连接线1,处理连接1的结束宏2,无下一个连接,结束。因此对于图6至图8示例,最后形成的计算机的源程序表格,可能如下表所示。
可以看出,建立的计算机的源程序表格,稍做处理,如写入一个文本文件,即可形成可编译的JAVA源程序。
Claims (10)
1.一种宏语言的图形化表达方法,其特征在于,包括以下步骤:
步骤1,遍历已存在的宏,建立已有宏表格;遍历已存在的业务素材,建立已有业务素材表格;
步骤2,根据已有宏表格,绘制包括宏选择器;根据已有业务素材表格,绘制业务素材选择器;并绘制参数编辑器、控制和逻辑工具、宏表达容器;
步骤3,根据已经预先建立完成的源程序规则处理程序集和源程序规则表格,对表达界面建立并提交的连接线的条件表格和宏的参数表格进行处理转换,形成计算机的源程序表格。
2.根据权利要求1,步骤2中所述的宏选择器,其特征在于,包括绑定了拖拽到宏表达容器中的拖拽捕获事件的已有宏;和绑定了拖拽到参数编辑器的拖拽捕获事件的宏的输入、输出参数。
3.根据权利要求1,步骤2中所述的业务素材选择器,其特征在于,绑定了将业务素材拖拽到参数编辑器中确定的形式参数位置的拖拽捕获事件。
4.根据权利要求1,步骤2中所述的参数编辑器,其特征在于,在参数编辑器中确定的形式参数位置,绑定了对拖拽的宏的参数或业务素材的拖拽释放事件;绑定了对拖拽的逻辑工具的拖拽释放事件;绑定了接收键盘输入文本的事件。
5.根据权利要求1,步骤2中所述的控制和逻辑工具,其特征在于,包括绑定了点击后,形成连接线的条件表格和宏的参数表格的事件的控件;绑定了拖拽到宏表达容器中形成一个新宏的拖拽捕获事件的新宏控件;绑定了拖拽逻辑工具到参数编辑器中形成逻辑表达式的拖拽捕获事件的控件;绑定了点击后,在拖拽一个宏到另一个宏时,产生有向连接线的连接线控件;绑定了点击后进入新的下一嵌套层次的事件的嵌套宏控件;绑定了点击后根据宏表达容器中各宏和连接线的拓扑结构、以及设置的各宏的参数和连接线的条件,按一定的算法建立各个连接线的条件表格和各个宏的参数表格,并提交这两个表格给步骤3的事件的控件。
6.根据权利要求1,步骤2中所述的宏表达容器,其特征在于,绑定了将已有宏从宏选择器拖拽到宏表达容器中的拖拽拖动、释放事件;绑定了被点击宏在参数编辑器中显示输入、输出参数的点击宏事件;绑定了宏的捕获、拖动、释放事件,且拖动事件发生过程中,连结于该宏的全部连接线端点位置随之发生改变;绑定了被点击连接线在参数编辑器中显示该连接线条件的点击线事件。
7.根据权利要求6,所述的连接线,其特征在于,连接线具备首尾两个端点,且这两个端点必须属于两个不同的宏;两个端点上均绑定了拖拽中的捕获、拖动、释放事件;当所述端点绑定的拖拽释放事件发生时,若此端点所处的位置与捕获时的位置分别是属于两个不同的宏,则将此端点原所属宏改成当前释放事件位置所在的宏。
8.根据权利要求1,对于步骤3所述的源程序规则处理程序集和源程序规则表格,其特征在于,是在使用步骤1之前,根据确定的计算机语言的特点,已经预先建立完成的;所述的源程序规则处理程序集,是一个可执行的计算机程序集,包括首先对连接线的条件表格的各行、宏的参数表格的各行进行是否适用于本源程序规则处理程序的处理的检查,再对该行进行处理转换的功能;所述的源程序规则表格,是一个存在于内存中的二维表格,包含了调用对应的源程序规则处理程序的语句。
9.根据权利要求1,对于步骤3所述的处理转换,其特征在于,按连接线的条件表格中行的顺序,对连接线的条件表格的每一行按下述顺序进行处理:首先处理开始宏,再处理连接线的条件,之后处理结束宏,然后处理连接线的条件表格的下一行的连接线的条件和结束宏,依此类推;按宏递归算法处理每一个宏;处理连接线本身的条件时,按源程序规则表格依次进行循环,按调用语句调用相应的源程序规则处理程序,将处理结果写入源程序表格的新增行中。
10.根据权利要求9,对于宏递归算法,其特征是,在宏的参数表格中,检查该宏是否是嵌套宏,若是嵌套宏,则在保存当前宏的参数表格的行的位置后,找到对应的嵌套宏,递归处理这个嵌套宏的内部,一直递归到当前宏不再是嵌套宏,然后按非嵌套宏处理,再依次回退到各个递归层次,在各个保存的宏的上述位置之后继续进行处理;对于非嵌套宏,按源程序规则表格依次进行循环处理:按调用语句调用相应的源程序规则处理程序,将处理结果写入源程序表格的新增行中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510187184.1A CN106155668B (zh) | 2015-04-18 | 2015-04-18 | 一种宏语言的图形化表达方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510187184.1A CN106155668B (zh) | 2015-04-18 | 2015-04-18 | 一种宏语言的图形化表达方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106155668A true CN106155668A (zh) | 2016-11-23 |
CN106155668B CN106155668B (zh) | 2019-03-01 |
Family
ID=58058123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510187184.1A Expired - Fee Related CN106155668B (zh) | 2015-04-18 | 2015-04-18 | 一种宏语言的图形化表达方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106155668B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168687A (zh) * | 2017-03-22 | 2017-09-15 | 网易(杭州)网络有限公司 | 用于设置游戏指令宏的方法及设备 |
CN110472200A (zh) * | 2019-07-29 | 2019-11-19 | 深圳市中兴新云服务有限公司 | 一种基于表单的数据处理方法、装置及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07306776A (ja) * | 1994-05-13 | 1995-11-21 | Hitachi Ltd | ビジュアルプログラミング方法 |
CN1419675A (zh) * | 2000-03-22 | 2003-05-21 | 伟博麦德有限公司 | 用于自上而下的企业过程定义和执行的方法和系统 |
US20040111702A1 (en) * | 2002-12-10 | 2004-06-10 | Chan Kin Ming | Method and apparatus for visual programming |
CN102662651A (zh) * | 2012-03-08 | 2012-09-12 | 北京神州数码思特奇信息技术股份有限公司 | 可视化组件的生成方法和生成模块 |
CN102915242A (zh) * | 2012-09-26 | 2013-02-06 | 北京广利核系统工程有限公司 | 一种利用图形化操作实现代码编程的方法 |
CN103577174A (zh) * | 2012-08-01 | 2014-02-12 | 北京奥鹏远程教育中心有限公司 | 一种计算规则脚本的可视化生成方法和系统 |
CN103677763A (zh) * | 2012-08-30 | 2014-03-26 | 中国科学院软件研究所 | 一种图形化编程的源文件存储及解析方法 |
-
2015
- 2015-04-18 CN CN201510187184.1A patent/CN106155668B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07306776A (ja) * | 1994-05-13 | 1995-11-21 | Hitachi Ltd | ビジュアルプログラミング方法 |
CN1419675A (zh) * | 2000-03-22 | 2003-05-21 | 伟博麦德有限公司 | 用于自上而下的企业过程定义和执行的方法和系统 |
US20040111702A1 (en) * | 2002-12-10 | 2004-06-10 | Chan Kin Ming | Method and apparatus for visual programming |
CN102662651A (zh) * | 2012-03-08 | 2012-09-12 | 北京神州数码思特奇信息技术股份有限公司 | 可视化组件的生成方法和生成模块 |
CN103577174A (zh) * | 2012-08-01 | 2014-02-12 | 北京奥鹏远程教育中心有限公司 | 一种计算规则脚本的可视化生成方法和系统 |
CN103677763A (zh) * | 2012-08-30 | 2014-03-26 | 中国科学院软件研究所 | 一种图形化编程的源文件存储及解析方法 |
CN102915242A (zh) * | 2012-09-26 | 2013-02-06 | 北京广利核系统工程有限公司 | 一种利用图形化操作实现代码编程的方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168687A (zh) * | 2017-03-22 | 2017-09-15 | 网易(杭州)网络有限公司 | 用于设置游戏指令宏的方法及设备 |
CN107168687B (zh) * | 2017-03-22 | 2021-02-05 | 网易(杭州)网络有限公司 | 用于设置游戏指令宏的方法及设备 |
CN110472200A (zh) * | 2019-07-29 | 2019-11-19 | 深圳市中兴新云服务有限公司 | 一种基于表单的数据处理方法、装置及电子设备 |
CN110472200B (zh) * | 2019-07-29 | 2023-10-27 | 深圳市中兴新云服务有限公司 | 一种基于表单的数据处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN106155668B (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
McNutt et al. | On the design of ai-powered code assistants for notebooks | |
Storrle | Semantics of control-flow in UML 2.0 activities | |
CN105138335B (zh) | 一种基于控制流图的函数调用路径提取方法及装置 | |
US10592211B2 (en) | Generation of application behaviors | |
CN110232162A (zh) | 一种基于html5的流程定义方法及系统 | |
US9165251B2 (en) | Construction of rules for use in a complex event processing system | |
CN101398758A (zh) | 一种代码抄袭的检测方法 | |
GB2423382A (en) | Generating business process programs using a symbolic representation of operators in a graphical interface | |
CN102662825B (zh) | 一种面向堆操作程序的内存泄漏检测方法 | |
EP3786810A1 (en) | Automatic generation of computing artifacts for data analysis | |
Brun et al. | A taxonomy and evaluation of formalisms for the specification of interactive systems | |
De Boeck et al. | High-level modeling of multimodal interaction techniques using nimmit | |
CN106155668A (zh) | 一种宏语言的图形化表达方法 | |
Calò et al. | Towards A Visual Programming Tool to Create Deep Learning Models | |
Meixner et al. | Udit–a graphical editor for task models | |
Baba et al. | Eviss: A visual system having a spatial parser generator | |
US20220222065A1 (en) | System and method of computer-assisted computer programming | |
Abidin et al. | Deontic rule of rule-based service choreographies | |
Zafar et al. | MOBICAT: a model-driven engineering approach for automatic GUI code generation for Android applications | |
Blouin | Contribution to the Engineering of User Interfaces | |
Walpola et al. | Front End Development Automation Tool: Missing Features? | |
da Silva Solino | Formal Models Based Interactive Prototypes | |
Solino | Formal models based interactive prototypes | |
Yu | Visflow: A Web-based Dataflow Framework for Visual Data Exploration | |
Grimshaw | Mastering MacOS Programming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190301 |