CN110825384A - ST language compiling method, system and compiler based on LLVM - Google Patents
ST language compiling method, system and compiler based on LLVM Download PDFInfo
- Publication number
- CN110825384A CN110825384A CN201911029015.XA CN201911029015A CN110825384A CN 110825384 A CN110825384 A CN 110825384A CN 201911029015 A CN201911029015 A CN 201911029015A CN 110825384 A CN110825384 A CN 110825384A
- Authority
- CN
- China
- Prior art keywords
- llvm
- language
- syntactic
- syntax tree
- abstract syntax
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000004458 analytical method Methods 0.000 claims abstract description 70
- 230000014509 gene expression Effects 0.000 claims abstract description 46
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 230000003068 static effect Effects 0.000 claims description 11
- 238000013459 approach Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 12
- 238000005457 optimization Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013433 optimization analysis Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
- 230000000007 visual effect Effects 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/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/436—Semantic checking
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
The invention discloses a method, a system and a compiler for ST language compilation based on LLVM, wherein the method comprises the following steps: acquiring a source code of a structured text ST language; carrying out lexical analysis on a source code of a structured text ST language according to lexical rules defined by IEC61131-3 to obtain a symbol stream; carrying out syntactic analysis on the symbol stream according to a syntactic expression defined by IEC61131-3 to obtain an abstract syntactic tree representing a program structure corresponding to a source code of ST language, wherein the abstract syntactic tree takes the expression as a node; performing semantic analysis on the abstract syntax tree to obtain an abstract syntax tree with type identification; and converting the abstract syntax tree with the type identification to generate LLVM IR. And converting the ST language code into LLVM IR, wherein the LLVM IR is independent of the ST language and a target platform, can be optimized by using an LLVM optimizer, and finally generates a machine code aiming at the target platform through an LLVM back end.
Description
Technical Field
The invention belongs to the technical field of language compilation, and particularly relates to an ST language compilation method, a compilation system and a compiler based on LLVM.
Background
The ST language is one of PLC programming languages in IEC61131-3 standard, and is suitable for writing PLC programs with complex structures in large and medium PLC systems.
Programmable controllers (PLC) are designed and manufactured for industrial control applications, the logic control of which is implemented by means of a PLC programming language, the international standard IEC61131-3 defines 5 PLC programming languages: ladder Diagram (LD), Function Block Diagram (FBD), sequential function diagram (SFC), Instruction List (IL) and Structured Text (ST). The first three are visual programming languages, and are characterized by simplicity and intuition, wherein the ladder diagram is similar to the traditional relay control diagram, and a user can write a ladder diagram program without having professional computer programming knowledge, so that the application of the PLC in production practice is greatly promoted; the instruction list and the ST language belong to a text programming language, the instruction list is similar to an assembly language, and a corresponding relation exists between the instruction list and the ladder diagram; the ST language is similar to the C language and the PASCAL language, is suitable for writing complex programs and is more in line with the use habit of programmers.
The PLC program has two operation modes of interpretation execution and compiling execution. The advantage of interpretation execution is that no target file is generated, so the platform is irrelevant, the program operation depends on a bottom-layer interpreter, the interpreter has functions similar to a virtual machine, the difference of a hardware platform is shielded, and the interpreter is responsible for analyzing and executing the program language, but the interpretation execution efficiency is low, and if the program structure is complex or the real-time requirement of PLC control is high, the interpretation execution mode cannot meet the performance requirement of the control. The compiling and executing need to realize a PLC language compiling system, and the compiling system compiles the PLC program into machine codes which can be executed by a specific hardware platform, so that the running speed is high. The independent implementation of the compiling system is complex, meanwhile, the traditional compiling system has poor framework reusability, the front end and the rear end are coupled, and when a hardware platform for running a PLC program is changed, the compiling system needs to be reconstructed; the method can also realize PLC compiling execution by firstly converting the PLC program into an intermediate language, then converting the intermediate language into a high-level programming language (such as C language), and finally compiling and generating machine codes by using the GCC compiler, but the conversion process of the PLC program into the C language is increased, and the compiling efficiency is reduced.
How to combine the advantages of two execution modes of a PLC program, the compiling and executing efficiency of the PLC is improved, and meanwhile, a low-coupling high-multiplexing compiling method is constructed, and the method is a subject which needs to be considered and solved by PLC research and development and manufacturers.
The prior art has the following defects: traditional compiler architectures include front-end (Frontend), Optimizer (Optimizer), and back-end (Backend). Wherein the front end generates an intermediate code (IR); the optimizer is responsible for optimizing the intermediate code; the back end is responsible for generating machine code. The front end and the back end of the traditional compiler architecture are coupled together, the design of the optimizer also depends on an intermediate language and a specific hardware platform, the universality is lacked, and when a new programming language and a new hardware device need to be supported, the front end and the back end are realized again due to the lack of the universality of the intermediate language.
Disclosure of Invention
The purpose is as follows: aiming at the ST language, the invention provides a compiler front end (Frontend) which converts ST language codes into LLVM IR (Low Level Virtual Machine) bottom layer Virtual machines.
The technical scheme is as follows: in order to solve the technical problems, the technical scheme adopted by the invention is as follows:
in a first aspect, the present invention provides a ST language compiling method based on LLVM, including:
acquiring a source code of a structured text ST language;
carrying out lexical analysis on a source code of a structured text ST language according to lexical rules defined by IEC61131-3 to obtain a symbol stream;
based on the symbol stream, carrying out syntactic analysis on the symbol stream according to a syntactic expression defined by IEC61131-3 to obtain an abstract syntactic tree representing a program structure corresponding to a source code of ST language, wherein the abstract syntactic tree takes the expression as a node;
performing semantic analysis on the abstract syntax tree based on the abstract syntax tree to obtain an abstract syntax tree with type identification;
and converting the abstract syntax tree with the type identifier based on the abstract syntax tree with the type identifier to generate the LLVM IR.
According to the ST language compiling method based on the LLVM, the symbolic stream comprises keywords, identifiers, literal quantities (including numbers and character strings) and special symbols (such as plus signs and equal signs).
In the embodiment of the above scheme, the syntax expression includes an assignment expression and a bracket expression;
the parsing employs a context-free parsing approach.
In the embodiment of the above scheme, the semantic analysis includes static semantic analysis, and the static semantic analysis includes matching of declarations and types and conversion of types;
through semantic analysis, each expression node of the abstract syntax tree identifies a type.
The abstract syntax tree with type identification comprises: type nodes, expression nodes, statement nodes and declaration nodes.
In a second aspect, the present invention provides a compiling system comprising:
an acquisition module to: acquiring a source code of a structured text ST language;
a lexical analysis module to: carrying out lexical analysis on a source code of a structured text ST language according to lexical rules defined by IEC61131-3 to obtain a symbol stream;
a parsing module to: carrying out syntactic analysis on the symbol stream according to a syntactic expression defined by IEC61131-3 to obtain an abstract syntactic tree representing a program structure corresponding to a source code of ST language, wherein the abstract syntactic tree takes the expression as a node;
a semantic analysis module to: performing semantic analysis on the abstract syntax tree to obtain an abstract syntax tree with type identification;
an LLVM IR conversion module to: and converting the abstract syntax tree with the type identifier to generate LLVM IR.
In an embodiment of the above scheme, the symbol stream comprises a key, an identifier, a literal amount, and a special symbol.
The grammar expression comprises an assignment expression and a bracket expression;
the parsing employs a context-free parsing approach.
In the embodiment of the above scheme, the semantic analysis includes static semantic analysis, and the static semantic analysis includes matching of declarations and types and conversion of types;
through semantic analysis, each expression node of the abstract syntax tree identifies a type.
In a third aspect, the present invention provides a compiler, including the compiling system (i.e. the compiling front end), further including:
the LLVM optimizer is used for optimizing the LLVM IR to obtain the optimized LLVM IR;
and the LLVM back end is used for generating target machine codes according to the target platform based on the optimized LLVM IR.
Has the advantages that: aiming at ST language, the invention provides a compiler front end (front) which converts ST language codes into LLVM IR, wherein the LLVM IR is independent of ST language and a target platform, can be optimized by using an LLVM optimizer, and finally generates machine codes aiming at the target platform through an LLVM back end. The compiling method adopts an LLVM compiler architecture, realizes three-section separation of the compiler, facilitates the transplantation and expansion of the back end, and can improve the compiling efficiency of ST language. Has the following advantages:
1. the compiler adopts a layered structure, the front end, the optimizer and the back end are decoupled in function, and the front end is concentrated in the analysis of the ST source program.
2. The ST language source program is converted into the LLVM IR by the front end, so that universality is strong, and subsequent LLVM optimizer and LLVM back-end processing are facilitated.
3. The front-end function is extensible, and other programming languages defined by IEC61131-3 can also process the source program by using similar processes and finally convert the source program into LLVM IR.
4. The optimizer takes LLVM IR as input, is completely irrelevant to ST language of a front end, can multiplex the existing optimization technology, and opens an interface to conveniently realize special optimization processing.
5. The back end directly generates machine codes according to the target platform, and the transportability is good.
Drawings
FIG. 1 is a flow chart illustrating the implementation of the ST language compiling method based on LLVM according to one embodiment of the present invention;
FIG. 2 is a block diagram of a compilation system according to one embodiment of the present invention;
FIG. 3 is a block diagram of a compiler, according to one embodiment of the present invention;
fig. 4 is a diagram of a PLC system to which an embodiment of the present invention is applied.
Detailed Description
The following detailed description of the embodiments of the present invention will be provided with reference to the drawings and examples, so that how to apply the technical means to solve the technical problems and achieve the technical effects can be fully understood and implemented. It should be noted that, as long as there is no conflict, the embodiments and the features of the embodiments of the present invention may be combined with each other, and the technical solutions formed are within the scope of the present invention.
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the embodiments of the invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without some of these specific details or with other methods described herein.
Additionally, the steps illustrated in the flow charts of the figures may be performed in a computer system such as a set of computer-executable instructions and, although a logical order is illustrated in the flow charts, in some cases, the steps illustrated or described may be performed in an order different than here.
Example 1
Fig. 1 shows a schematic implementation flow diagram of the ST language compiling method based on LLVM provided in this embodiment.
The ST language compiling method based on LLVM provided by this embodiment includes:
acquiring a source code of a structured text ST language;
carrying out lexical analysis on a source code of a structured text ST language according to lexical rules defined by IEC61131-3 to obtain a symbol stream;
based on the symbol stream, carrying out syntactic analysis on the symbol stream according to a syntactic expression defined by IEC61131-3 to obtain an abstract syntactic tree representing a program structure corresponding to a source code of ST language, wherein the abstract syntactic tree takes the expression as a node;
performing semantic analysis on the abstract syntax tree based on the abstract syntax tree to obtain an abstract syntax tree with type identification;
and converting the abstract syntax tree with the type identifier based on the abstract syntax tree with the type identifier to generate the LLVM IR.
According to the ST language compiling method based on the LLVM, the symbolic stream comprises keywords, identifiers, literal quantities (including numbers and character strings) and special symbols (such as plus signs and equal signs).
In the embodiment of the above scheme, the syntax expression includes an assignment expression and a bracket expression;
the parsing employs a context-free parsing approach.
In the embodiment of the above scheme, the semantic analysis includes static semantic analysis, and the static semantic analysis includes matching of declarations and types and conversion of types;
through semantic analysis, each expression node of the abstract syntax tree identifies a type.
In an embodiment of the foregoing solution, the abstract syntax tree with type identifier includes: type nodes, expression nodes, statement nodes and declaration nodes. The LLVM IR generation work is realized in all nodes of the abstract syntax tree with the type identifier, the nodes can be converted into the LLVM IR by using an auxiliary template type IR Builder which is provided by the LLVM and used for generating the LLVM IR in the syntax tree node class, the whole syntax tree is traversed, and finally the LLVM IR corresponding to the abstract syntax tree with the type identifier is generated.
Example 2
Fig. 2 shows a block diagram of the LLVM-based ST language compiling system provided in the present embodiment.
A compilation system, comprising:
an acquisition module to: acquiring a source code of a structured text ST language;
a lexical analysis module to: carrying out lexical analysis on a source code of a structured text ST language according to lexical rules defined by IEC61131-3 to obtain a symbol stream;
a parsing module to: carrying out syntactic analysis on the symbol stream according to a syntactic expression defined by IEC61131-3 to obtain an abstract syntactic tree representing a program structure corresponding to a source code of ST language, wherein the abstract syntactic tree takes the expression as a node;
a semantic analysis module to: performing semantic analysis on the abstract syntax tree to obtain an abstract syntax tree with type identification;
an LLVM IR conversion module to: and converting the abstract syntax tree with the type identifier to generate LLVM IR.
In an embodiment of the above scheme, the symbol stream comprises a key, an identifier, a literal amount, and a special symbol.
The grammar expression comprises an assignment expression and a bracket expression;
the parsing employs a context-free parsing approach.
In the embodiment of the above scheme, the semantic analysis includes static semantic analysis, and the static semantic analysis includes matching of declarations and types and conversion of types;
through semantic analysis, each expression node of the abstract syntax tree identifies a type.
In some embodiments, the schematic block diagram of the front end of the compiler proposed by the present invention is shown in fig. 2. The input is ST language PLC program text meeting IEC61131-3 standard, and the specific functions of the front-end sub-modules are as follows:
a lexical analysis module: scanning ST language source codes, reading characters from left to right one by one from front to back, decomposing a source program into symbols (token) one by one according to lexical rules defined by IEC61131-3, wherein the symbols (token) mainly comprise keywords, identifiers, word sizes (including numbers, character strings and the like) and special symbols (such as plus signs and equal signs) and are used as input of subsequent syntactic analysis.
A syntax analysis module: reading in the symbol stream obtained in the lexical analysis stage, and obtaining an abstract syntax tree capable of representing a program structure by adopting a context-free syntax analysis means according to syntax expressions (such as assignment expressions, parenthesis expressions and the like) defined by IEC61131-3, wherein the syntax trees take the expressions as nodes.
A semantic analysis module: and performing semantic analysis on the abstract syntax tree obtained by the syntax analysis. Semantic analysis mainly refers to static semantic analysis, including matching of declarations and types and conversion of types. Through the semantic analysis submodule, each expression node of the syntax tree identifies a type, namely the abstract syntax tree with the type identification.
LLVM IR conversion module: LLVM IR is generated by means of an abstract syntax tree with type flags.
Because the front end outputs the LLVM IR, the optimization analysis technology provided by the LLVM optimizer can be multiplexed, and finally, the LLVM back end generates corresponding machine codes according to the target platform according to the interface extension optimization method.
Example 3
A compiler, comprising:
the compiling system (namely a compiling front end) is used for completing lexical analysis, syntactic analysis and semantic analysis and generating machine-independent LLVM IR;
the LLVM optimizer is used for optimizing the LLVM IR to obtain the optimized LLVM IR;
and the LLVM back end is used for generating target machine codes according to the target platform based on the optimized LLVM IR.
In some embodiments, an LLVM-based compiler is shown in fig. 3, including a front end (Frontend), an underlying virtual machine Optimizer (LLVM Optimizer), and an underlying virtual machine Backend (LLVM Backend). The front end is responsible for lexical analysis, syntactic analysis and semantic analysis, a Source program (Source Code) finally generates a bottom layer virtual machine intermediate Code (LLVMIR), an LLVM Optimizer optimizes the LLVM IR, and the LLVM Back finally generates a machine Code of a specific platform. The object processed by the LLVM Optimizer is a unified LLVM IR, and the method has universality, and no matter whether a new programming language is supported or a new hardware platform is supported, the optimization stage is not required to be modified. Compared with a compiler with a traditional architecture, the front end, the optimization and the back end of the compiler provided by the invention are structurally decoupled, the expansion is convenient, if IEC61131-3 and other PLC programming languages need to be compiled, only the corresponding front end needs to be realized, the front end uniformly outputs LLVM IR, the LLVM Optimizer can directly multiplex, and then the back end of a corresponding platform is selected to generate machine codes.
The PLC system is mostly designed based on an upper computer mode and a lower computer mode. The upper computer generally adopts a computer to complete the functions of system configuration, configuration and PLC program compiling; the lower computer generally adopts an embedded system and is responsible for scanning, communicating and executing the PLC program. In some embodiments, the LLVM-based compiler provided by the present invention decomposes the function of the compiler in the upper computer into three modules, namely, a front-end module, a bottom-layer virtual machine optimizer module and a bottom-layer virtual machine back-end module. The whole PLC system is shown in fig. 4.
The front end of the compiler completes lexical analysis, syntactic analysis and semantic analysis to generate machine-independent LLVM IR; the optimizer is responsible for LLVM IR optimization; the back end is responsible for generating target machine codes, and different bottom layer virtual machine back ends can be selected according to different hardware machine platform configurations in consideration of the cross-platform problem.
The invention has high compiling efficiency, and the execution speed is 5 to 10 times of the interpretation execution speed.
According to the invention, through the modular design, the front end, the optimizer and the back end of the compiler are decoupled in a separating way, compared with the traditional compiler, the development difficulty is reduced, the development period is shortened, the heavy work that the compiler needs to be developed repeatedly every time a hardware platform is replaced in the prior art is avoided, and the economic benefit is higher.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
The above description is only of the preferred embodiments of the present invention, and it should be noted that: it will be apparent to those skilled in the art that various modifications and adaptations can be made without departing from the principles of the invention and these are intended to be within the scope of the invention.
Claims (10)
1. An ST language compiling method based on LLVM is characterized by comprising the following steps:
acquiring a source code of a structured text ST language;
carrying out lexical analysis on a source code of a structured text ST language according to lexical rules defined by IEC61131-3 to obtain a symbol stream;
based on the symbol stream, carrying out syntactic analysis on the symbol stream according to a syntactic expression defined by IEC61131-3 to obtain an abstract syntactic tree representing a program structure corresponding to a source code of ST language, wherein the abstract syntactic tree takes the expression as a node;
performing semantic analysis on the abstract syntax tree based on the abstract syntax tree to obtain an abstract syntax tree with type identification;
and converting the abstract syntax tree with the type identifier based on the abstract syntax tree with the type identifier to generate the LLVM IR.
2. The LLVM-based ST language compilation method of claim 1, wherein the symbol stream comprises keywords, identifiers, literal amounts, and special symbols.
3. The LLVM-based ST language compilation method of claim 1, wherein the syntactic expressions include valuation expressions, bracket expressions;
the parsing employs a context-free parsing approach.
4. The LLVM-based ST language compilation method of claim 1, wherein said semantic analysis comprises static semantic analysis comprising matching of declarations and types, conversion of types;
through semantic analysis, each expression node of the abstract syntax tree identifies a type.
5. The LLVM-based ST language compilation method according to claim 1, characterized in that said abstract syntax tree with type identification comprises: type nodes, expression nodes, statement nodes and declaration nodes.
6. A compilation system, comprising:
an acquisition module to: acquiring a source code of a structured text ST language;
a lexical analysis module to: carrying out lexical analysis on a source code of a structured text ST language according to lexical rules defined by IEC61131-3 to obtain a symbol stream;
a parsing module to: carrying out syntactic analysis on the symbol stream according to a syntactic expression defined by IEC61131-3 to obtain an abstract syntactic tree representing a program structure corresponding to a source code of ST language, wherein the abstract syntactic tree takes the expression as a node;
a semantic analysis module to: performing semantic analysis on the abstract syntax tree to obtain an abstract syntax tree with type identification;
an LLVM IR conversion module to: and converting the abstract syntax tree with the type identifier to generate LLVM IR.
7. The compilation system of claim 6, wherein the symbol stream comprises keywords, identifiers, literal amounts, and special symbols.
8. The compilation system of claim 6, wherein the syntactic expressions include valuation expressions, bracket expressions;
the parsing employs a context-free parsing approach.
9. The compilation system of claim 6, wherein the semantic analysis comprises static semantic analysis comprising matching of declarations and types, conversion of types;
through semantic analysis, each expression node of the abstract syntax tree identifies a type.
10. A compiler, comprising the compiling system of any one of claims 6 to 9, and further comprising:
the LLVM optimizer is used for optimizing the LLVM IR to obtain the optimized LLVM IR;
and the LLVM back end is used for generating target machine codes according to the target platform based on the optimized LLVM IR.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911029015.XA CN110825384A (en) | 2019-10-28 | 2019-10-28 | ST language compiling method, system and compiler based on LLVM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911029015.XA CN110825384A (en) | 2019-10-28 | 2019-10-28 | ST language compiling method, system and compiler based on LLVM |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110825384A true CN110825384A (en) | 2020-02-21 |
Family
ID=69550714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911029015.XA Pending CN110825384A (en) | 2019-10-28 | 2019-10-28 | ST language compiling method, system and compiler based on LLVM |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825384A (en) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488154A (en) * | 2020-04-23 | 2020-08-04 | 北京东土科技股份有限公司 | ST language source code compiling method, device, computer equipment and medium |
CN111522556A (en) * | 2020-04-29 | 2020-08-11 | 铁道警察学院 | Design method of block cipher programming language and compiling infrastructure |
CN111580825A (en) * | 2020-04-28 | 2020-08-25 | 中国科学院软件研究所 | Compiling method and system for mechanical arm program development programming language |
CN111639501A (en) * | 2020-05-04 | 2020-09-08 | 国网浙江省电力有限公司 | Power grid service micro-service combination method based on AMSL |
CN111722849A (en) * | 2020-07-17 | 2020-09-29 | 思客云(北京)软件技术有限公司 | Method, system and device for realizing virtual compiling of JAVA language |
CN111767055A (en) * | 2020-06-16 | 2020-10-13 | 合肥本源量子计算科技有限责任公司 | Quantum program compiling method and device |
CN111813381A (en) * | 2020-06-22 | 2020-10-23 | 北京字节跳动网络技术有限公司 | Method, device, medium and electronic equipment for generating executable program in cross-platform mode |
CN111880785A (en) * | 2020-06-23 | 2020-11-03 | 北京三快在线科技有限公司 | Program code conversion method and device and electronic equipment |
CN111913739A (en) * | 2020-07-30 | 2020-11-10 | 北京数立得科技有限公司 | Service interface primitive defining method and system |
CN112269566A (en) * | 2020-11-03 | 2021-01-26 | 支付宝(杭州)信息技术有限公司 | Script generation processing method, device, equipment and system |
CN112363727A (en) * | 2020-11-10 | 2021-02-12 | 中国平安人寿保险股份有限公司 | JAVA conversion method and device of SQL (structured query language) code, computer equipment and storage medium |
CN112558984A (en) * | 2020-12-29 | 2021-03-26 | Oppo广东移动通信有限公司 | Code compiling method and device, electronic equipment and server |
CN112835323A (en) * | 2020-12-31 | 2021-05-25 | 深圳市雷赛控制技术有限公司 | Programmable logic control language compiling method and device |
CN113110874A (en) * | 2021-04-14 | 2021-07-13 | 北京沃东天骏信息技术有限公司 | Method and device for generating code structure diagram |
CN113485182A (en) * | 2021-06-30 | 2021-10-08 | 中冶华天工程技术有限公司 | Method for automatically generating material yard belt flow control program |
CN113641361A (en) * | 2021-06-28 | 2021-11-12 | 武汉极意网络科技有限公司 | Clang-based code hiding method and device |
CN114237573A (en) * | 2021-12-20 | 2022-03-25 | 中国科学院计算技术研究所 | Method and system for automatically constructing back-end code of compiler |
CN114721667A (en) * | 2022-04-21 | 2022-07-08 | 北京万昇智能科技有限公司 | Method and device for compiling ST code into WebAssembly code |
CN116301906A (en) * | 2023-05-22 | 2023-06-23 | 安徽华可智能科技有限公司 | Modularized C language universal compiler |
CN116360788A (en) * | 2023-02-17 | 2023-06-30 | 深圳市亿维自动化技术有限公司 | Compiling method, compiler and electronic device for structured text programming language |
CN116661800A (en) * | 2023-06-06 | 2023-08-29 | 广州正是网络科技有限公司 | Shader cross compiling method, system and storage medium based on HLSL language |
CN116974573A (en) * | 2023-07-10 | 2023-10-31 | 中国人民解放军陆军工程大学 | Compiling method for application program of fully distributed intelligent building system |
WO2024041301A1 (en) * | 2022-08-26 | 2024-02-29 | 支付宝(杭州)信息技术有限公司 | Method and apparatus for generating unified abstract syntax tree, and program analysis method and apparatus |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106371887A (en) * | 2016-11-08 | 2017-02-01 | 西安电子科技大学 | System and method for MSVL compiling |
KR101722856B1 (en) * | 2015-10-21 | 2017-04-04 | 엘에스산전 주식회사 | Apparatus for test plc using programming language |
CN109254776A (en) * | 2018-09-29 | 2019-01-22 | 深圳市雷赛控制技术有限公司 | Multilingual code compiling method and compiler |
CN110018829A (en) * | 2019-04-01 | 2019-07-16 | 北京东方国信科技股份有限公司 | Improve the method and device of PL/SQL language interpreter execution efficiency |
CN110149800A (en) * | 2015-04-07 | 2019-08-20 | 华为技术有限公司 | It is a kind of for handling the device of abstract syntax tree associated with the source code of source program |
-
2019
- 2019-10-28 CN CN201911029015.XA patent/CN110825384A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110149800A (en) * | 2015-04-07 | 2019-08-20 | 华为技术有限公司 | It is a kind of for handling the device of abstract syntax tree associated with the source code of source program |
KR101722856B1 (en) * | 2015-10-21 | 2017-04-04 | 엘에스산전 주식회사 | Apparatus for test plc using programming language |
CN106371887A (en) * | 2016-11-08 | 2017-02-01 | 西安电子科技大学 | System and method for MSVL compiling |
CN109254776A (en) * | 2018-09-29 | 2019-01-22 | 深圳市雷赛控制技术有限公司 | Multilingual code compiling method and compiler |
CN110018829A (en) * | 2019-04-01 | 2019-07-16 | 北京东方国信科技股份有限公司 | Improve the method and device of PL/SQL language interpreter execution efficiency |
Non-Patent Citations (1)
Title |
---|
高进: "软PLC运行系统的研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488154B (en) * | 2020-04-23 | 2024-01-12 | 北京东土科技股份有限公司 | ST language source code compiling method, device, computer equipment and medium |
CN111488154A (en) * | 2020-04-23 | 2020-08-04 | 北京东土科技股份有限公司 | ST language source code compiling method, device, computer equipment and medium |
CN111580825A (en) * | 2020-04-28 | 2020-08-25 | 中国科学院软件研究所 | Compiling method and system for mechanical arm program development programming language |
CN111522556B (en) * | 2020-04-29 | 2023-11-24 | 铁道警察学院 | Block cipher programming language and compiling infrastructure design method |
CN111522556A (en) * | 2020-04-29 | 2020-08-11 | 铁道警察学院 | Design method of block cipher programming language and compiling infrastructure |
CN111639501A (en) * | 2020-05-04 | 2020-09-08 | 国网浙江省电力有限公司 | Power grid service micro-service combination method based on AMSL |
CN111767055A (en) * | 2020-06-16 | 2020-10-13 | 合肥本源量子计算科技有限责任公司 | Quantum program compiling method and device |
CN111813381A (en) * | 2020-06-22 | 2020-10-23 | 北京字节跳动网络技术有限公司 | Method, device, medium and electronic equipment for generating executable program in cross-platform mode |
CN111880785A (en) * | 2020-06-23 | 2020-11-03 | 北京三快在线科技有限公司 | Program code conversion method and device and electronic equipment |
CN111722849A (en) * | 2020-07-17 | 2020-09-29 | 思客云(北京)软件技术有限公司 | Method, system and device for realizing virtual compiling of JAVA language |
CN111913739A (en) * | 2020-07-30 | 2020-11-10 | 北京数立得科技有限公司 | Service interface primitive defining method and system |
CN111913739B (en) * | 2020-07-30 | 2023-09-12 | 北京数立得科技有限公司 | Service interface primitive defining method and system |
CN112269566A (en) * | 2020-11-03 | 2021-01-26 | 支付宝(杭州)信息技术有限公司 | Script generation processing method, device, equipment and system |
CN112363727A (en) * | 2020-11-10 | 2021-02-12 | 中国平安人寿保险股份有限公司 | JAVA conversion method and device of SQL (structured query language) code, computer equipment and storage medium |
CN112558984A (en) * | 2020-12-29 | 2021-03-26 | Oppo广东移动通信有限公司 | Code compiling method and device, electronic equipment and server |
CN112835323B (en) * | 2020-12-31 | 2022-05-17 | 深圳市雷赛控制技术有限公司 | Programmable logic control language compiling method and device |
CN112835323A (en) * | 2020-12-31 | 2021-05-25 | 深圳市雷赛控制技术有限公司 | Programmable logic control language compiling method and device |
CN113110874A (en) * | 2021-04-14 | 2021-07-13 | 北京沃东天骏信息技术有限公司 | Method and device for generating code structure diagram |
CN113110874B (en) * | 2021-04-14 | 2024-05-17 | 北京沃东天骏信息技术有限公司 | Method and apparatus for generating code structure diagram |
CN113641361A (en) * | 2021-06-28 | 2021-11-12 | 武汉极意网络科技有限公司 | Clang-based code hiding method and device |
CN113641361B (en) * | 2021-06-28 | 2024-01-26 | 武汉极意网络科技有限公司 | Code hiding method and device based on Clang |
CN113485182A (en) * | 2021-06-30 | 2021-10-08 | 中冶华天工程技术有限公司 | Method for automatically generating material yard belt flow control program |
CN114237573A (en) * | 2021-12-20 | 2022-03-25 | 中国科学院计算技术研究所 | Method and system for automatically constructing back-end code of compiler |
CN114721667A (en) * | 2022-04-21 | 2022-07-08 | 北京万昇智能科技有限公司 | Method and device for compiling ST code into WebAssembly code |
WO2024041301A1 (en) * | 2022-08-26 | 2024-02-29 | 支付宝(杭州)信息技术有限公司 | Method and apparatus for generating unified abstract syntax tree, and program analysis method and apparatus |
CN116360788A (en) * | 2023-02-17 | 2023-06-30 | 深圳市亿维自动化技术有限公司 | Compiling method, compiler and electronic device for structured text programming language |
CN116301906A (en) * | 2023-05-22 | 2023-06-23 | 安徽华可智能科技有限公司 | Modularized C language universal compiler |
CN116661800A (en) * | 2023-06-06 | 2023-08-29 | 广州正是网络科技有限公司 | Shader cross compiling method, system and storage medium based on HLSL language |
CN116974573A (en) * | 2023-07-10 | 2023-10-31 | 中国人民解放军陆军工程大学 | Compiling method for application program of fully distributed intelligent building system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825384A (en) | ST language compiling method, system and compiler based on LLVM | |
CN110187885B (en) | Intermediate code generation method and device for quantum program compiling | |
CN109254776B (en) | Multi-language code compiling method and compiler | |
US8453126B1 (en) | System and method for converting base SAS runtime macro language scripts to JAVA target language | |
US6516461B1 (en) | Source code translating method, recording medium containing source code translator program, and source code translator device | |
CN103077064B (en) | A kind of parsing also executive language method and interpreting means | |
CN108874396A (en) | The cross-compiler and Compilation Method of multi-platform multiple target language based on HLSL | |
US20220067538A1 (en) | Methods and systems for generating knowledge graphs from program source code | |
CN104932905A (en) | Automatic code generation method from AADL to C language | |
CN103116513B (en) | A kind of heterogeneous multi-nucleus processor compiler | |
CN102063324A (en) | Method and system for implementing automatic programming | |
CN117075909B (en) | Compiling method, electronic device and medium for realizing parallel programming | |
CN103235724A (en) | Atomic operation semantic description based integrated translation method for multisource binary codes | |
US11604774B2 (en) | Method and apparatus of converting schema in deep learning framework, and computer storage medium | |
Fischer et al. | Abstract syntax trees-and their role in model driven software development | |
WO2014040766A1 (en) | Computer-implemented method for computer program translation | |
CN107203406B (en) | Processing method for distributed storage structure | |
CN114398039A (en) | Automatic fine-grained two-stage parallel translation method | |
CN116501330A (en) | Text programming language compiling method based on decoupling architecture | |
CN105700934A (en) | Intelligent compiling method and intelligent compiling system | |
CN111221519B (en) | Python-based CLI automatic export method | |
CN113986210A (en) | Script engine execution method and system supporting script customization | |
KR101422737B1 (en) | Mixed language code simultaneous running device and method | |
Kats et al. | Interactive disambiguation of meta programs with concrete object syntax | |
Bogdanas | Label-based programming language semantics in K framework with SDF |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200221 |