CN107003884B - Compiler and method for compiling source code - Google Patents

Compiler and method for compiling source code Download PDF

Info

Publication number
CN107003884B
CN107003884B CN201480083834.1A CN201480083834A CN107003884B CN 107003884 B CN107003884 B CN 107003884B CN 201480083834 A CN201480083834 A CN 201480083834A CN 107003884 B CN107003884 B CN 107003884B
Authority
CN
China
Prior art keywords
representations
source code
irk
code
transformation
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.)
Active
Application number
CN201480083834.1A
Other languages
Chinese (zh)
Other versions
CN107003884A (en
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN107003884A publication Critical patent/CN107003884A/en
Application granted granted Critical
Publication of CN107003884B publication Critical patent/CN107003884B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

Landscapes

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

Abstract

The method for compiling source code includes: converting the source code into a plurality of intermediate representations using a plurality of alternative conversion schemes, respectively; applying a fusion and/or transformation to each of the plurality of intermediate representations to obtain a plurality of transformed representations; generating a plurality of executable programs from the plurality of transformed representations, respectively; and selecting one or more of the plurality of executable programs as an output program in dependence upon one or more performance metrics of the plurality of executable programs.

Description

Compiler and method for compiling source code
Technical Field
The present invention relates to a compiler and a method for compiling source code, in particular by using multi-phase programming.
Background
Multi-stage programming (MSP) is an example for developing general-purpose software by using compact, well-designed language extensions that support runtime code generation and program execution. Upon execution, the multi-phase program first constructs itself as an intermediate representation. This intermediate representation is optimized, new code is generated from the optimized intermediate representation and the newly generated code is finally executed.
One application of MSP is high-performance embedded domain-specific language (DSL), which can be used in machine learning, scientific computing, image processing, big data analytics, and other similarly complex areas of application.
The technique of MSP is generally known and implemented in several high-level programming languages, such as MetaML, MetaOcaml, Template Haskell or Delite. For example, Delite is a compiler architecture developed by stanford university for parallel embedded DSL. For example, a background introduction to MSP can be found in: "simple introduction to multi-stage programming" by Taha, w.; creation of a Domain specific program, Schpringer Press, 2004; pages 30 to 50; rompf, T, Odersky, m, "lightweight modular hierarchy: practical methods for generating and compiling code during operation (light modulation) for DSL (a textual advanced customer speech code generation and compiled DSLs)' American society of computer science and programming language professional group communication, volume 46 (2); american computer society, 2010, and Rompf, t., Sujeeth, a.k., Amin, n., Brown, k.j., Jovanovic, V, Lee, h. -j., jonnalaeadda, m., Olukotun, k., Odersky, m., POPL' 13: the 40 th ACM SIGPLAN-SIGACT Programming language Proc.seminar, 2013, month 1.
However, there is a need for a solution that improves the performance of executable programs generated by multi-phase programming.
Disclosure of Invention
It is therefore an object of the present invention to provide a compiler, in particular a multi-phase programming compiler, and a method for compiling source code, in particular under a multi-phase programming mechanism, which are capable of widening the search space for optimization during compilation and which allow the widening to become more versatile and scalable for improved user-controlled optimization.
According to a first aspect of the invention, a method for compiling source code comprises: converting the source code into a plurality of intermediate representations using a plurality of alternative conversion schemes, respectively; applying the fusion and/or transformation to each of the plurality of intermediate representations to obtain a plurality of transformed representations; generating a plurality of executable programs from the plurality of transformed representations, respectively; and selecting one or more of the plurality of executable programs as an output program in dependence upon the one or more performance metrics of the plurality of executable programs.
In a first implementation form of the method according to the first aspect, the performance metric may comprise one or more of execution speed, memory occupancy, number of loops, sum of loop distances, nesting depth of loops, run time, and compile time.
In a second implementation form of the method according to the first aspect as such or any implementation form of the method according to the first aspect, the transformation comprises one or more of an unreachable code removal, a code movement, a common sub-expression removal, a folding and extraction, a folding and embedding, an embedding and a constant folding.
In a third implementation form of the method according to the first aspect as such or any implementation form of the method according to the first aspect, the applying the fusion and/or the transformation to each of the plurality of intermediate representations to obtain the plurality of transformed representations may comprise: a plurality of different transforms are applied to each of the plurality of intermediate representations to obtain a plurality of transformed representations for each of the plurality of intermediate representations.
In a fourth implementation form of the method according to the first aspect as such or any implementation form of the method according to the first aspect, the source code may be written in a domain-specific programming language.
In the method according to the first aspect of the invention, the limitation of conventional MSPs that only linearly select a single conversion scheme to generate an intermediate representation to be optimized in the transformation and fusion process is overcome. In particular, the search space for optimization is advantageously enlarged as more than one conversion scheme is initially employed. The selection is made only after transformation, fusion and continuous generation of the executable code, depending on the relative performance characteristics of the plurality of executable program code. Therefore, optimization schemes that may conventionally be abandoned at the start of the MSP process are considered, leading to further optimization of the MSP.
According to a second aspect of the invention, a compiler comprises: a translation device for receiving source code as input and translating the source code into a plurality of intermediate representations using a plurality of alternative translation schemes, respectively; a transformation device coupled to the conversion device and configured to apply a fusion and/or transformation to each of a plurality of intermediate representations to obtain a plurality of transformed representations; a program generator coupled to the transformation device and configured to generate a plurality of executable programs from a plurality of transformed representations, respectively; and a selection device coupled to the program generator and operable to select one or more of the plurality of executable programs as an output program in dependence upon one or more performance metrics of the plurality of executable programs.
In a first implementation form of the compiler according to the second aspect, the performance metric may comprise one or more of execution speed, memory occupancy, number of loops, sum of loop distances, nesting depth of loops, run time, and compile time.
In a second implementation form of the compiler according to the second aspect or any implementation form of the compiler according to the second aspect, the transformation may comprise one or more of an unreachable code removal, a code movement, a common sub-expression removal, a folding and extraction, a folding and embedding, an embedding and a constant folding.
In a third implementation form of the compiler according to the second aspect or any implementation form of the compiler according to the second aspect, the transformation device is further configured to apply a plurality of different transformations to each of the plurality of intermediate representations to obtain a plurality of transformed representations for each of the plurality of intermediate representations.
In a fourth implementation form of the compiler according to the second aspect or any implementation form of the compiler according to the second aspect, the source code may be written in a domain-specific programming language.
According to a third aspect of the invention, a computer program product comprises a non-transitory computer-readable storage medium having computer-readable program code embodied therewith for performing a method according to the first aspect of the invention as such or any implementation form of the first aspect of the invention.
Drawings
Hereinafter, possible embodiments of the present invention will be described in more detail with reference to the accompanying drawings. The same reference numbers generally indicate the same or similar objects, structures, devices, steps or features.
FIG. 1 schematically illustrates a process diagram for processing source code according to an embodiment of the invention.
FIG. 2 schematically illustrates a block diagram of a compiler for processing source code according to another embodiment of the present invention.
FIG. 3 schematically illustrates a block diagram of a method for compiling source code according to yet another embodiment of the invention.
Detailed Description
An intermediate representation within the meaning of the present invention comprises a data structure for use inside a compiler that represents the source code in a predefined machine-readable manner, said data structure allowing machine-assisted automatic analysis and transformation of portions of the source code. The intermediate representation will contain not only the information contained in the source code itself, but also additional meta-information about the structure, syntax and semantics of the source code.
Source code within the meaning of the present invention includes any textual representation of a source program using a predetermined programming language with a predetermined syntax and semantics. A source program within the meaning of the present invention comprises a computer readable program that can be used as input to a compiler to generate executable machine readable code.
Fusion within the meaning of the present invention may include any compilation optimization process that extracts loops from a source program and merges the loops into a single loop. Fusion can generally be used to iterate any two loops over the same distance without reference to each other's internal variables or parameters.
Fig. 1 schematically illustrates a flow chart of MSP processing for source code S. The source code S may be written, for example, in a domain-specific programming language (DSL), such as Scala.
First, the source code S is converted into a plurality of intermediate representations IR1, IR2, … …, IRn, respectively, using a plurality of alternative conversion schemes. That is, instead of having only a single conversion scheme, e.g. mapping, filtering, reduction or other functionality, for the high-level structure in the source code S, a set of alternative and at least partly different conversion schemes is used for generating each of the intermediate representations IR1, IR2, … …, IRn. The number n of intermediate representations IR1, IR2, … …, IRn is in principle not limited to any particular number.
The intermediate representations IR1, IR2, … …, IRn are then each subjected to a fusion and/OR transformation by itself, so as to obtain a plurality of transformed representations OR1, OR2, … …, ORn. The transformations may include, for example, one or more of unreachable code removal, code movement, common sub-expression removal, folding and extraction, folding and embedding, and constant folding. In each case, the fusion may include loop identification, loop analysis, and loop merging.
A plurality of different transforms may also be applied to each of the plurality of intermediate representations IR1, IR2, … …, IRn to obtain a plurality of m transformed representations of each of the plurality of intermediate representations IR1, IR2, … …, IRn, i.e. a plurality of m x n transformed representations for a series of intermediate representations IR1, IR2, … …, IRn as a whole.
In each case, the process of fusion and/or transformation can also be repeated according to a predeterminable transformation scheme.
The fusion and transformation is a measure for optimizing the intermediate representation IR1, IR2, … …, IRn at the lower level by avoiding loss of programming generality on the higher level source code.
Finally, the transformed representations OR1, OR2, … …, ORn may be compiled into a plurality of executable programs E1, E2, … …, En. The code of the executable programs E1, E2, … …, En is then subjected to a selection mechanism SM which selects one or more of the plurality of executable programs E1, E2, … …, En as the best optimized output program P depending on one or more performance metrics of the plurality of executable programs E1, E2, … …, En. The selection criteria may, for example, include execution speed, memory occupancy, number of loops, sum of loop distances, nesting depth of loops, run time and/or compile time, or any combination of these metrics. In general, the selected performance metric may be any suitable external heuristic that allows executable program code to be compared on a possibly multidimensional, binary scale.
Fig. 2 schematically illustrates a compiler 1 comprising a transformation device 2, a transformation device 3 coupled to the transformation device 2, a program generator 4 coupled to the transformation device 3, and a selection device 5 coupled to the program generator 4. The conversion device 2 is arranged to receive source code S, for example domain-specific programming language source code, as input and to convert the source code S into a plurality of intermediate representations IRk using a plurality of alternative conversion schemes, respectively. The transformation device 3 receives the plurality of intermediate representations IRk and applies the fusion and/or transformation to each of the plurality of intermediate representations IRk in order to obtain a plurality of transformed representations ORk. The plurality of transformed representations Ork facilitate the generation of a plurality of executable programs Ek in the program generator 4, enabling the selection device 5 to select one or more of the plurality of executable programs Ek as the output program P. This selection may depend on one or more performance metrics of the plurality of executable programs Ek, which metrics may be evaluated by the selection device 5 on the plurality of transformed representations ORk.
The performance metrics may include one or more of execution speed, memory occupancy, number of loops, sum of loop distances, nesting depth of loops, run time, and compile time. The transformations may include one or more of unreachable code removal, code movement, common sub-expression removal, folding and extraction, folding and embedding, and constant folding.
The transformation device may further be capable of applying a plurality of different transformations to each of the plurality of intermediate representations Irk. This results in a plurality of m-transformed representations for each of the plurality of intermediate representations IRk, i.e. a plurality of m x n-transformed representations for the series of intermediate representations IRk as a whole.
Fig. 3 schematically illustrates a block diagram of a method 10 for compiling source code, which may be used in a compiler, such as compiler 1 of fig. 2. In a first step 11, the source code S is converted into a plurality of intermediate representations using a plurality of alternative conversion schemes, respectively. In a second step 12, fusion and/or transformation is applied to each of the plurality of intermediate representations to obtain a plurality of transformed representations. In a third step 13, a plurality of executable programs are generated from the plurality of transformed representations, respectively, such that in a fourth step 14 one or more of the plurality of executable programs may be selected as output program P depending on one or more performance metrics of the plurality of executable programs.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, e.g., firmware, resident software, micro-code or the like, or an embodiment combining software and hardware aspects. Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer-readable media having computer-readable program code embodied thereon.
Any combination of one or more computer-readable media may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a RAM, a ROM, an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline junction, optical fiber cable, radio frequency, or any suitable combination of the foregoing.
Aspects of the present invention are described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations 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, 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/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms thereof unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Various modifications and alterations will become apparent to those skilled in the art without departing from the scope and spirit of this invention. The embodiments were chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments and with various modifications as are suited to the particular use contemplated.

Claims (11)

1. A method for compiling source code (S), comprising:
-receiving said source code (S), converting said source code (S) into a plurality of intermediate representations (IRk) using a plurality of alternative conversion schemes, respectively;
applying a fusion and/or transformation to each of the plurality of intermediate representations (IRk) to obtain a plurality of transformed representations (ORk);
generating a plurality of executable programs (Ek) from the plurality of transformed representations (ORk), respectively; and
selecting one or more of the plurality of executable programs (Ek) as an output program (P) in dependence on one or more performance metrics of the plurality of executable programs (Ek).
2. The method of claim 1, wherein the performance metrics comprise one or more of execution speed, memory occupancy, number of loops, sum of loop distances, nesting depth of loops, run time, and compile time.
3. The method of claim 1 or claim 2, wherein the transformation comprises one or more of unreachable code removal, code movement, common sub-expression removal, folding and extraction, folding and embedding, and constant folding.
4. The method according to claim 1 or claim 2, wherein applying a fusion and/or transformation to each of the plurality of intermediate representations (IRk) to obtain a plurality of transformed representations (ORk) comprises: applying a plurality of different transforms to each of the plurality of intermediate representations (IRk) to obtain a plurality of transformed representations of each of the plurality of intermediate representations (IRk).
5. Method according to claim 1 or claim 2, characterized in that said source code (S) is written in a domain-specific programming language.
6. A non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code for performing the method of any of claims 1-5.
7. A compiler (1), characterized by comprising:
a conversion device (2) for receiving source code (S) as input and converting the source code (S) into a plurality of intermediate representations (IRk) using a plurality of alternative conversion schemes, respectively;
a transformation device (3) coupled to the conversion device (2) and configured to apply a fusion and/or a transformation to each of the plurality of intermediate representations (IRk) to obtain a plurality of transformed representations (ORk);
a program generator (4) coupled to the transformation device (3) and configured to generate a plurality of executable programs (Ek) from the plurality of transformed representations (ORk), respectively; and
a selection device (5) coupled to the program generator (4) and configured to select one or more of the plurality of executable programs (Ek) as an output program (P) in dependence on one or more performance metrics of the plurality of executable programs (Ek).
8. The compiler (1) according to claim 7, wherein the performance metrics comprise one or more of execution speed, memory occupancy, number of loops, sum of loop distances, nesting depth of loops, run time and compile time.
9. The compiler (1) according to claim 7 or claim 8, wherein the transformation comprises one or more of unreachable code removal, code movement, common sub-expression removal, folding and extraction, folding and embedding, embedding and constant folding.
10. The compiler (1) according to claim 7 or claim 8, wherein the transformation device (3) is further configured to apply a plurality of different transformations to each of the plurality of intermediate representations (IRk) to obtain a plurality of transformed representations of each of the plurality of intermediate representations (IRk).
11. Compiler (1) according to claim 7 or claim 8, characterized in that said source code (S) is written in a domain specific programming language.
CN201480083834.1A 2014-12-04 2014-12-04 Compiler and method for compiling source code Active CN107003884B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2014/000911 WO2016089243A1 (en) 2014-12-04 2014-12-04 Compiler and method for compiling source code

Publications (2)

Publication Number Publication Date
CN107003884A CN107003884A (en) 2017-08-01
CN107003884B true CN107003884B (en) 2019-12-24

Family

ID=53510964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480083834.1A Active CN107003884B (en) 2014-12-04 2014-12-04 Compiler and method for compiling source code

Country Status (2)

Country Link
CN (1) CN107003884B (en)
WO (1) WO2016089243A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116126333A (en) * 2018-06-20 2023-05-16 华为技术有限公司 Automated compiling system and method
CN110147236B (en) * 2019-04-30 2023-01-31 创新先进技术有限公司 Code compiling method and device
CN114756444A (en) * 2021-01-08 2022-07-15 华为技术有限公司 Calculation graph optimization method and device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6738967B1 (en) * 2000-03-14 2004-05-18 Microsoft Corporation Compiling for multiple virtual machines targeting different processor architectures
JP4652680B2 (en) * 2003-12-22 2011-03-16 パナソニック株式会社 Compiling method and apparatus, and compiler
JP2009048252A (en) * 2007-08-14 2009-03-05 Oki Electric Ind Co Ltd Program conversion device and compiler program

Also Published As

Publication number Publication date
WO2016089243A1 (en) 2016-06-09
CN107003884A (en) 2017-08-01

Similar Documents

Publication Publication Date Title
US20190361802A1 (en) Semantic comparison of computer compiler traces
AU2013290313B2 (en) Method and system for automated improvement of parallelism in program compilation
Cánovas Izquierdo et al. Discovering implicit schemas in JSON data
US9535664B1 (en) Computerized software development process and management environment
CN109491658A (en) The generation method and device of computer-executable code data
US20170017475A1 (en) Information processing apparatus and compile method
CN107145540A (en) The diagram file textual conversion equipment and method of the version control function of class uml diagram
CN107003884B (en) Compiler and method for compiling source code
CN108139891A (en) Include suggesting for the missing of external file
US20110246962A1 (en) State machine expressions in database operators
JP2016157407A (en) Prior construction method of vocabulary semantic pattern for text analysis and response system
Ahmad et al. Leveraging parallel data processing frameworks with verified lifting
CN112269566A (en) Script generation processing method, device, equipment and system
US8117604B2 (en) Architecture cloning for power PC processors
CN116243919A (en) Interface rendering method, device and medium for interpretation rendering and code rendering
CN116560631B (en) Method and device for generating machine learning model code
CN109740138A (en) A kind of editable method of picture file in realization mind map software
US10545741B2 (en) Information processing apparatus, method of compiling, and storage medium
CN107632831B (en) Method and device for quickly standardizing front-end codes
Ahmad et al. Optimizing data-intensive applications automatically by leveraging parallel data processing frameworks
KR20190059701A (en) Method and apparatus for generating DEVS based simulation model and code
JP6502044B2 (en) Data analysis device, data analysis method, and program.
CN102681830B (en) A kind of method and apparatus of comparison program text
Gasper et al. Automatic parallelization of sequential C code
CN116719514B (en) Automatic RPA code generation method and device based on BERT

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant