CN109976747B - A Visual Development and Implementation System of Module-level Code Structure - Google Patents
A Visual Development and Implementation System of Module-level Code Structure Download PDFInfo
- Publication number
- CN109976747B CN109976747B CN201910104818.0A CN201910104818A CN109976747B CN 109976747 B CN109976747 B CN 109976747B CN 201910104818 A CN201910104818 A CN 201910104818A CN 109976747 B CN109976747 B CN 109976747B
- Authority
- CN
- China
- Prior art keywords
- module
- code
- layer
- splicing
- interface
- 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.)
- Expired - Fee Related
Links
- 230000000007 visual effect Effects 0.000 title claims abstract description 41
- 238000011161 development Methods 0.000 title claims abstract description 34
- 238000012800 visualization Methods 0.000 claims abstract description 12
- 230000006870 function Effects 0.000 claims description 31
- 239000000463 material Substances 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 7
- 230000014509 gene expression Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 5
- 238000000034 method Methods 0.000 description 21
- 238000013461 design Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241001289753 Graphium sarpedon Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
技术领域technical field
本发明涉及代码编写、软件开发领域,特别涉及一种模块化开发代码结构和模块级的可视化开发方法所构成的模块化可视化开发系统。The invention relates to the fields of code writing and software development, in particular to a modularized visual development system composed of a modularized development code structure and a module-level visual development method.
背景技术Background technique
随着软件复杂程度提高、需求量剧增,企业和开发者更加关注的是软件工程的快速构建和代码重用。一方面,复杂程度高的软件需要一款能够清晰描述软件架构和功能板块间关系的编程方法,以提高软件开发的可重用性和可维护性;另一方面,互联网、物联网的普及使得更多的非计算机专业的人员有编程需求,但局限于自身编程水平无法自主完成全部开发,因此也需要一款可持利用已开发好的领域内代码资源进行简单化开发的编程方法。With the increasing complexity and demand of software, enterprises and developers pay more attention to the rapid construction and code reuse of software engineering. On the one hand, software with a high degree of complexity needs a programming method that can clearly describe the relationship between software architecture and functional blocks, so as to improve the reusability and maintainability of software development; on the other hand, the popularity of the Internet and the Internet of Things makes more Many non-computer professionals have programming needs, but they cannot complete all the development independently due to their own programming level. Therefore, a programming method that can sustainably utilize the code resources in the developed field for simplified development is also required.
从编程语言和编程方法角度来讲,目前的编程方法为面向过程和面向对象两种,面向过程最高结构层次为函数级,面向对象最高结构层次为对象级,面向过程编程变量和函数之间关联性弱,代码重用难度高;面向对象编程虽代码复用率明显挺高,但对象间关系复杂,因此构造出的对象关系图过于复杂,无法支持可视化编程。From the perspective of programming languages and programming methods, the current programming methods are process-oriented and object-oriented. The highest structure level of process-oriented is function level, and the highest structure level of object-oriented is object level. The association between process-oriented programming variables and functions It is weak in nature and difficult to reuse code; although the code reuse rate is obviously high in object-oriented programming, the relationship between objects is complex, so the constructed object relationship diagram is too complex to support visual programming.
从可视化编程技术现实角度来讲,目前可视化编程主要通过将语句、函数、变量进行可视化抽象,可视化元素与之一一对应,但其代码复用率低,开发效率低,主要应用于少儿编程启蒙,无法应用于实际生成中。From the practical point of view of visual programming technology, at present, visual programming mainly abstracts statements, functions and variables visually, and the visual elements correspond to one of them. However, its code reuse rate is low and development efficiency is low. It is mainly used for children's programming enlightenment. , which cannot be used in actual builds.
发明内容SUMMARY OF THE INVENTION
为了解决相关技术中的问题,本发明实施例提供了一种模块级代码结构的可视化开发实现系统。In order to solve the problems in the related art, an embodiment of the present invention provides a visual development and implementation system of a module-level code structure.
一种模块级代码结构的可视化开发实现系统,包括三层结构:一、文本代码层,其内是通过传统的文字来书写代码表达程序的运算顺序、运算操作以及数据结构,保存于文件内;二、可视化开发层,是以图形图像方式代表运算顺序、运算操作以及数据结构的代码结构,以三者的位置关系、拼接方向来表达程序的执行顺序、数据传输方向、整个程序的结构;三、所采用编程语言的编译器,将文本代码层最终的源码编译成可执行文件。具体的:A visual development and realization system of a module-level code structure, including three-layer structure: 1. a text code layer, in which the operation sequence, operation operation and data structure of a program are expressed by writing codes through traditional characters, and stored in a file; Second, the visual development layer is a code structure that represents the operation sequence, operation operation and data structure in the form of graphics and images, and expresses the execution sequence of the program, the direction of data transmission, and the structure of the entire program by the positional relationship and splicing direction of the three; three , The compiler of the programming language used to compile the final source code of the text code layer into an executable file. specific:
文本代码层包括数据集结构、代码模块接口、代码模块适配器或缓存器、模块拼接域;可视化开发层包括文本代码层中的数据集结构、代码模块接口、代码模块适配器或缓存器和模块拼接域四大结构对应的可视化元素,可视化元素为二维图形或三维模型。The text code layer includes data set structure, code module interface, code module adapter or buffer, and module splicing domain; the visual development layer includes the data set structure, code module interface, code module adapter or buffer, and module splicing domain in the text code layer. The visualization elements corresponding to the four structures are two-dimensional graphics or three-dimensional models.
所述的文本代码层,采用任意一款面向对象的编程语言,并且在语言类和对象的代码结构上构造出功能模块、模块接口、模块适配器、模块拼接域,以文本方式定义和编写代码素材并在拼接域内用拼接语句将素材组装成完整程序或软件,所述的代码素材包括变量、函数、类、功能模块、模块接口、模块适配器、数据集。The text code layer adopts any object-oriented programming language, and constructs functional modules, module interfaces, module adapters, and module splicing fields on the code structure of language classes and objects, and defines and writes code materials in text mode. In the splicing domain, the material is assembled into a complete program or software with a splicing statement, and the code material includes variables, functions, classes, function modules, module interfaces, module adapters, and data sets.
功能模块,其内部结构包括:材料库引用声明区、全局变量声明和定义区、模式定义区、接口定义区、工作代码区、函数、类定义和实现区;模式定义区包含一个或多个模块模式定义,模块模式通过控制模块内语句是否执行、接口是否启用来控制模块的功能实现。Function module, its internal structure includes: material library reference declaration area, global variable declaration and definition area, mode definition area, interface definition area, working code area, function, class definition and implementation area; the mode definition area contains one or more modules Mode definition, the module mode controls the function realization of the module by controlling whether the statement in the module is executed and whether the interface is enabled.
所述的代码模块接口,用于描述模块拼接时存在数据传输变量的方式和变量值的传递方向,传递方式包括值传递和深度传递,传递方向包括传入和传出。The code module interface is used to describe the mode of data transmission variables and the transmission direction of variable values when the modules are spliced. The transmission mode includes value transmission and depth transmission, and the transmission direction includes incoming and outgoing.
所述的代码模块适配器,用于接受双方或多方模块接口内输出的变量,对变量进行编程运算处理,并决定是否输出、输出何种类型、输出何值,以消除模块接口内数据量、数据类型、数据次序的不匹配。The code module adapter is used to accept the variables output in the module interface of two or more parties, perform programming operation processing on the variables, and decide whether to output, what type and value to output, so as to eliminate the data volume and data in the module interface. Mismatch of type and data order.
所述的模块拼接域,有外部引用声明区、全局顶层变量声明和定义区、域内工作代码区(Workspace)、域级素材定义区,在工作区内利用拼接语句对模块进行竖向(顺序执行)和横向(并行执行)拼接。The module splicing area includes an external reference declaration area, a global top-level variable declaration and definition area, a work code area (Workspace) in the area, and a domain-level material definition area, and the splicing statement is used in the work area to perform vertical (sequential execution) on the module. ) and horizontal (parallel execution) splicing.
所述的可视化开发层,将代码结构具象封装成二维平面图形,以二维平面图形为可视素材,通过拖拉、拼接操作将其拼接成所需程序,完成开发。The visual development layer encapsulates the code structure concretely into a two-dimensional plane graphic, takes the two-dimensional plane graphic as a visual material, and splices it into a required program through dragging and splicing operations to complete the development.
所述的可视化开发层与本代码层之间的映射如下:将代码模块、数据集、代码模块接口、代码模块适配器与二维平面图形一一对应,在模块拼接域内进行声明,并将可视化开发层的元素竖向和横向两种拼接关系以及数据集、代码模块接口、代码模块适配器三者的传输关系,在模块拼接域内翻译成文本代码。The mapping between the visual development layer and the code layer is as follows: the code module, data set, code module interface, code module adapter and two-dimensional plane graphics are in one-to-one correspondence, declared in the module splicing domain, and visualized development The vertical and horizontal splicing relationships of the elements of the layer and the transmission relationship of the data set, the code module interface, and the code module adapter are translated into text codes in the module splicing domain.
本发明使用方法包括:The use method of the present invention includes:
①直接在文本代码层中按照上述设计进行软件开发;① Software development is carried out directly in the text code layer according to the above design;
②在可视化代码层,将可视化元素通过拖拉、拼接、配置操作形成一个整体,完成软件开发,最后由可视化编译系统按照可视化元素与文本代码层结构间映射关系和开发人员操作将可视化层内容翻译成文本代码。该系统通过全新的代码结构设计实现程序功能在代码模块中的高聚合,将软件工程理论中面向对象编程和面向过程编程结合,模块以下结构采用面向对象编程,模块及模块以上结构采用面向过程编程,面向对象编程初步保证代码复用率和软件开发的便捷性,面向过程编程强调代码结构的条理并进一步提升代码复用率。②In the visual code layer, the visual elements are formed into a whole by dragging, splicing, and configuring operations to complete the software development. Finally, the visual compilation system translates the visual layer content into text code. The system achieves high aggregation of program functions in code modules through a new code structure design, combining object-oriented programming and process-oriented programming in software engineering theory. The structure below the module adopts object-oriented programming, and the structure above the module adopts process-oriented programming , Object-oriented programming initially guarantees the code reuse rate and the convenience of software development, while process-oriented programming emphasizes the orderliness of the code structure and further improves the code reuse rate.
本发明带来的有益效果是:The beneficial effects brought by the present invention are:
使得程序编写和软件开发的代码结构清晰,提高代码复用率,实现模块级的软件或程序的可视化开发,让非计算机专业人士能够使用已开发好的代码模块通过简单的操作完成开发,降低软件开发门槛。It makes the code structure of program writing and software development clear, improves the code reuse rate, realizes the visual development of module-level software or programs, and enables non-computer professionals to use the developed code modules to complete development through simple operations, reducing software costs. development threshold.
附图说明Description of drawings
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一种实施例,对于编程语言和编译器设计人员可进行迁移变种设计出其他实施途径。In order to illustrate the technical solutions in the embodiments of the present invention more clearly, the following briefly introduces the accompanying drawings used in the description of the embodiments. Obviously, the drawings in the following description are only an embodiment of the present invention. , for programming language and compiler designers can migrate variants to design other implementation paths.
图1是使用本发明系统可视化开发层与文本代码层映射关系图。FIG. 1 is a diagram showing the mapping relationship between the visual development layer and the text code layer using the system of the present invention.
图2是使用本发明系统基于实现的可视化开发软件使用效果图。FIG. 2 is a diagram showing the use effect of the visualization software developed based on the realization of the system of the present invention.
图3是本发明系统从可视化开发层到最终可执行文件的生成流程图。FIG. 3 is a flow chart of the generation of the system of the present invention from the visual development layer to the final executable file.
具体实施方式Detailed ways
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。In order to make the objectives, technical solutions and advantages of the present invention clearer, the embodiments of the present invention will be further described in detail below with reference to the accompanying drawings.
为便于对本发明实施例提供的技术方案进行理解,下面将以按照本发明方法设计出的一门编程语言为例对文本层的代码结构进行说明。In order to facilitate the understanding of the technical solutions provided by the embodiments of the present invention, the code structure of the text layer will be described below by taking a programming language designed according to the method of the present invention as an example.
如图1所示,文本代码层包括数据集结构、代码模块接口、代码模块适配器或缓存器、模块拼接域;可视化开发层包括文本代码层中的数据集结构、代码模块接口、代码模块适配器或缓存器和模块拼接域四大结构对应的可视化元素,可视化元素为二维图形或三维模型。As shown in Figure 1, the text code layer includes data set structure, code module interface, code module adapter or buffer, and module splicing domain; the visual development layer includes the data set structure, code module interface, code module adapter or Visual elements corresponding to the four structures of the buffer and module splicing domain, and the visual elements are 2D graphics or 3D models.
文本代码层功能模块:是一种功能高度聚合的代码模块,每个模块在不依赖除引用声明区内的外部依赖外任何代码可以完成一项或多项功能,内部结构包括外部应用声明、模块接口、模块模式、工作代码区、内部变量声明、函数和类定义。Text code layer function module: It is a code module with highly aggregated functions. Each module can complete one or more functions without relying on any code except the external dependencies in the reference declaration area. The internal structure includes external application declaration, module Interfaces, module patterns, working code areas, internal variable declarations, function and class definitions.
数据集:是一组按顺序排列的具有初值的各种类型变量集合。Data set: It is a set of variables of various types with initial values arranged in order.
模块接口:是模块之间拼接时数据交换通道的匹配槽,其内,声明变量类型、变量名、变量值传递模式、变量方向。Module interface: It is the matching slot of the data exchange channel when the modules are spliced. In it, the variable type, variable name, variable value transfer mode, and variable direction are declared.
代码模块适配器:适配器是用于将不匹配(包括数据数量、数据类型、数据位置)接口通过处理进行连接,其内包括新数据的声明和定义,并包含对模块接口数据和适配器内部新声明或定义数据进行运算处理的代码。Code module adapter: The adapter is used to connect the mismatched (including data quantity, data type, data location) interface through processing, which includes the declaration and definition of new data, and contains the module interface data and adapter internal new declaration or Defines the code to perform arithmetic processing on the data.
模块拼接域:模块拼接域是对代码模块进行拼接操作,以形成新的代码模块或构成软件最终的对顶层,允许镶套定义。其内部包括,外部引用声明区、全局顶层变量声明和定义区、域内工作代码区(Workspace)、域级素材(适配器、类、函数、数据集)定义区。Module splicing domain: The module splicing domain is to splicing code modules to form a new code module or constitute the final top-level of the software, allowing nesting definition. It includes the external reference declaration area, the global top-level variable declaration and definition area, the internal work code area (Workspace), and the domain-level material (adapter, class, function, data set) definition area.
模块级可视化编程系统中的可视化层中的可视化元素主要是将文本代码层的高层代码结构具象成二维或三维的图形图像,包括:The visual elements in the visual layer in the module-level visual programming system are mainly to visualize the high-level code structure of the text code layer into a two-dimensional or three-dimensional graphic image, including:
开始模块:与文本代码层的功能模块对应,表示程序的第一个起始功能模块,每个拼接域仅有一个,为方便识别,因此独立标识。Start module: Corresponding to the function module of the text code layer, it represents the first start function module of the program. There is only one for each splicing field. For the convenience of identification, it is independently identified.
结束模块:与文本代码层的功能模块对应,表示程序的最后执行的功能模块,每个拼接域可有多个,为方便识别,因此独立标识。End module: Corresponding to the function module of the text code layer, it represents the last executed function module of the program, each splicing domain can have multiple, and is identified independently for the convenience of identification.
可视化开发层功能模块:与文本代码层的功能模块相对应,在可视化层表示除开始模块、结束模块以外的所有功能模块,可以与开始模块、结束模块、模块适配器、其他功能模块、数据集拼接。Visual development layer functional modules: Corresponding to the functional modules of the text code layer, all functional modules except the start module and the end module are represented in the visual layer, which can be spliced with the start module, end module, module adapter, other functional modules, and data sets .
模块接口:与文本代码层的模块接口相对应,在可视化层表现为模块(包括:开始模块、结束模块、功能模块)间连接的通道。Module interface: Corresponding to the module interface of the text code layer, it is expressed as a channel connecting modules (including: start module, end module, and function module) in the visualization layer.
模块适配器:与文本代码层的模块适配器相对应,在可视化层主要表现为与两个(或多个模块)同时拼接,此种方式表示将一侧拼接的接口数据处理传给另一侧的模块内接口;另一种表现为同时与模块和数据集拼接,此时表示将数据集的数据作处理传给另一侧的模块。Module adapter: Corresponding to the module adapter of the text code layer, in the visualization layer, it is mainly displayed as splicing with two (or more modules) at the same time. This method means that the interface data processing spliced on one side is transmitted to the module on the other side. Internal interface; the other is splicing with the module and the data set at the same time, which means that the data of the data set is processed and transmitted to the module on the other side.
数据集:与文本代码层的数据集相对应,在可视化表现为与模块接口或模块适配器拼接的一种元素,表示向拼接元素传值或赋值。Data set: Corresponding to the data set of the text code layer, it is visualized as an element spliced with the module interface or module adapter, indicating that a value is passed or assigned to the spliced element.
模块拼接域:与文本代码层的模块拼接域对应,在可视化层表现为其他可视化元素进行拼接操作的工作空间,并与一个实体文件对应。Module splicing domain: Corresponding to the module splicing domain of the text code layer, in the visualization layer, it is expressed as a workspace for splicing operations of other visual elements, and corresponds to an entity file.
文本代码层功能模块模块代码实施例如下:The code example of the text code layer function module module code is as follows:
上述代码就是按照本发明所述方法设计出的具体代码模块,关键字“import”引导的是外部依赖声明;关键字“pattern”下缩进行内容是对模块模式标签的定义;关键字“interface”下引导的内容是对接口的声明和定义,每个模块可定义多个;关键字“start——end”范围内是代码工作区,当模块被启动时将依次执行该范围内的语句,执行过程中将根据模式标签选择性执行;最后部分是对该模块所需的内部函数和类进行声明定义。上述模块内的内容,除“start——end”的代码工作区外均可缺省,而且关键字等表示形式都可随之改变,只要模块构件(模块接口、模块模式)功能设计和代码执行情况与本发明所述内容相同均属本发明的范围之内。The above code is a specific code module designed according to the method of the present invention. The keyword "import" guides the external dependency declaration; the indented content of the keyword "pattern" is the definition of the module pattern label; the keyword "interface" The content of the next guide is the declaration and definition of the interface, and each module can define more than one; the scope of the keyword "start-end" is the code workspace. When the module is started, the statements in this scope will be executed in turn, and the execution The process will be selectively executed according to the pattern label; the final part is to declare and define the internal functions and classes required by the module. The content in the above modules can be defaulted except the code workspace of "start-end", and the expressions such as keywords can be changed accordingly, as long as the module components (module interface, module mode) function design and code execution The same conditions as those described in the present invention fall within the scope of the present invention.
数据集是一系列有序的具有初值的变量集,从形式上看是一个结构体,但强调每个变量必须有初始值,并且他们出现的顺序有含义,会被编译器识别作为信息收集,以供接口传入时匹配,数据集代码如下:A data set is a series of ordered variable sets with initial values. Formally, it is a structure, but it is emphasized that each variable must have an initial value, and the order in which they appear has meaning, which will be recognized by the compiler as information collection. , for matching when the interface is passed in, the data set code is as follows:
代码模块适配器,是在模块接口双方或多方不匹配情况下,将接口内传出的数据经计算转换处理,输出给另一方接口内待传入变量,若接口输出数据多余时,将其忽略处理。代码模块适配器主要三项功能,接受数据,处理数据,传出数据。代码模块适配代码实施例如下:The code module adapter is to calculate and transform the data sent out from the interface when the two or more parties of the module interface do not match, and output it to the variable to be passed in the interface of the other party. If the output data of the interface is redundant, it will be ignored. . The code module adapter has three main functions, receiving data, processing data, and outgoing data. The code module adaptation code example is as follows:
上述代码中,关键字“adapter”表示适配器定义开始,“adapterName”为适配器名称,“[]”内为适配器处理的接口,随后的代码是对不匹配数据进行处理,“>>:”引导的缩进内容为最终的数据传输。适配器的设计,不局限于编程语言种类、表达形式、书写格式,只要内容和功能特征符合本申请内容均属本发明范围之内。In the above code, the keyword "adapter" indicates the beginning of the adapter definition, "adapterName" is the name of the adapter, and "[]" is the interface handled by the adapter. The subsequent code is to process the unmatched data, guided by ">>:" The indented content is the final data transfer. The design of the adapter is not limited to the type of programming language, expression form, and writing format, as long as the content and functional characteristics conform to the content of the present application, it falls within the scope of the present invention.
模块拼接域,是本发明中最高级别代码结构,用于将代码模块进行拼接以完成所需功能或形成新的代码模块。内部结构包括:外部引用声明区、全局顶层变量声明和定义区、域内工作代码区(Workspace)、域级素材(适配器、类、函数、数据集)定义区。The module splicing domain is the highest-level code structure in the present invention, and is used for splicing code modules to complete required functions or form new code modules. The internal structure includes: external reference declaration area, global top-level variable declaration and definition area, internal work code area (Workspace), and domain-level material (adapter, class, function, data set) definition area.
具体代码实施例如下:The specific code example is as follows:
上述实施例代码中,关键字“start-end”范围内引导的就是代码工作区里面可进行常规代码语句(包括运算语句、控制流语句)和模块拼接语句,其中“module_1<patt_1>(inter_1,inter_2)”语句四模块启动语句,“module_1”为模块名,“<>”内为模块模式标号,“()”,“|”引导的语句是数据集传入或适配器使用。代码工作区内的语句是从上至下依次执行的,同样的,模块拼接域可以不局限语言、表达方式、书写格式,所有功能设计符合本发明要求特征的均属本发明范围之内。In the code of the above-mentioned embodiment, what is guided within the scope of the keyword "start-end" is that conventional code statements (including operation statements, control flow statements) and module splicing statements can be carried out in the code work area, wherein "module_1<patt_1>(inter_1, inter_2)" statement four module startup statements, "module_1" is the module name, "<>" is the module mode label, "()", "|" The leading statement is the input of the data set or the use of the adapter. Statements in the code work area are executed sequentially from top to bottom. Similarly, the module splicing field can be not limited to language, expression, and writing format. All functional designs that meet the requirements of the present invention are within the scope of the present invention.
为说明可视化层到文本代码层的生成方法,下面将围绕图2中的实施例来具体阐述该方法:In order to illustrate the generation method from the visualization layer to the text code layer, the method will be specifically described below around the embodiment in FIG. 2 :
在图2右侧工作区内是进行拼接,其中蓝色三角形“start”模块,它本质是模块,功能是在该域启动时启动,每个域只能有一个;红色“end”模块和“start”类似,但每个域可以有多个;紫色正方形的模块是普通的功能模块;墨色“adapter_1”是适配器;黄色“buffer_1”是缓存器模块,缓存器本质是由适配器衍生而来,除可存储数据、生命周期较长外与adapter无异。In the work area on the right side of Figure 2, splicing is performed. The blue triangle "start" module is essentially a module, and its function is to start when the domain is started. Each domain can only have one; the red "end" module and "" "start" is similar, but each field can have multiple; the purple square modules are common function modules; the black "adapter_1" is the adapter; the yellow "buffer_1" is the buffer module, the buffer is essentially derived from the adapter, except It is no different from an adapter except that it can store data and has a long life cycle.
对该可视化开发层实施例,处理方法和处理过程如图3所示。每个拼接域都会在计算机硬盘内生成一个*.md文件,该文件就是拼接域文本代码文件,里面是具体编程语言的代码。For this embodiment of the visual development layer, a processing method and a processing procedure are shown in FIG. 3 . Each splicing field will generate a *.md file in the computer hard disk, which is the splicing field text code file, which contains the code of the specific programming language.
将一个可视化元素拖入拼接区内时,在*.md内引用申明区根据该元素文件名和存储路径生成一条引用声明,除了模块、适配器、数据集引用声明外若编程语言使用其他外部资源,如类、函数等时也会自动生成,该实施生成的引用声明如下:When dragging a visual element into the mosaic area, a reference declaration is generated in the reference declaration area in *.md according to the file name and storage path of the element. In addition to the module, adapter, and dataset reference declaration, if the programming language uses other external resources, such as Classes, functions, etc. are also automatically generated, and the reference declaration generated by this implementation is as follows:
上述引用不涉及具体的存储地址,由编译器从设置的连接路径中自动获取相关文件内容。The above reference does not involve a specific storage address, and the compiler automatically obtains the content of the relevant file from the set connection path.
新模块或者相关配件的创建是需要进行文本方式的编写,本发明只对模块和配件内部实现方法和宏观拼接映射方法进行申请。The creation of new modules or related accessories needs to be written in text mode, and the present invention only applies to the internal realization method and macro splicing and mapping method of modules and accessories.
模块和模块拼接后,用户需要设置双方对接接口和模块启动模式,这两项信息不在图中体现,由用户选择输入,系统内部记录,若上方对接,则双方之间会出现灰色矩形,通过适配器、缓存器连接不出现灰色连接标志,每个拼接操作都会在*.md文件的“start-end”区域内生成拼接代码,本实施例生成代码如下:After the module and the module are spliced, the user needs to set the docking interface and the module startup mode. These two pieces of information are not reflected in the figure, but are selected and input by the user and recorded in the system. , the buffer connection does not appear gray connection mark, each splicing operation will generate splicing code in the "start-end" area of the *.md file, the generated code in this embodiment is as follows:
生成文本代码层后,通过所使用编程语言的编译器、汇编器等编译工具生成可执行文件。After the text code layer is generated, an executable file is generated by compiling tools such as the compiler and assembler of the programming language used.
本发明是一项模块化编程的组件(代码模块、数据集、代码模块接口、代码模块适配器、模块拼接域)内部设计和实现方法以及可视化层映射实现方法,本说明中的实施例是使用本人按照本发明的方法所设计实现的一款编程语言做出的说明,对于一个拥有计算机基础的技术人员、编程语言和编译器设计者,可按照本发明的方法实现所述效果,因此本发明不限于编程语言、表达方式和书写格式,凡是符合本发明所述组件设计和实现思路的均属本发明范围之内。The present invention is a modular programming component (code module, data set, code module interface, code module adapter, module splicing domain) internal design and implementation method and visualization layer mapping implementation method. According to the description made by a programming language designed and implemented by the method of the present invention, a technical person with a computer foundation, programming language and compiler designer can realize the effect according to the method of the present invention, so the present invention does not Limited to programming languages, expressions and writing formats, all components that conform to the design and implementation ideas of the components described in the present invention fall within the scope of the present invention.
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104818.0A CN109976747B (en) | 2019-02-01 | 2019-02-01 | A Visual Development and Implementation System of Module-level Code Structure |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104818.0A CN109976747B (en) | 2019-02-01 | 2019-02-01 | A Visual Development and Implementation System of Module-level Code Structure |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109976747A CN109976747A (en) | 2019-07-05 |
CN109976747B true CN109976747B (en) | 2022-05-13 |
Family
ID=67076884
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910104818.0A Expired - Fee Related CN109976747B (en) | 2019-02-01 | 2019-02-01 | A Visual Development and Implementation System of Module-level Code Structure |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109976747B (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110377280A (en) * | 2019-07-29 | 2019-10-25 | 郑州幻视科技有限公司 | A kind of visualization system for teaching programming |
CN111258571A (en) * | 2020-02-11 | 2020-06-09 | 达闼科技(北京)有限公司 | Robot application program development method, system, device and storage medium |
CN112364107A (en) * | 2020-11-10 | 2021-02-12 | 平安普惠企业管理有限公司 | System analysis visualization method and device, electronic equipment and computer readable storage medium |
CN117608555B (en) * | 2023-11-28 | 2024-08-02 | 浙江大学 | Programming auxiliary method and system supporting creative and graphical |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567201A (en) * | 2003-06-11 | 2005-01-19 | 深圳市蓝津信息技术有限公司 | Restructurable virtual device for software bus and chip structure |
CN1737755A (en) * | 2005-06-13 | 2006-02-22 | 浙江大学 | A Modeling and Code Generation Method for Embedded Real-time Operating System |
CN102622259A (en) * | 2012-02-17 | 2012-08-01 | 南京南瑞继保电气有限公司 | Functional block function modeling method for visual programming |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3635538A4 (en) * | 2017-06-05 | 2021-03-10 | Umajin Inc. | Methods and systems for an application system |
-
2019
- 2019-02-01 CN CN201910104818.0A patent/CN109976747B/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567201A (en) * | 2003-06-11 | 2005-01-19 | 深圳市蓝津信息技术有限公司 | Restructurable virtual device for software bus and chip structure |
CN1737755A (en) * | 2005-06-13 | 2006-02-22 | 浙江大学 | A Modeling and Code Generation Method for Embedded Real-time Operating System |
CN102622259A (en) * | 2012-02-17 | 2012-08-01 | 南京南瑞继保电气有限公司 | Functional block function modeling method for visual programming |
Non-Patent Citations (2)
Title |
---|
Design of object oriented finite element code;Z Bittnar 等;《object-oriented visual code development》;20011130;759-767 * |
基于Java与UML的应用程序开发;巴才国;《中国优秀硕士学位论文全文数据库_信息科技辑》;20040415;I138-455 * |
Also Published As
Publication number | Publication date |
---|---|
CN109976747A (en) | 2019-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976747B (en) | A Visual Development and Implementation System of Module-level Code Structure | |
Lattner et al. | MLIR: A compiler infrastructure for the end of Moore's law | |
Lattner et al. | MLIR: Scaling compiler infrastructure for domain specific computation | |
Zhang et al. | Design, construction, and application of a generic visual language generation environment | |
US8701087B2 (en) | System and method of annotating class models | |
WO2015196784A1 (en) | Visual software modeling method based on software meta-view for constructing software view | |
Rautek et al. | Illustrative visualization: new technology or useless tautology? | |
CN108037913B (en) | Conversion method from xUML4MC model to MSVL language program, computer readable storage medium | |
Embley et al. | Conceptual-model programming: a manifesto | |
CN102708161A (en) | Modeling method of data logic model utilizing public conceptual sets | |
Janičić | Geometry constructions language | |
Pacheco et al. | Delta lenses over inductive types | |
KR101352383B1 (en) | Method of program development using Visual Programming Language and computer readable medium thereof | |
Handley et al. | Maintaining the consistency of sysml model exports to XML metadata interchange (XMI) | |
CN107688704A (en) | ASIP Action logic integrated approach based on Petri net model | |
Amor | A generalised framework for the design and construction of integrated design systems | |
Berry et al. | Towards coq-verified esterel semantics and compiling | |
Montag et al. | Bringing together dynamic geometry software and the graphics processing unit | |
Schneider et al. | Domain-specific languages for kinematic chains and their solver algorithms: lessons learned for composable models | |
US8055482B2 (en) | Integrating multiple design systems in a CAD system | |
Jackson | Software Abstractions, Revised Edition: Logic, Language, and Analysis | |
Meyers | Representing software systems in multiple-view development environments | |
Coelho et al. | From requirements to architecture for software product lines | |
Davis et al. | The flexibility of logic programming | |
CN106094561B (en) | Marine Synthesize Electric Propulsion System modeling and simulating method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for 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 |
Granted publication date: 20220513 |
|
CF01 | Termination of patent right due to non-payment of annual fee |