CN110825384A - ST language compiling method, system and compiler based on LLVM - Google Patents

ST language compiling method, system and compiler based on LLVM Download PDF

Info

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
Application number
CN201911029015.XA
Other languages
Chinese (zh)
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.)
Nanjing Nanrui Water Conservancy And Hydropower Technology Co Ltd
Nari Technology Co Ltd
Original Assignee
Nanjing Nanrui Water Conservancy And Hydropower Technology Co Ltd
Nari Technology Co Ltd
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 Nanjing Nanrui Water Conservancy And Hydropower Technology Co Ltd, Nari Technology Co Ltd filed Critical Nanjing Nanrui Water Conservancy And Hydropower Technology Co Ltd
Priority to CN201911029015.XA priority Critical patent/CN110825384A/en
Publication of CN110825384A publication Critical patent/CN110825384A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic 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

ST language compiling method, system and compiler based on LLVM
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.
CN201911029015.XA 2019-10-28 2019-10-28 ST language compiling method, system and compiler based on LLVM Pending CN110825384A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
高进: "软PLC运行系统的研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (29)

* Cited by examiner, † Cited by third party
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