G06F8/37

Bootstrapping profile-guided compilation and verification

Apparatus and methods related providing application execution information (AEI) are provided. A server can receive a request to provide a software package for a particular software application. The server can determine composite AEI (CAEI) for the particular software application. The CAEI can include a composite list of software with data about software methods of the particular software application executed by a computing device other than the server. The server can extract particular AEI related to the particular software application from the CAEI. The particular AEI can provide compiler hints for compiling at least one software method predicted to be executed by the particular software application. The server can generate the software package, where the software package can include the particular software application and the particular AEI. The server can provide the software package.

Architecture exploration and compiler optimization using neural networks
11556684 · 2023-01-17 · ·

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for optimizing integrated circuit architectures or compiler designs using an optimization engine. The optimization engine includes an auto-encoder and one or more regressors. Once trained, the optimization engine can encode initial, discrete input values of a set of input characteristics into a continuous domain and use continuous optimization techniques to identify final input values of the set of input characteristics that optimize one or more output characteristics.

SOFTWARE AND HARDWARE COLLABORATIVE COMPILATION PROCESSING SYSTEM AND METHOD
20230236807 · 2023-07-27 ·

A software and hardware collaborative compilation processing method and system. The system comprises an environment configurator, a command parser, a code filler, a scheduler and a heterogeneous target system, wherein the code filler is configured for obtaining the source program path of a user, reading source codes and identifying the heterogeneous target system according to a macro definition, complementing the codes related to the heterogeneous target system, carrying out primary filling and secondary filling on the source codes; the scheduler is configured for realizing compilation scheduling and execution scheduling functions respectively; the heterogeneous target system is configured for compiling and processing user modal data, and comprises at least two heterogeneous target subsystems; each target subsystem comprises a target-related middle-end compiler, a back-end compiler and a target-related running environment.

Generating source code from binary files

Various computing technologies for various reverse engineering platforms capable of outputting, including creating or generating, a human readable and high level source code, such as C, Fortran, LISP, or BASIC, from various binary files, such as application binaries, executable binaries, or data binaries, in an original language as developed pre-compilation. For example, some of such reverse engineering platforms can be programmed to disassemble binary files from different process architectures, identify various code optimizations as compiler introduced, reverse or unwind various compiler optimizations (de-optimize), and generate a human readable and high-level source code from de-optimized data.

Memory compiler techniques

Various implementations described herein are directed to a system and methods for memory compiling. For instance, a method may include selecting source corners from a memory compiler configuration and generating a standardized set of memory instances for the selected source corners. Also, the method may include deriving a reduced set of memory instances based on the standardized set of memory instances and building a memory compiler database for a compiler space based on the standardized set of memory instances and the reduced set of memory instances.

ANTI-FRAGILE SOFTWARE SYSTEMS
20230027823 · 2023-01-26 ·

A method includes generating output code based on input code using a compiler or translator and providing the output code to one or more platforms for execution. The method also includes receiving feedback associated with the execution of the output code, where the feedback identifies at least one of: one or more failures during the execution of the output code and one or more performance characteristics of the execution of the output code. The method further includes modifying the compiler or translator based on the feedback and generating additional output code using the modified compiler or translator.

Blackbox matching engine

A method and apparatus are disclosed for enhancing operable functionality of input source code files from a software program by identifying a first code snippet and a first library function which generate similar outputs from a shared input by parsing each and every line of code in a candidate code snippet to generate a templatized code snippet data structure for the first code snippet, and then testing the templatized code snippet data structure against extracted library function information to check for similarity of outputs between the first code snippet and the first library function in response to a shared input so that the developer is presented with a library function recommendation which includes the first code snippet, the first library function, and instructions for replacing the first code snippet with the first library function.

Mobile Application Development Device
20230048511 · 2023-02-16 ·

A mobile application development device having a platform processor, a native application converter engine, and a mobile platform framework engine configured to facilitate the development and deployment of mobile applications configured to be run on different mobile operating systems from code that is developed independently and agnostic of the mobile operating system on which it will ultimately run.

DEVICES, SYSTEMS, AND METHODS FOR TYPE INFERENCING CODE SCRIPTED IN A DYNAMIC LANGUAGE
20230127192 · 2023-04-27 · ·

A system configured to convert human-readable source code into computer-readable source code is disclosed herein. The system can include a processor and a memory configured to store a compiling engine that, when executed by the processor, causes the processor to: receive an input program comprising human-readable source code, wherein the human-readable source code comprises a complex function, type inference the complex function, thereby inferring a first set of potentially partial and imprecise data types for the input program; transform the type inferenced complex function and type infer again a number of times, type inference the transformed complex function, thereby inferring a full set of precise data types for the type inferenced input program; and generate an output program comprising machine-readable code, wherein the machine-readable code is fully optimized using the full set of precise data types.

COMPILER GENERATION FOR PARTIAL EVALUATION

A method for compiling source code may include obtaining an abstract syntax tree (AST) node of an AST generated from the source code. The AST node may include a first value and a second value. The method may further include obtaining, for the AST node, an intermediate representation (IR) graph, determining that the first value is a constant, propagating the first value to the IR graph to obtain a first partially evaluated IR graph, and generating, for the AST node, a compiler. The first partially evaluated IR graph corresponds to a result of executing the compiler. The method may further include determining, by the compiler, that the second value is a constant, propagating, by the compiler, the second value to the first partially evaluated IR graph to obtain a second partially evaluated first IR graph, and executing the AST node using the second partially evaluated IR graph.