WO2020056937A1 - 一种基于c语言的语法扩展方法、装置及终端设备 - Google Patents

一种基于c语言的语法扩展方法、装置及终端设备 Download PDF

Info

Publication number
WO2020056937A1
WO2020056937A1 PCT/CN2018/120326 CN2018120326W WO2020056937A1 WO 2020056937 A1 WO2020056937 A1 WO 2020056937A1 CN 2018120326 W CN2018120326 W CN 2018120326W WO 2020056937 A1 WO2020056937 A1 WO 2020056937A1
Authority
WO
WIPO (PCT)
Prior art keywords
function
data flow
data
initial program
language
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.)
Ceased
Application number
PCT/CN2018/120326
Other languages
English (en)
French (fr)
Inventor
罗秋明
张靖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen University
Original Assignee
Shenzhen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen University filed Critical Shenzhen University
Publication of WO2020056937A1 publication Critical patent/WO2020056937A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Definitions

  • the present invention relates to the field of computers, and in particular, to a method, a device, and a terminal device for syntax extension based on the C language.
  • C which is a general-purpose computer programming language
  • C is a control flow language. Statements are executed in the order in which they appear in the program. Commands are the main driver. They are not compatible with data flow programming. Therefore, the scope of the data flow model is small. Has good cross-platform characteristics.
  • the main purpose of the present invention is to propose a C language-based syntax extension method, device, and terminal device, in order to solve the C language incompatible data flow programming in the prior art, so that the application range of the data flow model is small and does not have good Problems with platform characteristics.
  • a first aspect of an embodiment of the present invention provides a syntax extension method based on the C language, which is applied to a data flow model.
  • the syntax extension method based on the C language includes:
  • the marking a data flow function in the initial program includes:
  • code paragraph If the code paragraph complies with the compilation mode of the data flow function, the code paragraph generates the data flow function;
  • the code segment does not conform to the compilation method of the data flow function, the code segment does not generate the data flow function.
  • the marking a data flow function in the initial program further includes:
  • the parameter expression If the parameter expression conforms to the compilation mode of the data flow function, the parameter expression generates the data flow function
  • the parameter expression does not conform to the compilation mode of the data flow function, the parameter expression does not generate the data flow function.
  • the selecting the compilation method of the initial program according to the data flow function, and compiling the initial program includes:
  • a directed graph of function execution order is generated according to the data flow function, and the initial program is compiled according to the directed graph.
  • the generating a directed graph of a function execution order according to the data flow function includes:
  • the directed connection is constructed between two data flow functions having an input-output condition data relationship, and Adding all input directed connected data flow functions to the assembled function set includes:
  • the first data flow function or the second data flow function When all the input condition data of the first data flow function or the second data flow function form a directional connection with the corresponding output condition data, the first data flow function or the second data flow function is To the assembled function collection.
  • a C language-based grammar extension device is applied to a data flow model.
  • the C language-based grammar extension device includes:
  • a programming module for expanding the content of the parameter list in the C language according to the data flow model to obtain an initial program
  • a compiling module is configured to select a compilation mode of the initial program according to the data flow function, and compile the initial program.
  • the selection module includes a first labeling unit
  • the first labeling unit is configured to label a code paragraph of the initial program by a pragma instruction, compile and guide, and determine whether the code paragraph complies with a compilation mode of the data flow function;
  • code paragraph If the code paragraph complies with the compilation mode of the data flow function, the code paragraph generates the data flow function;
  • the code segment does not conform to the compilation method of the data flow function, the code segment does not generate the data flow function.
  • a third aspect of the embodiments of the present invention provides a terminal device, including a memory, a processor, and a computer program stored in the memory and executable on the processor.
  • the processor executes the computer program, the first implementation is implemented as above.
  • the steps of the C-based syntax extension method provided by the aspect are implemented as above.
  • a fourth aspect of the embodiments of the present invention provides a computer-readable storage medium.
  • the computer-readable storage medium stores a computer program.
  • the computer program is executed by a processor, the C-based syntax provided by the first aspect is implemented. Steps of the extension method.
  • the C language-based grammar extension method provided by the embodiment of the present invention is based on the standard C language and expands its parameter expressions according to the data flow model to obtain the initial program. At the same time, a directed graph of the function execution order is generated to make the data flow.
  • the model can be compiled after the C language extension, and finally the data flow model can be widely used in multi-core processors on various platforms.
  • FIG. 1 is a schematic diagram of an implementation process of a C-based grammar extension method according to a first embodiment of the present invention
  • FIG. 2 is a schematic diagram of an implementation process of a C-based grammar extension method provided in Embodiment 2 of the present invention
  • Embodiment 3 is a directed graph of a function execution sequence provided by Embodiment 2 of the present invention.
  • Embodiment 4 is a schematic diagram of a data flow model provided by Embodiment 3 of the present invention.
  • Embodiment 5 is a directed graph of a function execution sequence provided by Embodiment 3 of the present invention.
  • FIG. 6 is a schematic structural diagram of a C-based grammar extension apparatus according to a fourth embodiment of the present invention.
  • an embodiment of the present invention provides a syntax extension method based on the C language, which uses the language standard and language composition of the C language, but expands the language composition content and provides a compilation method.
  • the data flow model can be compiled in a variety of computer platforms, thereby being applied to a multi-core processor of each platform.
  • the C language-based syntax extension method includes:
  • the function syntax elements in the C language include the function name, parameter list, and function body, and the parameter list includes multiple parameter expressions
  • the content in the parameter list is a parameter expression, where the parameter An expression can be an expression or a parameter.
  • it is separated by commas.
  • type and arg represent the type and name of the parameter expression in the parameter list, respectively.
  • the content of the parameter list in C language is extended, and the initial program can be obtained by writing the input data in the data flow model into the parameter expression based on the programming basis of the C language initial program.
  • the function expression of the data flow model is written into the function body to obtain the initial program.
  • step S102 since the C language is a control flow language and is not compatible with data flow programming, there is a data flow function in the initial program obtained by programming after expanding the content of the parameter list in the C language according to the data flow model.
  • the data flow function has input condition data and output condition data.
  • the main basis for distinguishing between the data flow function and the control flow function in the initial program is the compilation method of the two.
  • the compilation method of the control flow function is executed in the order in which it appears in the program, and the command method is The main drive;
  • the compilation method of the data flow function is performed in a data-driven manner, allocating the data to be processed to each core, separating data calculation and communication, and using task scheduling and allocation, using the parallel characteristics of software pipelines to The potential parallelism in the stream program is fully exploited to balance the load among the cores.
  • the data flow function in marking the initial program includes:
  • code paragraph If the code paragraph complies with the compilation mode of the data flow function, the code paragraph generates the data flow function;
  • the code segment does not conform to the compilation method of the data flow function, the code segment does not generate the data flow function.
  • dfunX (type1 arg1, type2 arg2, ..., typen argn; Dtype1 arg1, Dtype2 arg2, ... Dtypek argk; DOtype data1, DOtype data2, ..., DOtype dataL)
  • type arg represents the type and name of the C language function parameter
  • Dtype arg represents the data conditions required to activate the task
  • DOtype arg indicates that a new data stream ready flag or task data will be generated by the task.
  • the related special semantic actions can be called data flow domain.
  • the functions in this section are data flow functions, and the functions outside the data flow domain are ordinary C language functions.
  • the data flow function in marking the initial program further includes:
  • the parameter expression If the parameter expression conforms to the compilation mode of the data flow function, the parameter expression generates the data flow function
  • the parameter expression does not conform to the compilation mode of the data flow function, the parameter expression does not generate the data flow function.
  • the division symbol is a symbol in a non-C function parameter expression such as a semicolon, a colon, a colon, or a plus sign.
  • the content of the extended parameter expression cannot be compiled in the original C language. Based on the extended initial program of the C language, it has a data stream compilation method and function conditions. E.g:
  • dfunX (type1 arg1, type2 arg2, ..., typen argn; Dtype1 arg1, Dtype2 arg2, ... Dtypek argk; DOtype data1, DOtype data2, ..., DOtype dataL)
  • type arg represents the type and name of the C language function parameter
  • Dtype arg represents the data conditions required to activate the task
  • DOtype arg indicates that the new data stream ready flag that this task will generate.
  • step S103 after expanding the content of the parameter list in the C language according to the data flow model, the initial program obtained cannot be compiled according to the C language compilation method, but needs to be compiled using a data flow function. Compile.
  • the way of compiling the data stream function is mainly to match the output data conditions according to the input data conditions it needs.
  • An embodiment of the present invention provides a syntax extension method based on C language. Based on the standard C language, its parameter expression is expanded according to a data flow model to obtain an initial program, and a directed graph of function execution order is generated at the same time to make the data.
  • the stream model can be compiled after the C language extension, and finally the data stream model can be widely used in multi-core processors of various platforms.
  • the C language-based syntax extension method provided by the embodiment of the present invention exemplarily illustrates a specific implementation process of step S103 in the first embodiment:
  • a directed graph of function execution order is generated according to the data flow function, and the initial program is compiled according to the directed graph.
  • a directed graph to compile.
  • a static instance of a data flow program will be described as a directed graph according to its structure.
  • Nodes in the figure represent computing units and edges represent data transmission paths. Adjacent nodes transmit data through edges, and nodes consume data for calculation, and output the generated data to the input-output sequence as the input of the next computing unit.
  • the specific steps of generating the directed graph of the function execution order according to the data flow function include:
  • step S1031 the initial settings of the scanned function set and the assembled function set are empty.
  • step S1032 the traversal operation ensures that the number of functions in the function set is equal to the number of data flow functions in the initial program.
  • S1033 Traverse the function set, construct activation input condition data and output condition data for each data flow function in the function set, and add the activated data flow function to the scanned function set.
  • the scanned function set includes a data flow function, input condition data, and output condition data.
  • data is transmitted between adjacent nodes in the directed graph through edges, so the data of the data flow function needs to be output to the input-output sequence as the data input of the next data flow function.
  • S1034 Traverse the scanned function set, construct a directed connection between two data flow functions with input-output conditional data relationships, and add a data flow function that constructs all input directed connections to the assembled Function collection.
  • step S1034 after the data flow function of the directed connection is added to the assembled function set, the data flow function gradually forms a node in the directed graph; all the input directed connections are all the output condition data to the input Directed connection of conditional data.
  • an embodiment of the present invention further provides a specific implementation process of the foregoing step S1034:
  • the first data flow function and the second data flow function are any two data flow functions of the scanned function set.
  • the output condition data of the first data stream function may be used as a standard, and the second data stream function capable of forming a corresponding and satisfying the input condition data may be traversed, and then the A directed connection is constructed between the two data flow functions.
  • the output condition data of the second data flow function can be used as a standard, and the first data flow function that can form a corresponding and meet the input condition data can be traversed, and then between the first data flow function and the second data flow function. Construct a directed connection.
  • the directional connections are all directional connections from the output data condition to the input data condition.
  • the data flow function may have multiple input condition data, and the data flow function in the assembled function set assembles output condition data corresponding to all input condition data according to all of its input condition data, and constructs Directed connection of all output condition data to input condition data.
  • An embodiment of the present invention provides a syntax extension method based on C language. Based on the standard C language, its parameter expression is expanded according to a data flow model to obtain an initial program, and a directed graph of function execution order is generated at the same time to make the data
  • the stream model can be compiled after the C language extension, which eventually makes the data stream model widely applicable to multi-core processors on the lattice platform.
  • the embodiment of the present invention takes the data flow model shown in FIG. 4 as an example, and exemplarily describes the implementation process of the C language-based syntax extension method in the first embodiment and the second embodiment.
  • the initial program obtained can have the following code:
  • dfunA is the squaring operation in Figure 4 and is expressed as:
  • DOint c1 represents the condition data output by the data flow function
  • dfunA executes DOint c1's flag ready becomes true.
  • a is 4.
  • DOint c2 represents the conditional data output by the data flow function
  • dfunB is executed after DOint c1's flag ready becomes true.
  • b is taken as 9.
  • DOint c1 and Dint c2 represent the condition data output by the data flow function. When these two conditions are met, the function is automatically activated.
  • the input data c1.var and c2.var are processed, that is, c1.var + c2.var, where c1.var is the output data of dfunA, and c2.var is the output data of dfunB.
  • dfunA, dfunB, and dfunC are all data flow functions, and the following shows a specific implementation flow of generating a directed graph of the execution order of functions:
  • Traverse the function set DFun For each data flow function in the function set, construct the activation input condition data DI and output condition data DO.
  • the data flow function is dfunA, and then add the function dfunA to the scanned function set SCANF, and complete at the same time. Scanning inside the scanned function set SCANF, that is, traversing all functions dfunB and dfunC in the scanned function set SCANF except the data flow function dfunA, then the data flow functions in the scanned function set SCANF are input conditions data DI output conditions Data DO, but no connection relationship is constructed.
  • funA is scanned first, and dfunA has been added to the scanned function set SCANF. Because the DI item of the data flow function is the default, which means that the function runs directly, funA is directly added to the assembled function set FIXEDF to indicate that the item is loaded; then funB is scanned, and funB is added to the scanned function set SCANF, because the DI item of the data stream function is also the default, which means that the function runs directly, so directly add the assembled function set FIXEDF to indicate that the item is loaded; finally, look for funC and find that in the scanned function set SCANF
  • the DO of funA is part of the DI of funC, then the directional connection of funA to funC is constructed, and the DI of funC only completes half of the connection. It cannot join the assembled function set FIXEDF, then continues to look for funC, and finds that the scanned function set SCANF
  • the DO of funB is part of the DI of funC, and constructs a directional
  • the default indicates the system default state, meaning the same as "default”.
  • an embodiment of the present invention further provides a structure diagram of a directed graph of a function execution sequence generated according to the data flow model shown in FIG. 4.
  • the data flow functions dfunA, dfunB, and dfunC are compiled according to the directed graph.
  • an embodiment of the present invention further provides a C-based grammar extension device 60, which uses the C language language standard and language composition, but expands its language composition content, and provides a compiler Method, when it is applied to the data flow model, the data flow model can be compiled in a variety of computer platforms, so as to be applied to a multi-core processor of each platform.
  • the C-based grammar extension device 60 includes:
  • a programming module 61 configured to expand the content of the parameter list in the C language according to the data flow model to obtain an initial program
  • a selection marking module 62 configured to mark a data flow function in the initial program, and obtain input data conditions and output data conditions of a parameter expression
  • the compiling module 63 is configured to select a compilation mode of the initial program according to the data flow function, and compile the initial program.
  • the selection module 62 includes a first labeling unit.
  • the first labeling unit is used to label the code paragraphs of the initial program by the pragma instruction, compile and guide, and determine whether the code paragraphs conform to the compilation method of the data flow function;
  • the code section If the code section conforms to the compilation method of the data flow function, the code section generates a data flow function
  • the code section does not conform to the compilation method of the data flow function, the code section does not generate a data flow function.
  • the selection module 62 includes a second labeling unit.
  • a second labeling unit is used to divide a parameter expression in the parameter list by adding a segmentation symbol to the parameter list, and determine whether the parameter expression conforms to the compilation method of the data flow function;
  • the parameter expression conforms to the compilation method of the data flow function, the parameter expression generates a data flow function
  • the parameter expression does not conform to the compilation method of the data flow function, the parameter expression does not generate a data flow function.
  • An embodiment of the present invention further provides a terminal device including a memory, a processor, and a computer program stored on the memory and executable on the processor.
  • a terminal device including a memory, a processor, and a computer program stored on the memory and executable on the processor.
  • the processor executes the computer program, the implementation is implemented as in the first embodiment.
  • An embodiment of the present invention further provides a storage medium.
  • the storage medium is a computer-readable storage medium on which a computer program is stored.
  • the computer program is executed by a processor, the C-based implementation as described in the first embodiment is implemented. Steps in the language's syntax extension method.
  • the C language-based grammar extension method provided by the embodiment of the present invention is based on the standard C language and expands its parameter expressions according to the data flow model to obtain the initial program. At the same time, a directed graph of the function execution order is generated to make the data flow.
  • the model can be compiled after the C language extension, and finally the data flow model can be widely used in multi-core processors on various platforms.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

提供了一种基于C语言的语法扩展方法,应用于数据流模型。基于C语言的语法扩展方法包括:根据所述数据流模型,扩展C语言中的参数列表内容,获得初始程序(S101);标记所述初始程序中的数据流函数,获得参数表达式的输入数据条件和输出数据条件(S102);根据数据流函数选择初始程序的编译方式,对所述初始程序进行编译(S103)。能够解决现有技术中C语言不兼容数据流模型的编程,而使得数据流模型的适用范围小,不具备良好的跨平台特性的问题。

Description

一种基于C语言的语法扩展方法、装置及终端设备 技术领域
本发明涉及计算机领域,尤其涉及一种基于C语言的语法扩展方法、装置及终端设备。
背景技术
目前的处理器的开发主要向多核处理器的方向发展,大型分布式系统也越来越普遍。传统上程序设计采用顺序执行命令的结构进行编程,在该模式下数据往往是“静态“的,执行程序时将不断的对数据进行存取操作,使得程序对于多核处理器以及大型分布式系统的支持不是特别好。而基于数据流模型的数据流编程强调以数据为驱动动力,明确定义输入以及输出的连接操作,不采用命令的方式,每当数据准备好即输入有效,相关操作就会立即执行,因此数据流编程的本质是并行的,适于运行在多核处理器以及大型分布式系统。
然而,作为通用计算机编程语言的C语言为控制流语言,语句按照出现在程序中的顺序执行,以命令的方式为主要驱动,并不兼容数据流编程,因此数据流模型的适用范围小,不具备良好的跨平台特性。
技术问题
本发明的主要目的在于提出一种基于C语言的语法扩展方法、装置及终端设备,以解决现有技术中C语言不兼容数据流编程而使得数据流模型的适用范围小,不具备良好的跨平台特性的问题。
技术解决方案
为实现上述目的,本发明实施例第一方面提供一种基于C语言的语法扩展方法,应用于数据流模型,所述基于C语言的语法扩展方法包括:
根据所述数据流模型,扩展C语言中的参数列表内容,获得初始程序;
标记所述初始程序中的数据流函数,获得参数表达式的输入数据条件和输出数据条件;
根据所述数据流函数选择所述初始程序的编译方式,对所述初始程序进行编译。
结合本发明第一方面,本发明第一方面的第一实施方式中,所述标记所述初始程序中的数据流函数包括:
通过pragma指令标注所述初始程序的代码段落,进行编译制导,并判断所述代码段落是否符合所述数据流函数的编译方式;
若所述代码段落符合所述数据流函数的编译方式,则所述代码段落产生所述数据流函数;
若所述代码段落不符合所述数据流函数的编译方式,则所述代码段落不产生所述数据流函数。
结合本发明第一方面,本发明第一方面的第二实施方式中,所述标记所述初始程序中数据流函数还包括:
通过在参数列表中加入分割符号,分割所述参数列表中的参数表达式,并判断所述参数表达式是否符合所述数据流函数的编译方式;
若所述参数表达式符合所述数据流函数的编译方式,则所述参数表达式产生所述数据流函数;
若所述参数表达式不符合所述数据流函数的编译方式,则所述参数表达式不产生所述数据流函数。
结合本发明第一方面,本发明第一方面的第三实施方式中,所述根据所述数据流函数选择所述初始程序的编译方式,对所述初始程序进行编译包括:
根据所述数据流函数生成函数执行顺序的有向图,并根据所述有向图对所述初始程序进行编译。
结合本发明第一方面的第三实施方式,本发明第一方面的第四实施方式中,所述根据所述数据流函数生成函数执行顺序的有向图包括:
设置函数集合、已扫描函数集合和已装配函数集合;
遍历所述初始程序中的数据流函数,并将所述数据流函数放入所述函数集合中;
遍历所述函数集合,对每一个所述函数集合中的数据流函数,构造激活输入条件数据和输出条件数据,并将已经构造激活的数据流函数添加到所述已扫描函数集合;
遍历所述已扫描函数集合,在具有输入输出条件数据关系的两个数据流函数之间构造有向连接,并将构造了全部输入的有向连接的数据流函数添加到所述已装配函数集合;
所述已装配函数集合中的元素数量等于所述初始程序中数据流函数的数量时,完成所述有向图;
所述已装配函数集合中的元素不等于所述初始程序中数据流函数的个数时,提示编译错误。
结合本发明第一方面的第四实施方式,本发明第一方面的第五实施方式中,所述在具有输入输出条件数据关系的两个数据流函数之间构造有向连接,并将构造了全部输入的有向连接的数据流函数添加到所述已装配函数集合包括:
将所述已扫描函数集合的一个数据流函数作为第一数据流函数,将在所述已扫描函数集合中的另一个数据流函数作为第二数据流函数;
所述第一数据流函数的输出条件数据,为所述第二数据流函数的输入条件数据时,构造所述第一数据流函数的输出条件数据到所述第二数据流函数的输入条件数据的有向连接;
所述第二数据流函数的输出条件数据,为所述第一数据流函数的输入条件数据时,构造所述第二数据流函数的输出条件数据到所述第一数据流函数的输入条件数据的有向连接;
所述第一数据流函数或所述第二数据流函数的所有输入条件数据均与对应的输出条件数据构造了有向连接时,将所述第一数据流函数或所述第二数据流函数添加到所述已装配函数集合。
本发明实施例第二方面提供了一种基于C语言的语法扩展装置,应用于数据流模型,所述基于C语言的语法扩展装置包括:
编程模块,用于根据所述数据流模型,扩展C语言中的参数列表内容,获得初始程序;
选择标记模块,用于标记所述初始程序中的数据流函数,获得参数表达式的输入数据条件和输出数据条件;
编译模块,用于根据所述数据流函数选择所述初始程序的编译方式,对所述初始程序进行编译。
结合本发明第二方面,本发明第二方面的第一实施方式中,所述选择模块包括第一标注单元;
所述第一标注单元,用于通过pragma指令标注所述初始程序的代码段落,进行编译制导,并判断所述代码段落是否符合所述数据流函数的编译方式;
若所述代码段落符合所述数据流函数的编译方式,则所述代码段落产生所述数据流函数;
若所述代码段落不符合所述数据流函数的编译方式,则所述代码段落不产生所述数据流函数。
本发明实施例的第三方面提供了一种终端设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上第一方面所提供的基于C语言的语法扩展方法的步骤。
本发明实施例的第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上第一方面所提供的基于C语言的语法扩展方法的步骤。
有益效果
本发明实施例所提供的基于C语言的语法扩展方法,基于标准的C语言,根据数据流模型扩展其参数表达式,获得初始程序,同时生成函数执行顺序的有向图,以使该数据流模型在经过C语言扩展后能够进行编译,最终使得数据流模型能够广泛应用于各平台的多核处理器中。
附图说明
图1为本发明实施例一所提供的基于C语言的语法扩展方法的实现流程示意图;
图2为本发明实施例二所提供的基于C语言的语法扩展方法的实现流程示意图;
图3为本发明实施例二提供的函数执行顺序的有向图;
图4为本发明实施例三提供的数据流模型示意图;
图5为本发明实施例三提供的函数执行顺序的有向图;
图6为本发明实施例四所提供的基于C语言的语法扩展装置的结构意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
本发明的最佳实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本文中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
在后续的描述中,发明实施例序号仅仅为了描述,不代表实施例的优劣。
实施例一
如图1所示,本发明实施例提供了一种基于C语言的语法扩展方法,使用了C语言的语言标准、语言组成,但扩展了其语言组成内容,并提供了一种编译方式,将其应用于数据流模型时,能够使数据流模型在多种计算机平台中进行编译,从而应用于各平台的多核处理器中。所述基于C语言的语法扩展方法包括:
S101、根据所述数据流模型,扩展C语言中的参数列表内容,获得初始程序。
在上述步骤S101中,由于C语言中的函数语法要素包括函数名,参数列表,以及函数体,又参数列表中包括多个参数表达式,则参数列表中的内容为参数表达式,其中,参数表达式可以是一种表达式,也可以为一个参数,在C语言中,其采用逗号进行分隔。例如:
fun1(type1 arg1,type2 arg2,…,typen argn)
{
函数体
}
其中,type 和arg分别表示参数列表中参数表达式的类型及名称。
在具体应用中,根据所述数据流模型,扩展C语言中的参数列表内容,获得初始程序可以为:以C语言为初始程序的编程基础,将数据流模型中的输入数据写入参数表达式中,将数据流模型的函数表达式写入函数体中,获得初始程序。
在具体应用中,当数据流模型中包括多个输入数据或函数表达式时,建立多个上述的以C语言为基础的初始程序。
S102、标记所述初始程序中的数据流函数,获得参数表达式的输入数据条件和输出数据条件。
在上述步骤S102中,由于C语言是一种控制流语言,并不兼容数据流编程,因此在根据数据流模型,扩展C语言中的参数列表内容后编程获得的初始程序中,存在数据流函数,数据流函数具有输入条件数据和输出条件数据。
在具体应用中,区分初始程序中的数据流函数和控制流函数的主要依据是两者的编译方法;其中,控制流函数的编译方法是按照出现在程序中的顺序执行,以命令的方式为主要驱动;数据流函数的编译方法是通过数据驱动的方式执行,将需要处理的数据分配到各个核上,将数据的计算与通信相分离,通过任务调度与分配,利用软件流水的并行特性来充分的挖掘流程序中潜在的并行性,使各个核之间负载均衡;当初始程序中存在数据流函数,则能够基于该数据流函数,获得参数表达式的输入数据条件和输出数据条件。
在一个实施例中,所述标记所述初始程序中的数据流函数包括:
通过pragma指令标注所述初始程序的代码段落,进行编译制导,并判断所述代码段落是否符合所述数据流函数的编译方式;
若所述代码段落符合所述数据流函数的编译方式,则所述代码段落产生所述数据流函数;
若所述代码段落不符合所述数据流函数的编译方式,则所述代码段落不产生所述数据流函数。
在具体应用中,采用添加新的关键字pragma dataflow,用该关键字标注段落来进行编译制导。以确定该段代码是否采用数据流函数的方式编译。例如:
#pragma dataflow
{
dfunX( type1 arg1,type2 arg2,…,typen argn;Dtype1 arg1,Dtype2 arg2,… Dtypek argk;DOtype data1,DOtype data2,…,DOtype dataL)
}
其中type arg表示C语言函数参数类型及名称;Dtype arg表示激活该任务所需的数据条件,DOtype arg表示该任务将产生的新的数据流准备好标志或任务数据。具有相关的特殊语义动作可称为数据流域,则在此段内的函数为数据流函数,而在数据流域之外的函数为普通的C语言函数。
在一个实施例中,所述标记所述初始程序中的数据流函数还包括:
通过在参数列表中加入分割符号,分割所述参数列表中的参数表达式,并判断所述参数表达式是否符合所述数据流函数的编译方式;
若所述参数表达式符合所述数据流函数的编译方式,则所述参数表达式产生所述数据流函数;
若所述参数表达式不符合所述数据流函数的编译方式,则所述参数表达式不产生所述数据流函数。
在具体应用中,分割符号为分号、顿号、冒号或加号等非C函数参数表达式中的符号。扩展后的参数表达式的内容无法在原C语言中进行编译,基于C语言所扩展后的初始程序,具有数据流的编译方式和函数条件。例如:
dfunX(type1 arg1, type2 arg2,…,typen argn;Dtype1 arg1,Dtype2 arg2,… Dtypek argk;DOtype data1,DOtype data2,…,DOtype dataL)
其中type arg表示C语言函数参数类型及名称;Dtype arg表示激活该任务所需的数据条件,DOtype arg表示该任务将产生的新的数据流准备好标志。当识别到上述的数据条件和标志,则此函数为数据流函数。
S103、根据所述数据流函数选择所述初始程序的编译方式,对所述初始程序进行编译。
在上述步骤S103中,在根据所述数据流模型,扩展C语言中的参数列表内容后,获得的初始程序,并不能根据C语言的编译方法进行编译,而需要采用数据流函数的编译方式进行编译。
在本发明实施例中,数据流函数的编译方式,主要是根据其所需的输入数据条件匹配输出数据条件。
本发明实施例提供了一种基于C语言的语法扩展方法,基于标准的C语言,根据数据流模型扩展其参数表达式,获得初始程序,同时生成函数执行顺序的有向图,以使该数据流模型在经过C语言扩展后能够进行编译,最终使得数据流模型能够广泛应用于各平台的多核处理器中。
本发明的实施方式
实施例二
如图2所示,本发明实施例所提供的基于C语言的语法扩展方法,示例性的示出了上述实施例一中步骤S103的一种具体实现流程:
根据所述数据流函数生成函数执行顺序的有向图,并根据所述有向图对所述初始程序进行编译。
在具体应用中,可以采用有向图的方式进行编译,其中,一个数据流程序的静态实例会按照它的结构被描述成一张有向图,图中节点表示计算单元,边代表数据传输路径。相邻节点间通过边传输数据,节点消耗数据进行计算,并将产生的数据输出到输入输出序列作为下一个计算单元的输入。
在本发明实施例中,上述根据数据流函数生成函数执行顺序的有向图的具体步骤包括:
S1031、设置函数集合、已扫描函数集合和已装配函数集合。
在上述步骤S1031中,已扫描函数集合和已装配函数集合的初始设定为空。
S1032、遍历所述初始程序中的数据流函数,并将所述数据流函数放入所述函数集合中。
在上述步骤S1032中,遍历操作保证了函数集合中的函数个数,等于初始程序中数据流函数的个数。
S1033、遍历所述函数集合,对每一个所述函数集合中的数据流函数,构造激活输入条件数据和输出条件数据,并将已经构造激活的数据流函数添加到所述已扫描函数集合。
在上述步骤S1033中,已扫描函数集合中包括数据流函数、输入条件数据和输出条件数据三部分。
在具体应用中,有向图中的相邻节点间通过边传输数据,因此需将数据流函数的数据输出到输入输出序列作为下一个数据流函数的数据输入。
S1034、遍历所述已扫描函数集合,在具有输入输出条件数据关系的两个数据流函数之间构造有向连接,并将构造了全部输入的有向连接的数据流函数添加到所述已装配函数集合。
在上述步骤S1034中,构造了有向连接的数据流函数添加到已装配函数集合中后,数据流函数逐渐构成有向图中的节点;全部输入的有向连接即所有的输出条件数据到输入条件数据的有向连接。
S1035、所述已装配函数集合中的元素数量等于所述初始程序中数据流函数的数量时,完成所述有向图。
S1036、所述已装配函数集合中的元素不等于所述初始程序中数据流函数的个数时,提示编译错误。
如图3所示,本发明实施例还提供了上述步骤S1034的具体实现流程:
S10341、将所述已扫描函数集合的一个数据流函数作为第一数据流函数,将在所述已扫描函数集合中的另一个数据流函数作为第二数据流函数。
在上述步骤S10341中,第一数据流函数和第二数据流函数为已扫描函数集合的任意两个数据流函数。
S10342、所述第一数据流函数的输出条件数据,为所述第二数据流函数的输入条件数据时,构造所述第一数据流函数的输出条件数据到所述第二数据流函数的输入条件数据的有向连接。
S10343、所述第二数据流函数的输出条件数据,为所述第一数据流函数的输入条件数据时,构造所述第二数据流函数的输出条件数据到所述第一数据流函数的输入条件数据的有向连接。
在上述步骤S10342和步骤S10343中,可以将第一数据流函数的输出条件数据作为标准,遍历寻找能够构成对应的,满足输入条件数据的第二数据流函数,然后在第一数据流函数和第二数据流函数之间构造有向连接。同理,可以将第二数据流函数的输出条件数据作为标准,遍历寻找能够构成对应的,满足输入条件数据的第一数据流函数,然后在第一数据流函数和第二数据流函数之间构造有向连接。
在本发明实施例中,有向连接均表现为输出数据条件到输入数据条件的有向连接。
S10344、所述第一数据流函数或所述第二数据流函数的所有输入条件数据均与对应的输出条件数据构造了有向连接时,将所述第一数据流函数或所述第二数据流函数添加到所述已装配函数集合。
在上述步骤S10344中,数据流函数可以具有多个输入条件数据,已装配函数集合中的数据流函数根据其所有的输入条件数据,装配了与所有输入条件数据对应的输出条件数据,并构造了所有的输出条件数据到输入条件数据的有向连接。
本发明实施例提供了一种基于C语言的语法扩展方法,基于标准的C语言,根据数据流模型扩展其参数表达式,获得初始程序,同时生成函数执行顺序的有向图,以使该数据流模型在经过C语言扩展后能够进行编译,最终使得数据流模型能够广泛应用于格平台的多核处理器中。
实施例三
本发明实施例以如图4所示的数据流模型为例,对上述实施例一及实施例二中,基于C语言的语法扩展方法的实现流程进行示例性说明。
针对如图4所示的数据流模型,其具有三个函数A、B、C;扩展C语言中的参数列表内容,获得的初始程序可有如下代码:
a)dfunA为图4中的平方运算,表示为:
dfunA (int a;;DOintc1)                    //DI部分为空,表示立即可以运行
{
c1.var=a*a;
}
其中a代表初始输入参数,DOint c1代表了该数据流函数输出的条件数据,dfunA执行后DOint c1的标志ready变为ture。
在本发明实施例中,取a为4。
b)dfunB为图4中的开根号运算,表示为:
dfunB(int b;;DOint c2)   //DI部分同样为空,表示立即可以运行
{
c2.var=sqrt(b);
}
其中b代表初始输入参数,DOint c2代表了该数据流函数输出的条件数据,dfunB执行后DOint c1的标志ready变为ture。
在本发明实施例中,取b为9。
c)dfunC为图4中的相加运算,表示为:
dfunC(   ;Dint c1,Dint c2;) //没有普通参数,DO部分为空
{
d=c1.var+c2.var;
}
其中DOint c1,Dint c2代表了该数据流函数输出的条件数据。当满足这两项条件数据之后,函数自动激活。并对输入数据c1.var和c2.var处理,即c1.var+c2.var,其中c1.var为dfunA的输出数据,c2.var为dfunB的输出数据。
在本发明实施例中,上述的dfunA、dfunB和dfunC均为数据流函数,下面示出了生成函数执行顺序的有向图的具体实现流程:
1)将数据流函数dfunA、dfunB和dfunC放入函数集合DFUN中,同时设置已扫描函数集合SCANF和已装配函数集合FIXEDF,其中已扫描函数集合SCANF和已装配函数集合FIXEDF的初始状态设为空。
2)将数据流函数添加至已扫描函数集合SCANF:
遍历函数集合DFun,对每一个函数集合中的数据流函数,构造激活输入条件数据DI输出条件数据DO,例如此数据流函数为dfunA,然后将该函数dfunA添加到已扫描函数集合SCANF,同时完成已扫描函数集合SCANF内部的扫描,即遍历已扫描函数集合SCANF中除了数据流函数dfunA以外的其他所有函数dfunB和dfunC,则已扫描函数集合SCANF中的数据流函数均由输入条件数据DI输出条件数据DO,但没有构造连接关系。
3)将已扫描函数集合SCANF中的数据流函数添加至已装配函数集合FIXEDF:
在本发明实施例中,首先扫描的是funA,dfunA已经加入已扫描函数集合SCANF。由于该数据流函数的DI项是缺省的,表示该函数是直接运行的,所以将funA直接加入已装配函数集合FIXEDF表示完成该项装载;接着扫描的是funB,将funB加入已扫描函数集合SCANF,由于该数据流函数的DI项是也缺省的,表示该函数是直接运行的,所以直接加入已装配函数集合FIXEDF表示完成该项装载;最后查找funC,发现已扫描函数集合SCANF中的funA的DO是funC的DI一部分,则构造funA到funC的有向连接,funC的DI仅完成了连接的一半,还不能加入已装配函数集合FIXEDF,则继续查找funC,发现在已扫描函数集合SCANF中的funB的DO是funC的DI的一部分,构造funB到funC的有向连接。
在具体应用中,缺省表示系统默认状态,意思与“默认”相同。
4)funC的DI完成所有的连接时,将已扫描函数集合SCANF加入已装配函数集合FIXEDF,至此函数集合DFUN中所有函数已扫描完成,且已装载函数的数量和数据流函数的数量是相等的,完成了函数执行顺序的有向图的生成。
如图5所示,本发明实施例还提供了根据如图4所示的数据流模型,所生成的函数执行顺序的有向图的结构示意图。
在本发明实施例中,上述的数据流函数dfunA、dfunB和dfunC根据上述有向图进行编译。
实施例四
如图6所示,本发明实施例还提供了一种基于C语言的语法扩展装置60,其使用了C语言的语言标准、语言组成,但扩展了其语言组成内容,并提供了一种编译方式,将其应用于数据流模型时,能够使数据流模型在多种计算机平台中进行编译,从而应用于各平台的多核处理器中。基于C语言的语法扩展装置60包括:
编程模块61,用于根据数据流模型,扩展C语言中的参数列表内容,获得初始程序;
选择标记模块62,用于标记所述初始程序中的数据流函数,获得参数表达式的输入数据条件和输出数据条件;
编译模块63,用于根据所述数据流函数选择所述初始程序的编译方式,对所述初始程序进行编译。
在一个实施例中,选择模块62包括第一标注单元。
在具体应用中,第一标注单元,用于通过pragma指令标注初始程序的代码段落,进行编译制导,并判断代码段落是否符合数据流函数的编译方式;
若代码段落符合数据流函数的编译方式,则代码段落产生数据流函数;
若代码段落不符合数据流函数的编译方式,则代码段落不产生数据流函数。
在一个实施例中,选择模块62包括第二标注单元。
在具体应用中,第二标注单元,用于通过在参数列表中加入分割符号,分割参数列表中的参数表达式,并判断参数表达式是否符合数据流函数的编译方式;
若参数表达式符合数据流函数的编译方式,则参数表达式产生数据流函数;
若参数表达式不符合数据流函数的编译方式,则参数表达式不产生数据流函数。
本发明实施例还提供一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如实施例一中所述的基于C语言的语法扩展方法中的各个步骤。
本发明实施例还提供一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如实施例一中所述的基于C语言的语法扩展方法中的各个步骤。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
工业实用性
本发明实施例所提供的基于C语言的语法扩展方法,基于标准的C语言,根据数据流模型扩展其参数表达式,获得初始程序,同时生成函数执行顺序的有向图,以使该数据流模型在经过C语言扩展后能够进行编译,最终使得数据流模型能够广泛应用于各平台的多核处理器中。

Claims (10)

  1. 一种基于C语言的语法扩展方法,其特征在于,应用于数据流模型,所述基于C语言的语法扩展方法包括:
    根据所述数据流模型,扩展C语言中的参数列表内容,获得初始程序;
    标记所述初始程序中的数据流函数,获得参数表达式的输入数据条件和输出数据条件;
    根据所述数据流函数选择所述初始程序的编译方式,对所述初始程序进行编译。
  2. 如权利要求1所述的基于C语言的语法扩展方法,其特征在于,所述标记所述初始程序中的数据流函数包括:
    通过pragma指令标注所述初始程序的代码段落,进行编译制导,并判断所述代码段落是否符合所述数据流函数的编译方式;
    若所述代码段落符合所述数据流函数的编译方式,则所述代码段落产生所述数据流函数;
    若所述代码段落不符合所述数据流函数的编译方式,则所述代码段落不产生所述数据流函数。
  3. 如权利要求1所述的基于C语言的语法扩展方法,其特征在于,所述标记所述初始程序中数据流函数还包括:
    通过在参数列表中加入分割符号,分割所述参数列表中的参数表达式,并判断所述参数表达式是否符合所述数据流函数的编译方式;
    若所述参数表达式符合所述数据流函数的编译方式,则所述参数表达式产生所述数据流函数;
    若所述参数表达式不符合所述数据流函数的编译方式,则所述参数表达式不产生所述数据流函数。
  4. 如权利要求1所述的基于C语言的语法扩展方法,其特征在于,所述根据所述数据流函数选择所述初始程序的编译方式,对所述初始程序进行编译包括:
    根据所述数据流函数生成函数执行顺序的有向图,并根据所述有向图对所述初始程序进行编译。
  5. 如权利要求4所述的基于C语言的语法扩展方法,其特征在于,所述根据所述数据流函数生成函数执行顺序的有向图包括:
    设置函数集合、已扫描函数集合和已装配函数集合;
    遍历所述初始程序中的数据流函数,并将所述数据流函数放入所述函数集合中;
    遍历所述函数集合,对每一个所述函数集合中的数据流函数,构造激活输入条件数据和输出条件数据,并将已经构造激活的数据流函数添加到所述已扫描函数集合;
    遍历所述已扫描函数集合,在具有输入输出条件数据关系的两个数据流函数之间构造有向连接,并将构造了全部输入的有向连接的数据流函数添加到所述已装配函数集合;
    所述已装配函数集合中的元素数量等于所述初始程序中数据流函数的数量时,完成所述有向图;
    所述已装配函数集合中的元素不等于所述初始程序中数据流函数的个数时,提示编译错误。
  6. 如权利要求5所述的基于C语言的语法扩展方法,其特征在于,所述在具有输入输出条件数据关系的两个数据流函数之间构造有向连接,并将构造了全部输入的有向连接的数据流函数添加到所述已装配函数集合包括:
    将所述已扫描函数集合的一个数据流函数作为第一数据流函数,将在所述已扫描函数集合中的另一个数据流函数作为第二数据流函数;
    所述第一数据流函数的输出条件数据,为所述第二数据流函数的输入条件数据时,构造所述第一数据流函数的输出条件数据到所述第二数据流函数的输入条件数据的有向连接;
    所述第二数据流函数的输出条件数据,为所述第一数据流函数的输入条件数据时,构造所述第二数据流函数的输出条件数据到所述第一数据流函数的输入条件数据的有向连接;
    所述第一数据流函数或所述第二数据流函数的所有输入条件数据均与对应的输出条件数据构造了有向连接时,将所述第一数据流函数或所述第二数据流函数添加到所述已装配函数集合。
  7. 一种基于C语言的语法扩展装置,其特征在于,应用于数据流模型,所述基于C语言扩展的编程装置包括:
    编程模块,用于根据所述数据流模型,扩展C语言中的参数列表内容,获得初始程序;
    选择标记模块,用于标记所述初始程序中的数据流函数,获得参数表达式的输入数据条件和输出数据条件;
    编译模块,用于根据所述数据流函数选择所述初始程序的编译方式,对所述初始程序进行编译。
  8. 如权利要求7所述的基于C语言的语法扩展装置,其特征在于,所述选择标记模块包括第一标注单元;
    所述第一标注单元,用于通过pragma指令标注所述初始程序的代码段落,进行编译制导,并判断所述代码段落是否符合所述数据流函数的编译方式;
    若所述代码段落符合所述数据流函数的编译方式,则所述代码段落产生所述数据流函数;
    若所述代码段落不符合所述数据流函数的编译方式,则所述代码段落不产生所述数据流函数。
  9. 一种终端设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至6任一项所述的基于C语言的语法扩展方法中的各个步骤。
  10. 一种存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至6任一项所述的基于C语言的语法扩展方法中的各个步骤。
PCT/CN2018/120326 2018-09-19 2018-12-11 一种基于c语言的语法扩展方法、装置及终端设备 Ceased WO2020056937A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811093285.2A CN109358846B (zh) 2018-09-19 2018-09-19 一种基于c语言的语法扩展方法、装置及终端设备
CN201811093285.2 2018-09-19

Publications (1)

Publication Number Publication Date
WO2020056937A1 true WO2020056937A1 (zh) 2020-03-26

Family

ID=65351234

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/120326 Ceased WO2020056937A1 (zh) 2018-09-19 2018-12-11 一种基于c语言的语法扩展方法、装置及终端设备

Country Status (2)

Country Link
CN (1) CN109358846B (zh)
WO (1) WO2020056937A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100088686A1 (en) * 2008-10-06 2010-04-08 Microsoft Corporation Programming language with extensible syntax
CN101944040A (zh) * 2010-09-15 2011-01-12 复旦大学 一种基于谓词的自动并行优化方法
CN103314360A (zh) * 2012-01-13 2013-09-18 松下电器产业株式会社 数据依赖解析辅助装置、数据依赖解析辅助程序以及数据依赖解析辅助方法
US20140019949A1 (en) * 2012-07-10 2014-01-16 Loring Craymer Method and System for Automated Improvement of Parallelism in Program Compilation
CN107341010A (zh) * 2017-06-26 2017-11-10 华中科技大学 一种C/C++与COStream混合编程方法和可视化编译系统
CN107463421A (zh) * 2017-07-14 2017-12-12 清华大学 一种静态流程模型的编译执行方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8713514B2 (en) * 2011-05-06 2014-04-29 Microsoft Corporation Heterogeneous language data typing without executable regeneration
CN106155755B (zh) * 2015-06-03 2020-06-23 上海红神信息技术有限公司 程序编译方法和程序编译器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100088686A1 (en) * 2008-10-06 2010-04-08 Microsoft Corporation Programming language with extensible syntax
CN101944040A (zh) * 2010-09-15 2011-01-12 复旦大学 一种基于谓词的自动并行优化方法
CN103314360A (zh) * 2012-01-13 2013-09-18 松下电器产业株式会社 数据依赖解析辅助装置、数据依赖解析辅助程序以及数据依赖解析辅助方法
US20140019949A1 (en) * 2012-07-10 2014-01-16 Loring Craymer Method and System for Automated Improvement of Parallelism in Program Compilation
CN107341010A (zh) * 2017-06-26 2017-11-10 华中科技大学 一种C/C++与COStream混合编程方法和可视化编译系统
CN107463421A (zh) * 2017-07-14 2017-12-12 清华大学 一种静态流程模型的编译执行方法及系统

Also Published As

Publication number Publication date
CN109358846A (zh) 2019-02-19
CN109358846B (zh) 2019-09-27

Similar Documents

Publication Publication Date Title
CN1534456B (zh) 一种可扩展序列化引擎的计算系统及方法
CN103718155B (zh) 运行时系统
CN102696012B (zh) 从代码使用中创建所推断的符号
TWI556170B (zh) 將作業系統之原始應用程式介面投射至其它程式語言(二)
US20180136914A1 (en) Programming Language with Extensions using a Strict Meta-Model
CN111796831A (zh) 一种多芯片兼容的编译方法和装置
CN102027460B (zh) 动态声明性应用程序描述
CN108037913B (zh) xUML4MC模型到MSVL语言程序的转换方法、计算机可读存储介质
CN100511139C (zh) 计算机软件系统基于xml和脚本语言应用程序开发运行方法
JP5592591B2 (ja) アイテム間のリレーションシップの生成、およびアイテムのナビゲートをするためのシステム
Panayiotou et al. SmAuto: A domain-specific-language for application development in smart environments
Moin et al. ML-Quadrat & DriotData: a model-driven engineering tool and a low-code platform for smart IoT services
JP2009169864A (ja) コンパイル方法およびコンパイルプログラム
Wagelaar et al. Platform ontologies for the model-driven architecture
Daniel et al. Model-driven software development
Groner Learning JavaScript Data Structures and Algorithms: Write complex and powerful JavaScript code using the latest ECMAScript
CN109358846B (zh) 一种基于c语言的语法扩展方法、装置及终端设备
US20050177788A1 (en) Text to XML transformer and method
Freeman Understanding typescript
Gandhi et al. Lightening the cognitive load of shell programming
Höver et al. A domain specific language for describing s-bpm processes
US20070192083A1 (en) Linguistic structure for data flow diagrams
Hristozov et al. Modeling aspects of dynamically reconfigurable system of systems
CN102023866A (zh) 基于Google Maps JavaScript API的地图控件及其生成方法
US7917893B2 (en) Using a system of annotations to generate views and adapters

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18934489

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 05.07.2021)

122 Ep: pct application non-entry in european phase

Ref document number: 18934489

Country of ref document: EP

Kind code of ref document: A1