WO2020241570A1 - ソフトウェア開発装置およびソフトウェア開発プログラム - Google Patents
ソフトウェア開発装置およびソフトウェア開発プログラム Download PDFInfo
- Publication number
- WO2020241570A1 WO2020241570A1 PCT/JP2020/020541 JP2020020541W WO2020241570A1 WO 2020241570 A1 WO2020241570 A1 WO 2020241570A1 JP 2020020541 W JP2020020541 W JP 2020020541W WO 2020241570 A1 WO2020241570 A1 WO 2020241570A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- software development
- constraint
- source code
- code
- object code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
Definitions
- This disclosure relates to software development equipment and software development programs.
- ICT Information and Communication Technology
- Japanese Patent Application Laid-Open No. 2004-038956 is for discovering and showing computing resources available in various computing devices, and software for such resources. Disclose a system for exposure as a service that can be addressed by an application.
- Patent Document 1 When creating a program that runs on an edge device, it is necessary to consider various points from the viewpoint of available resources and security.
- Patent Document 1 only focuses on creating a program in consideration of the computing resources available in the target computing device, and various points must be considered in creating the program. It does not provide a solution to such issues.
- a software development device for generating an object code from a source code.
- the software development device extracts the constraints set in the source code, and within the scope of application of the extracted constraints, the evaluation means for evaluating whether or not the source code conforms to the constraints, and so as to conform to the constraints. Includes a generation means to generate object code.
- the generation means may stop the generation of the object code when it is evaluated that the source code does not conform to the constraint within the scope of application of the constraint.
- the generation means When the generation means cannot evaluate whether or not the source code conforms to the constraint within the scope of the constraint, the generation means conforms to the constraint during execution of the object code in addition to the object code corresponding to the source code. You may want to generate another object code to evaluate whether or not you are doing this.
- Constraints are restrictions or rules on the resources that the object code uses at runtime, restrictions or rules on the execution state of the object code, restrictions or rules on the execution procedure of the object code, and restrictions or rules on the instructions contained in the source code. , Any one may be included.
- the evaluation means may evaluate whether or not the instruction called by the calling instruction also conforms to the constraint.
- a software development program that generates object code from source code.
- the software development program extracts the constraints set in the source code to the computer, evaluates whether the source code conforms to the constraints within the scope of the extracted constraints, and conforms to the constraints. To execute the step of generating the object code and so on.
- IoT system 1 First, the overall configuration of the IoT system 1 including the software development device 100 and the edge device 2 according to the present embodiment will be described.
- FIG. 1 is a schematic diagram showing an example of the overall configuration of the IoT system 1 according to the present embodiment.
- a program object code executed by the edge device 2 in the software development device 100 is typically generated.
- the generated program is transferred from the software development device 100 to the controller 200 included in the edge device 2.
- the software development device 100 is provided with an integrated development environment (IDE: Integrated Development Environment), and a user can create an arbitrary program on the integrated development environment. That is, the software development device 100 generates an object code from a source code arbitrarily created by the user.
- IDE integrated Development Environment
- the edge device 2 may be any device, but typically, factory equipment, various household devices, social infrastructure equipment, mobile objects such as vehicles, arbitrary portable devices, and the like are assumed. .. As will be described later, the controller 200 has a processor and can execute a program from the software development device 100.
- the user creates a source code using the software development device 100 ((1) source code creation). Then, the created source code is compiled in the software development device 100, and the object code is generated ((2) object code generation). The generated object code is transferred to the controller 200 of the edge device 2 ((3) object code transfer). The transferred object code is executed by the controller 200 ((4) object code execution).
- an arbitrary program developed in the software development device 100 can be executed in the controller 200.
- the software development device 100 provides an environment in which various restrictions can be freely set for the program executed by the controller 200.
- the program varies depending on the resources possessed by the controller 200 on which the program is executed, the type and use of the edge device 2, the importance of the program to be executed, the security to be ensured, and the like. Constraints can be set arbitrarily. By setting such constraints, it is possible to realize an application that uses limited resources and prevent unintended behavior of the application.
- the software development device 100 is typically realized by a general-purpose computer.
- FIG. 2 is a schematic diagram showing a hardware configuration example of the software development device 100 according to the present embodiment.
- the software development apparatus 100 includes a processor 102, a main memory 104, an input unit 106, a display 108, a hard disk 110, and a communication interface 122 as main components. These components are connected via the internal bus 120.
- the processor 102 is composed of, for example, a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit). A plurality of processors 102 may be arranged, or a processor 102 having a plurality of cores may be adopted.
- a CPU Central Processing Unit
- GPU Graphics Processing Unit
- the main memory 104 is composed of volatile storage devices such as DRAM (Dynamic Random Access Memory) and SRAM (Static Random Access Memory).
- the hard disk 110 holds various programs and various data executed by the processor 102.
- a non-volatile storage device such as an SSD (Solid State Drive) or a flash memory may be adopted.
- the specified program is expanded on the main memory 104, and the processor 102 sequentially issues computer-readable instructions included in the program expanded on the main memory 104. By executing it, various functions as described later are realized.
- the hard disk 110 stores a source code 112 arbitrarily created by the user, a software development program 114 for realizing an integrated development environment, and an object code 116 generated from the source code 112. .
- the software development program 114 generates an object code 116 from a source code 112 arbitrarily created by a user, and includes a module that provides a program development environment.
- the input unit 106 accepts an input operation of a user who operates the software development device 100.
- the input unit 106 may be, for example, a keyboard, a mouse, a touch panel arranged on the display device, an operation button arranged in the housing of the software development device 100, or the like.
- the display 108 displays the processing result of the processor 102 and the like.
- the display 108 may be, for example, an LCD (Liquid Crystal Display) or an organic EL (Electro-Luminescence) display.
- the communication interface 122 is in charge of exchanging data with the controller 200.
- the communication interface 122 includes, for example, a wired connection terminal such as a USB (Universal Serial Bus) port, a serial port such as IEEE 1394, and a legacy parallel port.
- the communication interface 122 may include an Ethernet® port.
- the software development device 100 may be realized by using a hard-wired circuit such as an ASIC (Application Specific Integrated Circuit) in which a circuit corresponding to a computer-readable instruction is incorporated. Further, it may be realized by using a circuit corresponding to a computer-readable instruction on FPGA (field-programmable gate array). Further, the processor 102, the main memory, the ASIC, the FPGA, and the like may be combined as appropriate.
- ASIC Application Specific Integrated Circuit
- FPGA field-programmable gate array
- the media may be, for example, an optical media such as a DVD (Digital Versatile Disc), a semiconductor media such as a USB memory, or the like.
- the software development program 114 may not only be installed in the software development device 100 via media, but may also be provided from a distribution server on the network.
- the controller 200 may be realized by using a general-purpose computer, or may be realized by using a semiconductor substrate including components necessary for realizing processing.
- FIG. 3 is a schematic diagram showing a hardware configuration example of the controller 200 according to the present embodiment.
- the controller 200 is electrically connected to the arithmetic processing unit 210, the wireless communication module 212, the USB controller 214, the communication controller 216, and one or more pads 220 as main components. Includes IO driver 218.
- the arithmetic processing unit 210 is an arithmetic unit that executes a program, and includes a processor 202, a main memory 204, and a flash memory 206 as main components.
- the processor 202 is composed of, for example, a CPU, a GPU, or the like. A plurality of processors 202 may be arranged, or a processor 202 having a plurality of cores may be adopted.
- the main memory 204 is composed of a volatile storage device such as a DRAM or SRAM.
- the flash memory 206 is a non-volatile storage device that holds a program executed by the processor 202 and necessary data. Among the programs stored in the flash memory 206, the designated program is expanded on the main memory 204 and executed by the processor 202 to realize various functions.
- the wireless communication module 212 is in charge of wireless data exchange with any other device.
- the wireless communication module 212 may include a processing circuit, an antenna, and the like for wireless communication with a device, a router, a mobile base station, and the like.
- the wireless communication supported by the wireless communication module 212 is, for example, Wi-Fi (registered trademark), Bluetooth (registered trademark), ZigBee (registered trademark), LPWA (Low Power Wide Area), GSM (registered trademark), W-CDMA. , CDMA200, LTE (Long Term Evolution), or 5th generation mobile communication system (5G).
- the USB controller 214 is in charge of exchanging data with the software development device 100.
- the communication controller 216 is in charge of wired data exchange with any other device.
- the communication controller 216 may be compatible with known data exchange methods such as serial communication, parallel communication, and GPIO (General-purpose input / output).
- the IO driver 218 is in charge of exchanging electrical signals with any device electrically connected via the pad 220.
- the IO driver 218 outputs an electric signal according to a command from the arithmetic processing unit 210. Further, the IO driver 218 detects an electric signal given via the pad 220 and outputs the detection result to the arithmetic processing unit 210. More specifically, the IO driver 218 is composed of a signal generation circuit, a signal detection circuit, a buffer circuit and the like.
- the controller 200 may be driven by electric power from a battery (not shown).
- a battery not shown.
- the "constraint” includes the rules to be observed in the execution of the object code 116 (assembler code) generated from the source code 112.
- the “constraint” includes restrictions or rules on resources used by object code 116 at runtime, restrictions or rules on the execution state of object code 116, restrictions or rules on execution procedures of object code 116, and source code 112. It may include restrictions or rules on orders.
- FIG. 4 is a diagram for explaining restrictions that can be set in the software development device 100 according to the present embodiment.
- the source code 112 shown in FIG. 4A is a code example for writing an output value determined by the predefined function fn1 () to a designated address.
- the source code 112 includes an output value variable definition 1121 and an output value variable definition 1121.
- the return value of the function fn1 () is set to the output value OutValue (instruction 1123). Then, the value of the output value OutValue is written to the address "0x1000" (instruction 1124).
- Constraints can be set by adding constraint code 1125 to the source code 112 shown in FIG. 4 (A).
- the instruction 1124 for writing the output value OutValue value to the address "0x1000" does not conform to the constraint. That is, the instruction 1124 cannot be executed.
- the memory range of "0x0000” to “0x0FFF” is set as a non-secure area, and the memory range of "0x1000" to “0x1FFF” is set. Is effective when it is set as a secure area.
- Typical methods for prohibiting the execution of instructions that do not conform to the constraints are (1) a method of determining in the process of generating the object code 116 from the source code 112, and (2) a method of determining when the object code 116 is generated. is assumed.
- the functions for generating the object code 116 such as the preprocessor, the compiler, and the optimizer evaluate the conformity with the constraint.
- the object code for evaluating the conformity to the constraint (hereinafter, also referred to as “conformity evaluation object code”) is used. It may be generated.
- the conformity evaluation object code 118 may be incorporated as a part of the object code 116, or may exist independently of the object code 116. Details of such an implementation example will be described later.
- the constraint specified in the constraint code 1125 is applied to the portion following the description of the constraint code 1125. That is, the part following the description of the constraint code 1125 is the scope of the constraint.
- the end position of the scope of this constraint can be set arbitrarily, but basically, the scope of the constraint can be within the range of parentheses including the constraint code 1125.
- the called procedure or function may also be the scope of the constraint.
- FIG. 5 is a diagram for explaining a scope of constraints that can be set in the software development device 100 according to the present embodiment.
- the instruction 1123 that calls the function fn1 () and sets the return value of the function fn1 () to the output value OutValue the partial source code 1126 of the called function fn1 () is also restricted. It may be included in the scope.
- the software development device 100 when the scope of the constraint includes a calling instruction, the software development device 100 also evaluates whether or not the instruction (procedure or function) called by the calling instruction conforms to the constraint. By sequentially inheriting the scope of such constraints, it is possible to reliably comply with the constraints by evaluating the conformity to the constraints even for the source code that defines the procedure or function to be called.
- FIG. 6 is a diagram for explaining a case where conformity of the constraints that can be set in the software development device 100 according to the present embodiment must be determined at the time of execution.
- FIG. 6A shows a source code 112 similar to the source code 112 shown in FIG. 4B.
- the address for writing the output value OutValue is fixed to "0x1000" (instruction 1124), and the source code 112 is lexically analyzed and syntactically analyzed to be constrained. It can be evaluated as not conforming.
- the address to write the output value OutValue value is determined by using the output address initial value IniPtr, so that the writing address is unique only by analyzing the source code 112. I can't decide.
- the process 1128 for determining the output address initial value IniPtr is defined. Then, the source code 112 specifies the instruction 1129 for determining the output address, which specifies that the output address OutAddrs is determined by adding "0F00" to the initial output address value Iniptr. Then, the value of the output value OutValue is written to the address indicated by the output address OutAddrs (instruction 1130).
- the value of the output address OutAddrs depends on the value of the output address initial value IniPtr, and dynamically when the corresponding object code 116 is executed. It will be decided.
- the software development device 100 provides a mechanism capable of evaluating conformity with constraints even while the corresponding object code 116 is being executed (details will be described later).
- constraints described above typically include restrictions or rules on the resources that object code 116 uses at runtime, restrictions or rules on the execution state of object code 116, restrictions or rules on the execution procedure of object code 116, and It may include restrictions or rules on the instructions contained in the source code 112.
- FIG. 7 is a block diagram showing a functional configuration provided by the software development device 100 according to the present embodiment. Each function shown in FIG. 7 is typically realized by the processor 102 of the software development device 100 executing the software development program 114.
- the software development program 114 receives the input of the source code 112 and generates the object code 116 (assembler code). More specifically, the software development program 114 includes a preprocessor 1141, a compiler 1142, an optimizer 1143, and a code generator 1144.
- the preprocessor 1141 performs lexical analysis and parsing on the source code 112, and controls the behavior of the compiler 1142, the optimizer 1143, and the code generator 1144.
- the compiler 1142 generates an object code based on the results of word analysis and syntactic analysis on the source code 112.
- Optimizer 1143 optimizes the generated object code.
- the code generator 1144 outputs the final object code 116 based on the result of optimization by the optimizer 1143.
- the preprocessor 1141, the compiler 1142, and the optimizer 1143 extract the constraints specified in the source code 112 and evaluate the conformity to the extracted constraints (step S1).
- the optimizer 1143 may modify the object code according to the content of the set constraint. In this way, the software development device 100 extracts the constraint set in the source code 112, and evaluates whether or not the source code 112 conforms to the constraint in the scope of the extracted constraint.
- the code generator 1144 generates the object code 118 for conformity evaluation, which is the assembler code for evaluating the conformity to the constraint, when the conformity to the extracted constraint can be evaluated only at the time of executing the object code 116 (step). S2).
- the software development device 100 generates the object code 116 so as to meet the constraints.
- FIG. 8 is a diagram for explaining a method of realizing the conformity to the constraint on the call in the software development device 100 according to the present embodiment.
- the process shown in FIG. 8 may be provided by the software development program 114, or may be provided by the conformity evaluation object code 118 when the object code 116 is executed.
- a data set 150 indicating the constraint scope (hereinafter, also referred to as “parent scope”) set in the calling procedure is generated.
- the parent scope dataset 150 contains information such as variables, constraints, and procedures.
- a management object 152 is also generated in association with the parent scope dataset 150.
- the data set 154 indicating the constraint scope (hereinafter, also referred to as "child scope") to be inherited by the called procedure is associated with the data set 150 of the parent scope.
- a management object 156 is also generated in association with the child scope dataset 154.
- the management object 152 associated with the parent scope dataset 150 is referenced (step S11). Then, the child scope data set 154 is generated based on the parent scope data set 150 (step S12). A management object 156 is generated from the management object 152 in response to a reference (step S13) from the child scope dataset 154 to the management object 152 (step S14). The generated management object 156 is associated with the child scope dataset 154 (step S15).
- FIG. 9 is a flowchart showing a processing procedure for generating an object code from the source code in the software development device 100 according to the present embodiment. Each step shown in FIG. 9 is typically realized by the processor 102 executing the software development program 114.
- the software development apparatus 100 executes lexical analysis and syntactic analysis on the input source code 112 (step S100).
- the software development device 100 determines whether or not a constraint is set based on the analysis result (step S102). That is, the software development device 100 extracts the constraint set in the source code 112, and evaluates whether or not the source code 112 conforms to the constraint in the scope of the extracted constraint.
- the constraint is not set (NO in step S102)
- the step in the middle is skipped and the process of step S118 or lower is executed.
- step S102 the software development device 100 selects one of the set constraints (step S104), and the source code included in the scope of the selected constraint is the relevant one. It is determined whether or not the constraint is met (step S106).
- the software development apparatus 100 If there is a part of the source code included in the scope of the selected constraint that does not conform to the constraint (NO in step S106), the software development apparatus 100 outputs a message that the constraint is not met (step S108). The process of generating the object code 116 is interrupted (step S110). Then, the process ends. As described above, the software development apparatus 100 stops the generation of the object code 116 when it is evaluated that the source code 112 does not conform to the constraint in the scope of the constraint.
- FIG. 10 is a diagram showing an example of a user interface screen provided by the software development device 100 according to the present embodiment.
- the user interface screen 300 displays an edit area 302 for creating the source code, a compile button 304 for starting the compilation of the source code created in the edit area 302, and an error message.
- Includes a message display area 306 for the purpose of A message indicating that the constraint is not met may be displayed in the message display area 306.
- step S106 If it cannot be determined whether or not the source code included in the scope of the selected constraint conforms to the constraint by referring to FIG. 9 again (“unknown” in step S106), the software development apparatus 100 uses the source code. Marks a portion where it cannot be determined whether or not the constraint is satisfied (step S112). Then, the process proceeds to step S114.
- step S106 If all the source code included in the scope of the selected constraint conforms to the constraint (YES in step S106), the software development apparatus 100 has completed the evaluation of all the set constraints. (Step S114). If some of the set constraints have not been evaluated (NO in step S114), the software development apparatus 100 selects one of the unrated constraints (step S116) and steps S106. Execute the following processing.
- step S114 If the evaluation of all the set constraints is completed (YES in step S114), the software development device 100 generates the object code 116 (step S118).
- step S120 determines whether or not a portion where it cannot be determined whether or not the source code conforms to the constraint is marked. That is, it is determined whether or not any part is marked in step S112 described above.
- step S122 If the part where it cannot be determined whether the source code conforms to the constraint is not marked (NO in step S120), the process of step S122 is skipped. On the other hand, if a portion where it cannot be determined whether or not the source code conforms to the constraint is marked (YES in step S120), the marked portion is set at the time of execution in the software development device 100.
- the object code 118 for conformity evaluation for determining whether or not the constraint is met is generated (step S122).
- the software development apparatus 100 cannot evaluate whether or not the source code 112 conforms to the constraint in the scope of the constraint, in addition to the object code 116 corresponding to the source code 112, the object code 116 During execution, another object code (object code 118 for conformity evaluation) for evaluating whether or not the constraint is met is generated.
- the software development device 100 outputs the generated object code (step S124). That is, the software development device 100 generates the object code so as to meet the constraints included in the source code 112. Then, the process ends.
- the present invention is not limited to this, and a definition file that defines the constraint may be prepared separately from the source code 112.
- the definition file may include information that identifies the procedure name or function name that is the scope of the constraint in association with the content of the constraint that is applied.
- any method can be adopted as the method of setting the constraint. ⁇ H. Advantages>
- the software development device 100 it is possible to provide an environment in which various restrictions can be freely set for a program executed by an edge device or the like. This allows you to create programs that run on edge devices, taking into account various points in terms of available resources and security.
- IoT system 1 IoT system, 2 edge device, 100 software development device, 102, 202 processor, 104, 204 main memory, 106 input section, 108 display, 110 hard disk, 112 source code, 114 software development program, 116 object code, 118 conformity evaluation Object code, 120 internal bus, 122 communication interface, 150, 154 dataset, 152, 156 management object, 200 controller, 206 flash memory, 210 arithmetic processing unit, 212 wireless communication module, 214 USB controller, 216 communication controller, 218 Driver, 220 pad, 300 user interface screen, 302 edit area, 304 compile button, 306 message display area, 1121,1127 definition, 1123,1124, 1129, 1130 instruction, 1125 constraint code, 1126 partial source code, 1128 processing, 1141 Preprocessor, 1142 compiler, 1143 optimizer, 1144 code generator.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
- Programmable Controllers (AREA)
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP20812818.1A EP3979068A4 (en) | 2019-05-31 | 2020-05-25 | SOFTWARE DEVELOPMENT DEVICE AND SOFTWARE DEVELOPMENT PROGRAM |
| US17/615,027 US12045608B2 (en) | 2019-05-31 | 2020-05-25 | Software development device and software development program |
| US18/740,827 US20240411554A1 (en) | 2019-05-31 | 2024-06-12 | Software development device and software development program |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2019-103138 | 2019-05-31 | ||
| JP2019103138A JP7473145B2 (ja) | 2019-05-31 | 2019-05-31 | ソフトウェア開発装置およびソフトウェア開発プログラム |
Related Child Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/615,027 A-371-Of-International US12045608B2 (en) | 2019-05-31 | 2020-05-25 | Software development device and software development program |
| US18/740,827 Continuation US20240411554A1 (en) | 2019-05-31 | 2024-06-12 | Software development device and software development program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020241570A1 true WO2020241570A1 (ja) | 2020-12-03 |
Family
ID=73553425
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2020/020541 Ceased WO2020241570A1 (ja) | 2019-05-31 | 2020-05-25 | ソフトウェア開発装置およびソフトウェア開発プログラム |
Country Status (5)
| Country | Link |
|---|---|
| US (2) | US12045608B2 (https=) |
| EP (1) | EP3979068A4 (https=) |
| JP (3) | JP7473145B2 (https=) |
| TW (2) | TWI849133B (https=) |
| WO (1) | WO2020241570A1 (https=) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004038956A (ja) | 2002-06-28 | 2004-02-05 | Microsoft Corp | コンピューティングシステムおよびその方法 |
| JP2006285582A (ja) * | 2005-03-31 | 2006-10-19 | Canon Inc | プログラムコード生成装置、プログラムコード生成方法、及びコンピュータプログラム |
| JP2007122631A (ja) * | 2005-10-31 | 2007-05-17 | Internatl Business Mach Corp <Ibm> | プログラムの規約違反を判断する装置、およびその方法 |
| JP2013140513A (ja) * | 2012-01-05 | 2013-07-18 | Fuji Electric Co Ltd | 組込み機器用ソフトウェア作成支援装置およびその方法、並びにプログラム |
Family Cites Families (43)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3259887B2 (ja) * | 1995-05-15 | 2002-02-25 | 株式会社ニフコ | 連結具 |
| US7900188B2 (en) * | 2006-09-01 | 2011-03-01 | The Mathworks, Inc. | Specifying implementations of code for code generation from a model |
| US8584085B2 (en) * | 2008-09-24 | 2013-11-12 | Accenture Global Services Limited | Identification of concepts in software |
| CA2746136C (en) * | 2011-07-12 | 2018-05-29 | Ibm Canada Limited - Ibm Canada Limitee | Managing aliasing constraints |
| US8874865B2 (en) * | 2011-09-09 | 2014-10-28 | International Business Machines Corporation | Memory type-specific access control of a field of a record |
| US8806458B2 (en) * | 2012-02-16 | 2014-08-12 | Microsoft Corporation | Vectorization of shaders |
| US20140143762A1 (en) * | 2012-11-21 | 2014-05-22 | Fujitsu Limited | Symbolic execution of dynamic programming languages |
| US9448820B1 (en) * | 2013-01-03 | 2016-09-20 | Amazon Technologies, Inc. | Constraint verification for distributed applications |
| US10095602B2 (en) * | 2013-03-14 | 2018-10-09 | Syntel, Inc. | Automated code analyzer |
| US9213530B2 (en) | 2013-08-15 | 2015-12-15 | Oracle International Corporation | Runtime memory throttling |
| KR101573580B1 (ko) * | 2013-10-28 | 2015-12-01 | 현대자동차주식회사 | 데이터 고속 전처리 방법과 이를 지원하는 전자 장치 및 차량 |
| US9262134B2 (en) * | 2014-03-21 | 2016-02-16 | International Business Machines Corporation | Analysis of source code changes |
| US9361068B2 (en) * | 2014-05-21 | 2016-06-07 | International Business Machines Corporation | System and method for using development objectives to guide implementation of source code |
| US20160004517A1 (en) * | 2014-07-01 | 2016-01-07 | Bank Of America Corporation | SOFTWARE DEVELOPMENT IMPROVEMENT TOOL - iREVIEW |
| US9619215B2 (en) | 2014-11-26 | 2017-04-11 | Sap Se | Pre-compiler |
| US9823904B2 (en) * | 2014-12-18 | 2017-11-21 | International Business Machines Corporation | Managed assertions in an integrated development environment |
| US11734000B2 (en) * | 2015-03-31 | 2023-08-22 | GalaxE.Solutions, Inc. | System and method for automated cross-application dependency mapping |
| US9588871B1 (en) * | 2015-04-14 | 2017-03-07 | Don Estes & Associates, Inc. | Method and system for dynamic business rule extraction |
| US20170300306A1 (en) * | 2016-04-13 | 2017-10-19 | Qualcomm Innovation Center, Inc. | Accelerated parsing in a virtual machine for similar javascript codes in webpages |
| US10423518B2 (en) | 2016-04-27 | 2019-09-24 | The Mathworks, Inc. | Systems and methods for analyzing violations of coding rules |
| CN110383238B (zh) * | 2016-05-15 | 2024-01-05 | 新思科技有限公司 | 用于基于模型的软件分析的系统和方法 |
| CN106095408B (zh) * | 2016-05-31 | 2019-05-14 | 浙江网新恒天软件有限公司 | 一种数据监控和代码自动生成与部署的系统及方法 |
| KR101850303B1 (ko) * | 2016-09-13 | 2018-05-31 | 슈어소프트테크주식회사 | 소스 코드 위배 수정 방법 및 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 |
| JP6845429B2 (ja) * | 2017-03-15 | 2021-03-17 | 富士通株式会社 | コンパイラプログラム、情報処理装置およびコンパイル方法 |
| US10310827B2 (en) * | 2017-04-08 | 2019-06-04 | Oracle International Corporation | Flow-based scoping |
| US10740470B2 (en) * | 2017-05-31 | 2020-08-11 | Shiftleft Inc. | System and method for application security profiling |
| US20190050210A1 (en) * | 2017-08-11 | 2019-02-14 | Fugue, Inc. | System and method for providing cloud operating system verifications for a domain-specific language for cloud services infrastructure |
| US20190129832A1 (en) * | 2017-11-02 | 2019-05-02 | Siemens Aktiengesellschaft | System and method for test data generation for use in model based testing using source code test annotations and constraint solving |
| CN107885503B (zh) * | 2017-11-11 | 2021-01-08 | 湖南大学 | 一种基于程序特征分析的迭代编译优化方法 |
| EP3493051A1 (en) * | 2017-11-30 | 2019-06-05 | The MathWorks, Inc. | System and methods for evaluating compliance of implementation code with a software architecture specification |
| US10565014B2 (en) * | 2017-12-05 | 2020-02-18 | Western Digital Technologies, Inc. | Data processing offload using in-storage code execution |
| US11216255B1 (en) * | 2017-12-30 | 2022-01-04 | ezbds, LLC | Open compiler system for the construction of safe and correct computational systems |
| US20190258460A1 (en) * | 2018-02-22 | 2019-08-22 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method and system for generating a software component |
| US10416972B1 (en) * | 2018-03-16 | 2019-09-17 | Capital One Services, Llc | Generating closures from abstract representation of source code |
| US10866792B1 (en) * | 2018-04-17 | 2020-12-15 | Palantir Technologies Inc. | System and methods for rules-based cleaning of deployment pipelines |
| US11074154B2 (en) * | 2018-06-06 | 2021-07-27 | International Business Machines Corporation | Identifying a source file for use in debugging compiled code |
| US10860338B2 (en) * | 2018-07-18 | 2020-12-08 | Oracle International Corporation | Type-constrained operations for plug-in types |
| US10977111B2 (en) * | 2018-08-28 | 2021-04-13 | Amazon Technologies, Inc. | Constraint solver execution service and infrastructure therefor |
| US11474795B2 (en) * | 2018-09-11 | 2022-10-18 | Apple Inc. | Static enforcement of provable assertions at compile |
| US11074049B2 (en) * | 2018-12-21 | 2021-07-27 | Dspace Digital Signal Processing And Control Engineering Gmbh | Method and system for generating program code modified by rule sets |
| CN109783107B (zh) * | 2019-01-10 | 2022-05-24 | 深圳市小赢信息技术有限责任公司 | 一种可视化的规则生成方法、装置及电子设备 |
| US11106437B2 (en) * | 2019-01-14 | 2021-08-31 | Microsoft Technology Licensing, Llc | Lookup table optimization for programming languages that target synchronous digital circuits |
| US11144725B2 (en) * | 2019-03-14 | 2021-10-12 | International Business Machines Corporation | Predictive natural language rule generation |
-
2019
- 2019-05-31 JP JP2019103138A patent/JP7473145B2/ja active Active
-
2020
- 2020-05-25 WO PCT/JP2020/020541 patent/WO2020241570A1/ja not_active Ceased
- 2020-05-25 EP EP20812818.1A patent/EP3979068A4/en active Pending
- 2020-05-25 US US17/615,027 patent/US12045608B2/en active Active
- 2020-05-28 TW TW109117816A patent/TWI849133B/zh active
- 2020-05-28 TW TW113121808A patent/TWI898655B/zh active
-
2024
- 2024-04-04 JP JP2024060516A patent/JP7789292B2/ja active Active
- 2024-06-12 US US18/740,827 patent/US20240411554A1/en active Pending
-
2025
- 2025-11-05 JP JP2025186427A patent/JP2026016754A/ja active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2004038956A (ja) | 2002-06-28 | 2004-02-05 | Microsoft Corp | コンピューティングシステムおよびその方法 |
| JP2006285582A (ja) * | 2005-03-31 | 2006-10-19 | Canon Inc | プログラムコード生成装置、プログラムコード生成方法、及びコンピュータプログラム |
| JP2007122631A (ja) * | 2005-10-31 | 2007-05-17 | Internatl Business Mach Corp <Ibm> | プログラムの規約違反を判断する装置、およびその方法 |
| JP2013140513A (ja) * | 2012-01-05 | 2013-07-18 | Fuji Electric Co Ltd | 組込み機器用ソフトウェア作成支援装置およびその方法、並びにプログラム |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP3979068A4 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7473145B2 (ja) | 2024-04-23 |
| JP2026016754A (ja) | 2026-02-03 |
| JP7789292B2 (ja) | 2025-12-22 |
| EP3979068A4 (en) | 2023-02-08 |
| US20240411554A1 (en) | 2024-12-12 |
| JP2020197866A (ja) | 2020-12-10 |
| US12045608B2 (en) | 2024-07-23 |
| TWI849133B (zh) | 2024-07-21 |
| TW202105172A (zh) | 2021-02-01 |
| TWI898655B (zh) | 2025-09-21 |
| JP2024096774A (ja) | 2024-07-17 |
| US20220236982A1 (en) | 2022-07-28 |
| EP3979068A1 (en) | 2022-04-06 |
| TW202503512A (zh) | 2025-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9424008B2 (en) | API descriptions | |
| US20050091230A1 (en) | Software build extensibility | |
| JP2016502219A (ja) | 不変オブジェクトタイプ | |
| JP7789291B2 (ja) | システムおよび方法 | |
| JP2026035883A (ja) | ソフトウェア開発装置およびソフトウェア開発プログラム | |
| JP7789292B2 (ja) | ソフトウェア開発装置、ソフトウェア開発プログラムおよび方法 | |
| CN114995790B (zh) | 一种组件开发方法、装置、计算机可读介质及电子设备 | |
| JP7592334B2 (ja) | コンピューティングシステムおよび情報処理方法 | |
| CN115469917A (zh) | 文件处理方法、装置、设备及存储介质 | |
| CN119759739B (zh) | 符号化调用堆栈的方法、装置、设备和存储介质 | |
| TWI921307B (zh) | 計算系統以及資訊處理方法 | |
| Baloukas et al. | Mapping embedded applications on MPSoCs: the MNEMEE approach | |
| KR20220124889A (ko) | 스타트업을 위한 투자단계별 투자기관 매칭 방법 및 장치 | |
| CN119415135A (zh) | 通信管理框架下的快速数据分发服务协议替换方法、装置、设备以及存储介质 |
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: 20812818 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2020812818 Country of ref document: EP Effective date: 20220103 |