+

WO2018161509A1 - Procédé de prétraitement de compilation conditionnelle, terminal et support de stockage - Google Patents

Procédé de prétraitement de compilation conditionnelle, terminal et support de stockage Download PDF

Info

Publication number
WO2018161509A1
WO2018161509A1 PCT/CN2017/099747 CN2017099747W WO2018161509A1 WO 2018161509 A1 WO2018161509 A1 WO 2018161509A1 CN 2017099747 W CN2017099747 W CN 2017099747W WO 2018161509 A1 WO2018161509 A1 WO 2018161509A1
Authority
WO
WIPO (PCT)
Prior art keywords
program text
event
original program
action
processing
Prior art date
Application number
PCT/CN2017/099747
Other languages
English (en)
Chinese (zh)
Inventor
涂钦魁
Original Assignee
百富计算机技术(深圳)有限公司
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 百富计算机技术(深圳)有限公司 filed Critical 百富计算机技术(深圳)有限公司
Publication of WO2018161509A1 publication Critical patent/WO2018161509A1/fr

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/423Preprocessors
    • 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
    • G06F8/437Type checking

Definitions

  • the present application relates to the field of computer processing, and in particular, to a conditional pre-processing method, a terminal, and a storage medium.
  • C language is a compiled high-level language. Developers can make full use of conditional compilation features to support multiple soft/hard configurations in the same project, but when the application is cross-platform. It is necessary to separately generate versions under the respective platforms, and it is difficult to develop.
  • Interpretive languages eg, WMLScript
  • WMLScript can be cross-platform, and development is less difficult than C, but interpreted languages do not have conditional compilation.
  • conditional compilation preprocessing method a terminal, and a storage medium are provided.
  • a conditional compilation preprocessing method including:
  • the original program text is processed correspondingly according to the determined processing action, and the processed target program text is output.
  • a terminal comprising a memory and a processor, the memory storing computer readable instructions, the computer readable instructions being executed by the processor such that the processor performs the following steps:
  • the original program text is processed correspondingly according to the determined processing action, and the processed target program text is output.
  • One or more non-transitory readable storage mediums storing computer readable instructions, when executed by one or more processors, cause the one or more processors to perform the following steps:
  • the original program text is processed correspondingly according to the determined processing action, and the processed target program text is output.
  • FIG. 1 is a block diagram showing the internal structure of a terminal in an embodiment
  • FIG. 2 is a flow chart of a conditional compilation preprocessing method in an embodiment
  • FIG. 3 is a flow chart of a method for determining a corresponding processing action according to a current state and an event in an embodiment
  • FIG. 4 is a flowchart of a method for outputting a processed target program text according to a determined processing action according to a determined processing action;
  • FIG. 5 is a schematic diagram of implementing conditional compilation preprocessing in one embodiment
  • Figure 6 is a block diagram showing the structure of a terminal in an embodiment.
  • the internal structure of the terminal 102 is as shown in FIG. 1, including a processor connected through a system bus, an internal memory, a non-volatile storage medium, a network interface, a display screen, and an input device.
  • the non-volatile storage medium of the terminal 102 stores an operating system and computer readable instructions executable by the processor to implement the terminal 102.
  • the processor is used to provide computing and control capabilities to support the operation of the entire terminal.
  • the internal memory in the terminal stores computer readable instructions that, when executed by the processor, cause the processor to perform a conditional compilation preprocessing method.
  • the network interface is used to connect to the network for communication.
  • the display screen of the terminal 102 may be a liquid crystal display or an electronic ink display screen.
  • the input device may be a touch layer covered on the display screen, or may be a button, a trackball or a touchpad provided on the outer casing of the electronic device, or may be An external keyboard, trackpad, or mouse.
  • the terminal can be a POS machine, a tablet computer, a notebook computer, a desktop computer, or the like.
  • FIG. 1 is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the terminal to which the solution of the present application is applied.
  • the specific terminal may include a ratio. More or fewer components are shown in the figures, or some components are combined, or have different component arrangements.
  • conditional compilation preprocessing method is proposed, which is applicable to the terminal shown in FIG. 1, and includes the following steps:
  • Step 202 Acquire original program text to be processed.
  • conditional compilation in order to enable the interpretation language (for example, WMLScript) to implement the conditional compilation feature, a preprocessing method suitable for conditional compilation in an interpreted language is proposed by simulating the C language for conditional compilation.
  • the nature of conditional compilation can be simply understood as: analyzing the original program text, retaining or deleting a certain piece of code according to the "specified condition", and outputting the processed program text, that is, by retaining or deleting a certain piece of code according to the specified condition. Select the target program text that meets the requirements in the program text.
  • the terminal In order to filter the original program text, the terminal first needs to obtain the original program text to be processed.
  • the original program text refers to the original program code that is written, that is, the program text before processing.
  • Step 204 Analyze the original program text, match the corresponding keyword according to the preset regular expression, and output a mark corresponding to the keyword.
  • the terminal After the terminal obtains the original program text to be processed, it is possible to accurately determine whether the "specified condition" is met. First, by analyzing the original program text, matching the corresponding keyword according to the preset regular expression, and then outputting a token corresponding to the matched keyword. Its In the middle, the matching relationship between the regular expression and the keyword and the correspondence between the keyword and the mark are set in advance.
  • the original program text can be analyzed using a lexical analyzer generated by lex, where lex is a lexical scan code generator that generates a lexical scan code, ie, a lexical analyzer, based on the defined pattern file, the main pattern file.
  • Regular expressions are used to define matching rules, as well as actions that are performed after matching, such as executing a return token. That is, the lexical analyzer can be used to analyze the original program text, match the keyword according to the preset regular expression, and then output the mark corresponding to the keyword.
  • the following problems need to be solved when using the lexical analyzer to analyze the original program text.
  • One is to ignore the comments and ignore all the text in the comments.
  • the second is to ignore any data in the string, that is, ignore the string enclosed by the quote "".
  • the third is to record the current line number.
  • the record line number is very important for subsequent processing, because the final processing depends on the line number to process the original program text.
  • the fourth is to return a token corresponding to the keyword, so that the subsequent grammar matching according to the token is facilitated.
  • the keywords include #if, #ifdef, #ifndef, #elif, #else, #defined, #endif, #define, #undef, etc.
  • the corresponding tags can be set to: IF, IFDEF, IFNDEF, ELIF, ELSE, DEFINED, ENDIF, DEFINE, etc.
  • the fifth is to return the macro name and macro value.
  • Step 206 Compile the corresponding event according to the markup and the preset conditional compilation grammar rule.
  • the correspondence between the conditional compilation grammar rules and the event is preset in the terminal.
  • the tag is matched to a certain grammar rule, and then the corresponding event is determined according to the matched grammar rule, and the corresponding event is output.
  • the event facilitates subsequent determination of the corresponding processing action based on the event.
  • an event is a signal that something happens in a program.
  • the terminal can match the corresponding event by using a parser to compile the grammar rules according to the mark and the preset condition.
  • the terminal first launches a parser, and the parser internally calls a lexer that matches the tokens output by the lexer and predefined conditional compilation grammar rules. The corresponding event.
  • the parser can be implemented by Yacc, which is a parsing code generator that generates a parser based on the defined grammar file.
  • the grammar file uses the Backus-Naur Form to describe the grammar rules. It uses the tokens exported by lex and its own defined grammar rules to match and execute the corresponding actions (for example, executing a piece of C code). As shown in Table 1, an illustration of the event and corresponding conditional compilation syntax rules is shown.
  • Step 208 Determine a corresponding processing action according to the current state and the event.
  • the terminal after the terminal matches the corresponding event according to the mark and the preset conditional compilation grammar rule, the terminal acquires the current state, and determines a corresponding processing action according to the current state and the event.
  • a relationship table between the processing action and the current state and the event may be pre-stored, and the corresponding processing action may be determined after the current state and the event are obtained, wherein the processing action may be deleting or retaining a certain piece of code.
  • the event is output to the state processor, and the state in the state processor is driven to jump, that is, jump from one state to another state. Then according to the jump to another A state determines the corresponding processing action.
  • the parser, the state processor, etc. are all software implementations inside the terminal.
  • the state processor compiles the syntax characteristics according to conditions, and the state processor stores and manages the state in a stack (ie, maintains a state stack). As shown in Table 2, the predefined states and corresponding state descriptions are shown. The next state is determined by acquiring the current state and the matched event (refer to Table 3), and then determining the corresponding processing action.
  • Step 210 Perform corresponding processing on the original program text according to the determined processing action, and output the processed target program text.
  • the terminal after determining the processing action, performs corresponding processing on the original program text according to the determined processing action, and outputs the processed target program text, and the output target program text is filtered according to the specified condition.
  • the terminal adds a corresponding processing action to the motion processor's action list according to the next state by the state processor, and then the action processor performs corresponding processing according to the processing action in the action list, for example, deleting the corresponding row or
  • the pre-compilation method is not reduced by using the condition. Maintenance costs and reduced resources Consumption.
  • the steps of determining a corresponding processing action based on the current state and the event include:
  • step 208A the next state is determined according to the current state and the event.
  • the current state is obtained, and the next state corresponding to the current state and the event is searched by querying the state table.
  • Table 3 it is a state table in one embodiment.
  • the first column of the vertical axis represents the current state
  • the horizontal axis is the first behavior event
  • the other cells indicate the next state when the current state receives the event.
  • the current state is the initial state, that is, STATE_INITIAL
  • the event that occurs is EVENT_IF_TRUE.
  • the state table that is, Table 3
  • the corresponding next state is STATE_IF_TRUE (ie, the cell corresponding to the third row and the second column).
  • step 208B the corresponding processing action is determined according to the next state.
  • the corresponding processing action is determined according to the next state.
  • the action taken in the next step can be distinguished.
  • Pre-defined types of actions for example, actions are divided into two categories, one is to delete the current line (for example, if, else, elif their own line), the corresponding next state is: STATE_IF_TRUE, STATE_ELSE_TRUE, STATE_ELIF_TRUE, STATE_ENDIF; Is to delete multiple rows, the corresponding next state is: STATE_IF_FALSE, STATE_IF_INHERIT_FALSE, STATE_ELSE_FALSE, STATE_ELIF_FALSE.
  • the original program text is processed correspondingly according to the determined processing action, and the step of outputting the processed target program text includes:
  • Step 210A adding the determined processing action to the action list.
  • the determined action is added to the action list.
  • the terminal first matches the event by the parser, and then the event drives the jump of the state processor, after which the state processor determines the next state according to the current state and the event by querying the state table, and then determines the corresponding according to the next state.
  • the processing action, and then the determined action is added to the action list of the action processor, so that the subsequent action processor performs corresponding processing according to the action in the action list, wherein the parser, the state processor, the action processor, etc. are all Software implementation inside the terminal.
  • Step 210B Perform a corresponding processing operation on the original program text according to the action list, and output the processed target program text.
  • the terminal adds the processing action to the motion processor through the state processor.
  • the action processor executes the original program text according to the saved series of processing actions. Corresponding operation; one is that whenever an action is added to the action list, the action processor starts executing the corresponding processing action, and then outputs the processed program text, that is, the target program text. For example, according to the typical conditional compilation process #if true...#else...#endif, the final processing action is 1) delete the #if true line itself; 2) delete #else() to the endif All lines between (inclusive).
  • the action processor does not actually delete the line of code, but adds a line comment "//" before the code.
  • the processed target program text is output. If there is a compiling process later, the output is output to the compiler for processing, thereby implementing conditional compilation.
  • the step of compiling the corresponding event according to the markup and the preset conditional compilation grammar rule comprises: matching the grammar rule according to the mark and the preset condition, and when matching the conditional statement containing the macro name, The macro definition manager queries the definition corresponding to the macro name and the corresponding value for conditional judgment, and matches the corresponding event according to the result of the conditional judgment.
  • the macro definition manager is used to manage the macro definition, and the conditional judgment of the conditional compilation sometimes requires content based on the macro definition.
  • the macro definition manager When matching the conditional statement containing the macro name, it is necessary to query the macro definition manager for the macro value corresponding to the matched macro name, so as to facilitate the conditional judgment according to the macro value, that is, whether the condition is TRUE or FALSE.
  • the macro definition contains two major categories, one is the global macro definition -D passed in through the command line parameters, and the other is the macro defined by the file #define. A locally defined macro overrides the global definition and only affects the behavior behind the line in this file, and has no effect on other files.
  • the information of the macro record records the state of the macro, the macro name, the macro value, and the macro line number in addition to the macro type, that is, the global macro and the local macro.
  • Macro states include available, temporarily disabled, and invalid. Among them, the temporary invalid state applies to the global macro, which means that it is defined with -D but is canceled in a file (#undef). This state only affects the file itself. When another file is processed, -D is still restored. State; invalid state applies to local macros, indicating that they are canceled (#undef) in a file.
  • the macro line number in the macro definition manager is only valid for local macros. It is mainly used to give a warning when the same macro definition is found twice in the same file.
  • the current definition is in which row.
  • the local macro is detected first. If it does not exist, the global macro is checked. In one embodiment, when the following statement #ifdef NAME, #ifndef NAME, #if NAME, #elif NAME, #if defined(NAME) is encountered, the macro definition manager needs to be queried to see if the definition and the corresponding value are What, if not found, returns NULL to indicate that the definition could not be found.
  • the corresponding macro definition is added or deleted in the macro definition manager according to the type of the definition statement.
  • the terminal since the condition determination needs to be based on the macro definition in the macro definition manager, it is first necessary to add a macro definition in the macro definition manager, and if it is found later, it is also required to be in the macro definition.
  • the corresponding macro definition is removed from the manager. Specifically, first, the terminal performs matching according to a preset regular expression by the lexical analyzer, and outputs a corresponding mark, wherein the mark includes a mark representing a macro name. For example, when matching the keyword #define NAME VALUE, #define NAME, or #undef NAME, the name of the macro is returned. That is, when matching the define, undef keyword, the corresponding text is stored (the real macro name is stored) and the tag NAME is returned.
  • the parser performs matching according to the markup and the preset conditional compilation grammar rule.
  • the definition statement containing the macro name the corresponding macro definition is added or deleted in the macro definition manager according to the type of the definition statement.
  • the macro definition statement refers to a statement containing definition words such as #define, #undef.
  • the statement is divided into two types: definition and undefine.
  • the statement containing #define represents the statement of the defined type
  • the statement containing #undef represents the statement of the undefined type.
  • the macro definition manager is added to the macro definition manager when it encounters the following statement #define NAME, #define NAME VALUE, and the macro definition manager is deleted when it encounters #undef NAME.
  • the step of analyzing the original program text, matching the corresponding keyword according to the preset regular expression and outputting the corresponding mark includes: analyzing the original program text according to the preset regular expression Match the corresponding keyword, record the line number where the keyword is located, and output The corresponding tag and the corresponding line number.
  • the lexical analyzer in order to facilitate the execution of the determined processing action, after analyzing the original program text and matching the corresponding keywords, not only the token corresponding to the keyword needs to be output, but also each matching is required to be recorded.
  • the line number of the keyword is output and output. Recording the line number is very important for subsequent processing because the action processor ultimately relies on the line number to process the program text.
  • the specific implementation means that by adding a c function for increasing the line number, the lexical analyzer then calls the function to increase the global line number. For example, whenever you encounter " ⁇ n", call the c function to increase the global line number.
  • the processing of the original program text is performed according to the determined processing action
  • the step 210 of outputting the processed target program text includes: performing a corresponding processing action according to the type of the processing action and the corresponding line number, and outputting the processing After the target program text.
  • the action processor executes the corresponding processing action according to the type of the processing action and the corresponding line number, and then outputs the processed process.
  • Target program text The types of processing actions can be divided into two categories: one is to delete the current row; the other is to delete multiple rows.
  • each processing action corresponds to a start line number and an end line number information.
  • the first type of action can be treated as a special case with the same starting line number and ending line number.
  • the ending line number and the starting line number can be temporarily written to the same value, when the next event generates a new action.
  • the processing action is corresponding to the next state determined by the state processor.
  • the next state is: STATE_IF_TRUE, STATE_ELSE_TRUE, STATE_ELIF_TRUE, STATE_ENDIF
  • the corresponding action is: deleting the current row.
  • next state is: STATE_IF_FALSE, STATE_IF_INHERIT_FALSE, STATE_ELSE_FALSE, STATE_ELIF_FALSE
  • the corresponding action is: delete multiple rows.
  • the determined next state is STATE_IF_TRUE
  • the current row needs to be deleted, that is, the starting row number and the ending row number are the same.
  • STATE_IF_FALSE it means that multiple rows need to be deleted, but it is not known to delete a few rows, that is, I don't know what the ending line number is.
  • next event occurs, assuming that the new event is EVENT_ELSE_TRUE, then the corresponding next state is STATE_ELSE_TRUE, indicating that the current line is deleted, and the current line number is reduced before deleting the current line. Go to 1, as the end line number of the previous event.
  • the method for implementing the above conditional compilation is specifically performed by a lexical analyzer, a parser, a state processor, an action processor, and a macro definition manager.
  • the main program will add the global macro to the macro definition manager.
  • the main program in the terminal performs the following operations on each original program text, a), the main program Enable the parser, the parser internally calls the lexical analyzer, analyzes the original program text through the lexical analyzer to match the corresponding keyword and outputs the corresponding token, and then the parser uses the token output by the lexical analyzer. (token) and pre-defined grammar rules, corresponding events are generated.
  • the macro definition manager is added, deleted, and checked according to the matched statement containing the macro name; b) the parser The event is output to the state processor, which drives the jump of the state machine.
  • the state processor determines the corresponding processing action according to the next state, and adds the processing action to the action processor.
  • the main program executes the action list in the processor in order, and outputs the processed program text, that is, the target program text.
  • the lexical analyzer, the parser, the state processor, the action processor and the macro definition manager respectively implement preprocessing of the conditional compilation by mutual cooperation, and implement the conditional compiling preprocessor corresponding to the preprocessing method of the conditional compilation.
  • the execution file is only about 36k.
  • conditional compilation preprocessor It is a lightweight conditional compilation preprocessor. If there is a subsequent compilation process, you only need to add the conditional compilation preprocessor command before the standard compilation process to facilitate integration.
  • the method is applicable to multiple languages, such as WMLScript, JavaScript, Java, Python, etc. Since different programming languages have different specifications, you can quickly adapt to any language by fine-tuning lexical and grammatical rules files as needed. Therefore, it is also versatile and easy to expand.
  • the embodiment of the present application provides a terminal.
  • the internal structure of the terminal may correspond to the structure shown in FIG. 1.
  • Each of the following modules may be implemented in whole or in part by software, hardware, or a combination thereof.
  • the terminal 600 in this embodiment includes:
  • the obtaining module 602 is configured to obtain the original program text to be processed.
  • the output module 604 is configured to analyze the original program text, match the corresponding keyword according to the preset regular expression, and output a corresponding mark.
  • the matching module 606 is configured to match the corresponding event according to the markup and the preset conditional compilation grammar rule.
  • the determining module 608 is configured to determine a corresponding processing action according to the current state and the event.
  • the processing module 610 is configured to perform corresponding processing on the original program text according to the determined processing action, and output the processed target program text.
  • the determining module is further configured to determine a next state according to the current state and the event, and determine a corresponding processing action according to the next state.
  • the processing module is further configured to add the determined processing action to the action list, perform a corresponding processing action on the original program text according to the action list, and output the processed target program text.
  • the matching module is further configured to perform matching according to the markup and the preset conditional compilation grammar rule, and when matching the conditional statement containing the macro name, query the macro definition manager to query the definition corresponding to the macro name and corresponding The value is judged by the condition, and the corresponding event is matched according to the result of the conditional judgment.
  • the output module is further configured to analyze the original program text, match the corresponding keyword according to the preset regular expression, record the line number where the keyword is located, and output the corresponding mark and the corresponding line number.
  • the processing module is further configured to execute a corresponding processing action according to the type of the processing action and the corresponding line number, and output the processed target program text.
  • the storage medium may be a non-volatile storage medium such as a magnetic disk, an optical disk, a read-only memory (ROM), or a random access memory (RAM).

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

L'invention concerne un procédé de prétraitement de compilation conditionnelle qui consiste : à acquérir un texte de programme d'origine à traiter (202); à analyser le texte de programme d'origine, à découvrir un mot-clé correspondant selon une expression régulière préétablie, et à faire sortir une étiquette correspondante (204), à découvrir un événement identique correspondant selon l'étiquette et des règles de syntaxe de compilation conditionnelle préétablies (206), à déterminer, en fonction de l'état actuel et de l'événement, une action de traitement correspondante (208), à effectuer un traitement correspondant du texte de programme d'origine selon l'action de traitement déterminée et à émettre un texte de programme cible traité (210).
PCT/CN2017/099747 2017-03-08 2017-08-30 Procédé de prétraitement de compilation conditionnelle, terminal et support de stockage WO2018161509A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710135974.4 2017-03-08
CN201710135974.4A CN106843996A (zh) 2017-03-08 2017-03-08 条件编译预处理方法和装置

Publications (1)

Publication Number Publication Date
WO2018161509A1 true WO2018161509A1 (fr) 2018-09-13

Family

ID=59144012

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/099747 WO2018161509A1 (fr) 2017-03-08 2017-08-30 Procédé de prétraitement de compilation conditionnelle, terminal et support de stockage

Country Status (2)

Country Link
CN (1) CN106843996A (fr)
WO (1) WO2018161509A1 (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843996A (zh) * 2017-03-08 2017-06-13 百富计算机技术(深圳)有限公司 条件编译预处理方法和装置
CN107977230A (zh) * 2017-12-01 2018-05-01 广东雅达电子股份有限公司 一种基于状态机机制的应用管理方法
CN109408682B (zh) * 2018-10-30 2021-03-23 杭州安恒信息技术股份有限公司 一种正则表达式匹配的方法、系统及设备
CN110750250A (zh) * 2019-09-06 2020-02-04 重庆东渝中能实业有限公司 一种使用宏编译判断io口是否冲突的方法
CN113031963B (zh) * 2021-03-24 2023-09-12 北京字节跳动网络技术有限公司 条件编译的实现方法、装置、设备及存储介质
CN114281319A (zh) * 2021-12-06 2022-04-05 青岛鼎信通讯股份有限公司 一种基于shell脚本的采集终端程序差异化编译方法
CN117555535B (zh) * 2024-01-09 2024-05-14 云筑信息科技(成都)有限公司 一种React框架中实现多环境代码复用方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2827244A1 (fr) * 2011-12-15 2015-01-21 Sap Se Méchanisme d'extension pour un compilateur de langage de script
CN104536797A (zh) * 2015-01-14 2015-04-22 大唐微电子技术有限公司 一种Java程序预编译方法和预编译器
CN104834530A (zh) * 2015-05-27 2015-08-12 百富计算机技术(深圳)有限公司 一种pos应用程序的开发方法及云端服务器
CN106843996A (zh) * 2017-03-08 2017-06-13 百富计算机技术(深圳)有限公司 条件编译预处理方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2829252B1 (fr) * 2001-08-30 2004-10-01 Gemplus Card Int Compression d'un programme en langage intermediaire
CN102857493B (zh) * 2012-06-30 2015-07-08 华为技术有限公司 内容过滤方法和装置
CN104636174B (zh) * 2015-02-02 2018-07-10 惠州Tcl移动通信有限公司 基于Android系统的特征值定义和使用方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2827244A1 (fr) * 2011-12-15 2015-01-21 Sap Se Méchanisme d'extension pour un compilateur de langage de script
CN104536797A (zh) * 2015-01-14 2015-04-22 大唐微电子技术有限公司 一种Java程序预编译方法和预编译器
CN104834530A (zh) * 2015-05-27 2015-08-12 百富计算机技术(深圳)有限公司 一种pos应用程序的开发方法及云端服务器
CN106843996A (zh) * 2017-03-08 2017-06-13 百富计算机技术(深圳)有限公司 条件编译预处理方法和装置

Also Published As

Publication number Publication date
CN106843996A (zh) 2017-06-13

Similar Documents

Publication Publication Date Title
US11714611B2 (en) Library suggestion engine
WO2018161509A1 (fr) Procédé de prétraitement de compilation conditionnelle, terminal et support de stockage
US11740876B2 (en) Method and system for arbitrary-granularity execution clone detection
US10133649B2 (en) System and methods for model-based analysis of software
US9411559B2 (en) Resolution of textual code in a graphical hierarchical model of a technical computing environment
CN111796831B (zh) 一种多芯片兼容的编译方法和装置
US8473899B2 (en) Automatic optimization of string allocations in a computer program
US10437574B2 (en) System and method for providing code completion features for code modules
US20140173563A1 (en) Editor visualizations
US9940104B2 (en) Automatic source code generation
US20200210158A1 (en) Automated or machine-enhanced source code debugging
US10360004B2 (en) Using dynamic information to refine control flow graphs
US9311077B2 (en) Identification of code changes using language syntax and changeset data
CN108139891A (zh) 针对外部文件的缺失包括建议
WO2023059390A1 (fr) Automatisation d'édition de mise à jour copier-coller
Sengupta Julia High Performance: Optimizations, distributed computing, multithreading, and GPU programming with Julia 1.0 and beyond
US12182551B2 (en) Using a semantic tree of a compiler to execute a semantic code query against source code
US11119761B2 (en) Identifying implicit dependencies between code artifacts
Samara A practical approach for detecting logical error in object oriented environment
US20150082443A1 (en) System to automate compliance with licenses of software third-party content
US20200134476A1 (en) Generating code performance hints using source code coverage analytics, inspection, and unstructured programming documents
CN119690807B (zh) 大模型辅助的静态代码扫描结果分析方法、装置、电子设备和计算机可读存储介质
Gyén et al. Code Comprehension for the Move Semantics in C+
WO2024031983A1 (fr) Procédé de gestion de code et dispositif associé

Legal Events

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

Ref document number: 17899943

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17899943

Country of ref document: EP

Kind code of ref document: A1

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载