Entries |
Document | Title | Date |
20080222619 | DETECTION OF ERRORS CAUSED BY INTERACTIONS OF INDEPENDENT SOFTWARE VENDOR CODE WITH HOST CODE - A method is provided for isolating errors which occur when code supplied by independent software vendors (ISV code) interacts with code supplied by a primary vendor (host code). Code suspected of containing ISV code with host code is executed. If the results are in error, the code is scanned and then compared with a master host code. Any differences are stored in a delta file, including locations in the host code where ISV code hooks into the host code. The code is then modified to by-pass the hooks to ISV code to generate a side-executable code and both codes are executed and the results are compared. A lack of substantial difference in the results is indicative that the ISV code adversely affects the host code while a difference between the results is indicative of an error in the modified code. | 09-11-2008 |
20080229291 | Compiler Implemented Software Cache Apparatus and Method in which Non-Aliased Explicitly Fetched Data are Excluded - A compiler implemented software cache apparatus and method in which non-aliased explicitly fetched data are excluded are provided. With the mechanisms of the illustrative embodiments, a compiler uses a forward data flow analysis to prove that there is no alias between the cached data and explicitly fetched data. Explicitly fetched data that has no alias in the cached data are excluded from the software cache. Explicitly fetched data that has aliases in the cached data are allowed to be stored in the software cache. In this way, there is no runtime overhead to maintain the correctness of the two copies of data. Moreover, the number of lines of the software cache that must be protected from eviction is decreased. This leads to a decrease in the amount of computation cycles required by the cache miss handler when evicting cache lines during cache miss handling. | 09-18-2008 |
20080235672 | Data layout using data type information - One embodiment relates to a computer-implemented method of compiling a software program into an executable binary file, including determining a data layout in the binary file and a data layout in the executable's dynamically allocated memory. The method includes taking into account data types of data as a factor in determining a data layout for the binary file and for the executable's dynamically allocated memory, wherein the data types include a floating-point data type and a non-floating-point data type. Other embodiments, aspects and features are also disclosed herein. | 09-25-2008 |
20080244539 | ENABLING ANALYSIS OF SOFTWARE SOURCE CODE - A source code clarification system is described. In various embodiments, the source code clarification system receives clarified source code and transforms the clarified source code into standard source code or object code that implements asynchronous components. The standard software source code can contain expressions for enabling asynchronous communications. The clarified code can be software source code that is expressed in an imperative language and is capable of static analysis. The clarified source code can contain a coordination primitive that encapsulates interactions between asynchronous components. By using the coordination primitives and events, the clarified source code can express interactions between asynchronous components so that the clarified source code is easier for developers to understand and for static analysis tools to analyze. | 10-02-2008 |
20080256522 | Automobile Controller, Software Generation Method and Software Generation System Thereof - In a processing description part | 10-16-2008 |
20080320453 | TYPE INFERENCE AND LATE BINDING - A type inference option is available for a computer programming language. The option acts as a switch to specify whether or not type inference is applicable (e.g., on or off). Type inference can be employed in conjunction with late binding or options therefor. In this manner, a computer program can be developed with the convenience of type inference and the flexibility of late binding while still maintaining at a degree of type safety. | 12-25-2008 |
20090037889 | SPECULATIVE CODE MOTION FOR MEMORY LATENCY HIDING - Various embodiments that may be used in performing speculative code motion for memory latency hiding are disclosed. One embodiment comprises extracting an asynchronous signal from a memory access instruction in a program to represent a latency of the memory access instruction, and generating a wait instruction to wait the asynchronous signal. | 02-05-2009 |
20090049430 | Verifying that binary object file has been generated from source files - For a source file on which basis a binary object file has been generated, a digital signature is generated for the source file, and the digital signature is stored. The digital signature may be secure hash algorithm (SHA) hash values. The binary object file is output. To verify that the binary object file has been generated from the source file, a digital signature is generated for the source file, and compared to the digital signature for the source file as previously stored. Where the digital signature for the source file as has been generated matches the digital signature for the source file previously stored, the binary object file is indicated as having been generated from the source file. | 02-19-2009 |
20090055808 | LOAD TIME RESOLUTION FOR DYNAMIC BINDING LANGUAGES - Embodiments of the present invention address deficiencies of the art in respect to load time resolutions and provide a method, system and computer program product for load time resolution of AOT compiled class references in a dynamic binding executing environment. In one embodiment of the invention, a method of resolving class references in AOT compiled code can be provided. The method can include updating AOT code at loading time for already resolved class references in the AOT code, and executing the updated AOT code to resolve remaining unresolved class references in the updated AOT code. | 02-26-2009 |
20090055809 | Binary Library - The subject matter of this specification can be embodied in, among other things, a process that includes receiving, during a computer programming process for a software program, a specification of a software module having a defined functionality for use by the software program. The software module is stored in a central repository having different versions of the software module. The process also includes compiling the software program. The compilation initiates steps including filtering versions of the software module that do not meet the specification. The specification corresponds to more than one version of the software module. The steps also include selecting, from versions that have not been filtered out, a version of the software module. The selection is based on one or more predetermined rules. The process also includes returning the selected version of the software module for local storage with the software program. | 02-26-2009 |
20090055810 | Method And System For Compilation And Execution Of Software Codes - The method and system disclosed herein is for compiling and executing a plurality of software codes. The requests from users are parsed and loaded using a set of child processes or a thread pool. A request handler is used to handle the compilation and execution requests from the user. Requests from a plurality of client processes are listed to compile and execute the solution codes from a plurality of users. A set of common libraries and system libraries for each compilation request are stored in a memory and loaded on to a compiler. Using the stored common libraries and system libraries, an executable binary format of the software code is created by the compiler. The executable binary format of the software code is loaded on a file system for further executions. | 02-26-2009 |
20090064112 | TECHNIQUE FOR ALLOCATING REGISTER TO VARIABLE FOR COMPILING - The present invention relates to allocating registers to variables in order to compile a program. In an embodiment of the present invention a compiler apparatus stores interference information indicating an interference relationship between variables, selects a register and allocates the register to each variables in accordance with a predetermined procedure, without allocating the same register to a set of variables having interference relationships. The compiler further replaces multiple variables having the same register allocated thereto with a new variable and generates an interference relationship by merging the interference relationships each concerning one of multiple variables. The compiler further updates interference information according to the generated interference relationship and allocates to each variable in the program using the new variable a register, selected in accordance with the predetermined procedure without allocating the same register to a set of variables having the interference relationships, based on the updated interference information. | 03-05-2009 |
20090070750 | Distributed parallel build system - This document describes, among other things, systems and methods for managing distributed parallel builds. A computer-implemented method to manage parallel builds, comprises identifying one or more software components in a software project, wherein each software component includes an executable binary file; determining a build configuration for each software component, wherein the build configuration includes a mapping from each software component to one or more build servers; and building each software component using the mapped one or more build servers in the corresponding build configuration, wherein the building includes compiling one or more source files associated with each software component to one or more object files, by distributing the one or more source files to one or more compilation machines. | 03-12-2009 |
20090083719 | METHOD OF COMPILING MACHINE CODE PROGRAM FOR PROGRAMMABLE LOGIC CONTROLLER - A method of compiling machine code program for programmable logic controller (PLC) reads a PLC program such as a ladder diagram program. The mnemonics codes in the PLC program are searched and checked with syntax correctness regarding PLC logic rule. When all of the mnemonics codes have correct syntax, the PLC program is converted to a C language program and the C language program is then converted into a C language object program. The C language object program is linked with a library file. When the link is successful, the linked program is directly converted into a machine language program for operation of PLC to access external input/output points (EXIO). | 03-26-2009 |
20090083720 | EMPLOYING IDENTIFIERS PROVIDED BY AN OPERATING SYSTEM OF A PROCESSING ENVIRONMENT TO OPTIMIZE THE PROCESSING ENVIRONMENT - Optimizations are provided for processing environments. Selected memory objects are tagged with unique identifiers by an operating system of the environment, and those identifiers are used to manage processing within the environment. By detecting by a processing platform of the environment that a memory object has been tagged with a unique identifier, certain tasks may be bypassed and/or memory objects may be reused, even if located at a different location. | 03-26-2009 |
20090083721 | REGISTER ALLOCATION BY PUZZLE SOLVING - We show that register allocation can be viewed as solving a collection of puzzles. We model the register file as a puzzle board and the program variables as puzzle pieces. We model pre-coloring by letting some of the puzzle pieces be already immovably placed on the puzzle board, and we model register aliasing by letting pieces have a plurality widths. For a wide variety of computer architectures, we can solve the puzzles in polynomial time. Puzzle solving is independent of spilling, that is, puzzle solving can be combined with a wide variety of approaches to spilling. | 03-26-2009 |
20090089763 | SHADER COMPILE SYSTEM AND METHOD - The present disclosure includes a shader compiler system and method. In an embodiment, a shader compiler includes a decoder to translate an instruction having a vector representation to a unified instruction representation. The shader compiler also includes an encoder to translate an instruction having a unified instruction representation to a processor executable instruction. | 04-02-2009 |
20090113402 | SERVER-BASED CODE COMPILATION - A server is disclosed that includes an interface to a data communication network, a compiler library that stores a plurality of different compilers, and compiler selection logic responsive to data received at the interface and including logic. The compiler selection logic is configured to select one of the plurality of different compilers based on an evaluation of the received data. The selected compiler generates compiled output data and the compiled output data is communicated over the data communication network to a client. | 04-30-2009 |
20090144708 | MULTI-ATTRIBUTE DYNAMIC LINK LIBRARY PACKAGING - A system for packaging a dynamically linked computer program function includes a compiler configured to compile a source file iteratively to create a plurality of corresponding object files, the source file associated with a specific computer program function having an established an attribute, with each attribute exhibiting a plurality of at least one of variations, characteristics and parameters, wherein each iteration of the compiling the source file results in the plurality of object files having the specific computer program function but with each object file having distinct attributes from one another; and a linker configured to link the plurality of resulting object files to create a single executable file, such that the single executable file comprises different versions of the specific computer program function; and wherein the single executable file is configured to facilitate choice of a selected version of the specific computer function. | 06-04-2009 |
20090150872 | DYNAMIC CODE UPDATE - A process for updating a computer program is provided in which a code update procedure is performed during the execution of one or more components of the program by an execution environment that is operable to execute a plurality of program components in a plurality of sequential frames of execution. The execution environment is further operable to: i) allow communication between one of the components and another of the components in different frames of execution; and ii) prevent communication between one of the components and another of the components in the same frame of execution. The code update procedure is performed at a frame transition between adjacent frames of execution. | 06-11-2009 |
20090193400 | Interprocedural register allocation for global variables - A method of compiling a computer program with interprocedural register allocation for global variables. The method of compiling includes a front-end phase, an interprocedural analysis phase, and a back-end phase. The interprocedural analysis phase receives intermediate representations from the front-end phase, processes the intermediate representations together to compute interprocedural information, and outputs optimized intermediate representations. During the interprocedural analysis phase, a set of eligible global variables are selected for promotion, wherein promotion of the selected eligible global variables comprises replacing memory references to said variables with references to global registers assigned to said variables. Other embodiments, aspects and features are also disclosed. | 07-30-2009 |
20090210864 | Method and array for changing software or source code - Selected components of a piece of software serve in a first variant, as variation points, are converted into a first XML code. The software, now in hybrid form, is shipped. The first code is converted on the customer side via one or more transformations, for example SLT, exclusively in accordance with transformation rules into a second XML code. In a second variant, a first XML code containing at least one language extension is converted in accordance with transformation rules into a more easily verifiable second XML code without said language extensions. In a third variant a source code formulated in XML is transformed in such a way that, following a back-conversion into the original programming language, a new source code is produced in which not only the representation, but also the actual program content and/or functionality has been changed. Alternatively, in a fourth variant a source code formulated in XML with, for example, initial states, code fragments to be replaced and foreign language modules tailored to the respective natural language of the user is mixed by transformation, as a result of which, following a back-conversion, a new source code is produced in which not only the representation, but also the actual program content and/or functionality has been changed. | 08-20-2009 |
20090217251 | METHOD AND APPARATUS FOR CONFIGURING, AND COMPILING CODE FOR, A COMMUNICATIONS TEST SET-UP - Computer-readable code stored on computer-readable media includes code to allocate at least one data structure in computer memory. The at least one data structure has a plurality of message parameter fields, and each of the message parameter fields has a deterministic position within the at least one data structure. The computer-readable code also includes code to navigate to different ones of the message parameter fields by interpreting non-compiled instructions. The instructions have a form that specifies a position of a particular message parameter field within the at least one data structure, and a number of bits in the particular message parameter field. The position of the particular message parameter field is specified in terms of a number of data offsets in the at least one data structure. The computer-readable code also includes code to configure a communications test-set following navigation to at least one of the message parameter fields. | 08-27-2009 |
20090235238 | CONDENSING PATTERN MATCHER GENERATION FOR INTERMEDIATE LANGUAGE PATTERNS - Embodiments of the present invention address deficiencies of the art in respect to pattern matcher generation and provide a method, system and computer program product for automatic pattern matching and generation of intermediate language patterns. In one embodiment of the invention, a pattern matcher generation method can be provided. The method can include identifying input elements from intermediate language code, reducing the identified input elements from the intermediate language code to inputs of common and unique use, creating a unifiable form for each of the input elements of common and unique use, and generating a pattern matcher for each of the input elements of common and unique use in the intermediate language code using a corresponding unifiable form in place of each of the input elements of common and unique use. In particular, the generated pattern matcher can be EMTF conformant. | 09-17-2009 |
20090235239 | BUILD SYSTEM REDIRECT - Embodiments may provide a makefile interposer, which enables a makefile to be used for building software for different platforms without modifying the makefile. In some embodiments, the interposer intercepts the commands run by makefile and automatically interposes the correct library files, dependencies, paths, and other information used by make to build the program for a particular platform. Additionally, calls that the invoked tools themselves make are intercepted and the interposer may redirect them to the platform-specific tools or file system locations including redirecting file descriptors. In some instances, when a tool is called that is not in the platform, the interposer may also fall back on the other system tools. | 09-17-2009 |
20090249312 | Process Generation Approach and System for an Integrated Telecom Platform - An approach for process generation for computer telephony integration (CTI) of an integrated telecom platform, including the following steps. Step 1: The process input module receives the flow chart input by a user and saves it as a flow chart record file; Step 2: the process coversion module coverts the flow chart record file into the equivalent source codes and saves them as a flow chart coversion output file; Step 3: the process compilation module compiles the flow chart coversion output file and saves it as a flow chart compilation output file. The invention also announces a process generation system for an integrated telecom platform, including the process input module, the process coversion module and the process compilation module. The invention is an ideal system for various CTI applications, allowing easy and fast subsequent development as well as convenient system upgrade and maintenance. | 10-01-2009 |
20090249313 | System and Method for Prioritizing the Compilation of Bytecode Modules During Installation of a Software Application - A system and method for compiling part of the bytecode for a software application into native code at install time when the software application is installed on a particular computer are described. According to one embodiment of the method, usage information for the software application may be received. The usage information may indicate how frequently or commonly each of a plurality of features of the software application is used. The usage information may be analyzed to determine a rank ordering of the features. The method may further comprise installing the software application on the particular computer. Installing the software application may comprise compiling one or more bytecode modules of the software application into native code, where the one or more bytecode modules are selected from a plurality of bytecode modules depending upon the rank ordering of the features. | 10-01-2009 |
20090249314 | COMPUTER ASSISTED DATA COLLECTION FOR SURVEYS AND THE LIKE - An exemplary MMIC (“Multi-Mode Interviewing Capability”) survey program is a computerized tool that supports various traditional modes of collecting interview data, including telephone interviewing, written interviewing, and personal interviewing, and can be used to manage the whole interview process from questionnaire design, sample management, and fieldwork monitoring to final dataset production. The collected data may also include non-textual data from survey participants such as medical measurements of blood pressure and heart rate. Self-interviewing using the Internet is also possible which permits real time availability of results and the participation of respondents from virtually anywhere in the world, using devices such as PDA's, Smart phones and Web TV's. The MMIC survey structure is non-linear and object oriented, which permits a connection between all the building blocks of the survey to be defined on any level. The compiled survey includes sufficient metadata to facilitate decompilation and the production of equivalent source code in any supported programming language, whether or not it was originally programmed in that language. This stored metadata not only allows researchers to later trace back the exact conditions under which this particular answer was given, but also permits results from multiple iterations of the related surveys to be combined in a rigorous manner that will be transparent to subsequent analysis and research. | 10-01-2009 |
20090249315 | OBJECT STORAGE AND SYNCHRONIZATION HOOKS FOR OCCASIONALLY-CONNECTED DEVICES - A system may include an application programming interface (API) layer, a cache layer, and an object storage/access layer. The API layer may expose an interface to store a business object and an interface to retrieve the business object, and may transmit a request to store the business object and a request to retrieve the business object, and the cache layer may cache the business object and transmit the request to store the business object and the request to retrieve the business object. The object storage/access layer may receive the request to store the business object and, in response to the request to store the business object, to invoke a serialization method exposed by the business object to store the data associated with the object in a data structure. The object storage/access layer may also receive the request to retrieve the business object and, in response to the request to retrieve the business object, to invoke a deserialization method of the business object to deserialize the data associated with the business object in the data structure. | 10-01-2009 |
20090300589 | Electronic Crime Detection and Tracking - A system for electronic crime reduction is provided, comprising a computer system, a database, a malware de-compiler, a malware parser, and an inference engine. The database contains information that associates electronic crime attack signature data with at least one of an individual, a group, and a location. The malware de-compiler, when executed on the computer system, translates a first malware executable to an assembly language version. The first malware is associated with an electronic crime that has been committed. The malware parser, when executed on the computer system, analyzes the assembly language version to identify distinctive coding preferences used to develop the first malware. The inference engine, when executed on the computer system, analyzes the distinctive coding preferences identified by the malware parser application in combination with searching the database to identify one of an individual, a group, and a location associated with the electronic crime. | 12-03-2009 |
20090300590 | STATICALLY SPECULATIVE COMPILATION AND EXECUTION - A system, for use with a compiler architecture framework, includes performing a statically speculative compilation process to extract and use speculative static information, encoding the speculative static information in an instruction set architecture of a processor, and executing a compiled computer program using the speculative static information, wherein executing supports static speculation driven mechanisms and controls. | 12-03-2009 |
20090328011 | SAFE CODE FOR SIGNATURE UPDATES IN AN INTRUSION PREVENTION SYSTEM - Described is a technology by which a signature used by network traffic intrusion prevention/detection systems includes logic that helps a prevention/detection engine detect that signature. A signature to detect is compiled into executable logic that is executed to communicate with an engine that evaluates network traffic. The signature logic provides an expression set (such as group of regular expressions) for the engine to match against a token corresponding to the network traffic. When matched, the engine notifies the logic and receives a further expression set to match, or a communication indicative that that the signature was detected. The signature thus directs the analysis, facilitating a lightweight, generic engine. Safety of the signature logic is described as being accomplished through layers, including by publisher signing, and by compilation and execution (e.g., interpretation) in safe environments. | 12-31-2009 |
20090328012 | COMPILER IN A MANAGED APPLICATION CONTEXT - A batch compiler is employed to enable compilation of code provided at runtime. A managed application receives code during execution and invokes the compiler to transform the code to enable it to execute within the context of the receiving application. Among other things, employment of a batch compiler preserves investments made to such compilers while also opening up new scenarios in application scripting and/or hosting that are otherwise unavailable. | 12-31-2009 |
20090328013 | COMPONENTIZATION OF COMPILER FUNCTIONALITY - Compiler functionality is componentized to enable use across different contexts. Conventionally tightly coupled functionality is decoupled and an interface afforded to facilitate interaction with compiler components/subcomponents in various scenarios. In one instance, compiler components can be employed across compile time and runtime. Compile time functionality can be employed at runtime and runtime functionality utilized at compile time thereby blurring the line between time dimensions. | 12-31-2009 |
20090328014 | COMPILER BASED CODE MODIFICATION FOR USE IN DOCUMENT RANKING - The subject matter disclosed herein relates to alter an expression of executable instructions via a compiler component for use in ranking of electronic documents. | 12-31-2009 |
20100070953 | COMPILER SYSTEM AND A METHOD OF COMPILING A SOURCE CODE INTO AN ENCRYPTED MACHINE LANGUAGE CODE - A compiler system including a compiler configured to compile a source code into a machine language code is presented, so that the machine language code is executable on a processing unit, wherein the processing unit comprises an internal register that is changing its state responsive to an execution of the machine language code. The compiler is configured to encrypt the machine language code based on an encryption function that depends on the state of the internal register. | 03-18-2010 |
20100070954 | CUSTOM DATABASE SYSTEM AND METHOD OF BUILDING AND OPERATING THE SAME - A process for performing a software task is detailed that includes preparing readable programming computer code and storing the computer code within the storage of a computer system in uncompiled form. The computer code is compiled to machine code in response to an executional call for the code. The machine code corresponding to the computer code is then executed to perform the software task. In addition to removing the conventional limitation of retaining only executable compiled software, only a portion of a larger total computer code necessary to perform the desired software task is compiled in response to an executional call from a user, request for another computer process, a prompt by an interfaced electronic instrument or a boot event. | 03-18-2010 |
20100077387 | MANAGING UPDATES USING COMPILER AND LINKER INFORMATION - Generating a next build version of a software application using information generated during a previous build version at the compiler and linker levels. The information describes the structure and build decisions applied during creation of the previous build version. Generation of the current build version is modified based on the information to minimize the binary differences between the builds. In some embodiments, a linker arranges the contents during the previous build in anticipation of the current build. Further, the linker pads the previous build with unused address space to minimize relocation of the contents of the build. | 03-25-2010 |
20100088685 | SYSTEM AND METHOD FOR MAPPING A DOMAIN MODELING LANGUAGE TO A RELATIONAL STORE - A method and system for mapping between constructs in a domain modeling language and a relational storage language is provided. A source code authored in a source language is received and a set of constructs in the source code are identified. The set of constructs in the source code are mapped to a set of constructs in a target language. The source code is then compiled into a target code authored in the target language such that one of the source code or target code include a declarative constraint-based and/or order-independent execution model. | 04-08-2010 |
20100122241 | Executable template - Systems, methods, and other embodiments associated with executable templates are described. One example method includes generating an executable template from a set of template data. When an executable template is executed, the executable template creates one or more instantiated entities. These instantiated entities may then be combined with entities created from portions of the original template that were not compilable into the executable format. | 05-13-2010 |
20100146493 | METHOD AND SYSTEM FOR PLATFORM-INDEPENDENT FILE SYSTEM INTERACTION - Embodiments disclosed can provide a simple, singular programmatic interface for application developers to access and manipulate ASCII and non-ASCII file specifications in a cross-platform development environment regardless of operating system encoding capabilities or of the nature of the original file specification encoding. An application development environment is configured on a computer system such that a magic class file string object is instantiated when a bit string of a first encoding is received. The bit string represents a file specification of a file containing application code written by an application developer. The magic class file string object automatically determines what target operating system is being called by a function call in the application code, automatically transcodes the bit string from the first encoding into a second encoding of the target operating system, and automatically makes a correct file system API call specific to the target operating system. | 06-10-2010 |
20100153931 | Operand Data Structure For Block Computation - In response to receiving pre-processed code, a compiler identifies a code section that is not a candidate for acceleration and a code block that is a candidate for acceleration. The code block specifies an iterated operation having a first operand and a second operand, where each of multiple first operands and each of multiple second operands for the iterated operation has a defined addressing relationship. In response to the identifying, the compiler generates post-processed code containing lower level instruction(s) corresponding to the identified code section and creates and outputs an operand data structure separate from the post-processed code. The operand data structure specifies the defined addressing relationship for the multiple first operands and for the multiple second operands. The compiler places a block computation command in the post-processed code that invokes processing of the operand data structure to compute operand addresses. | 06-17-2010 |
20100169869 | Supporting method references in the JAVA language - According to one embodiment of the invention, the JAVA compiler is modified so that when the JAVA compiler determines, while compiling source code, that an invocation of a first method, which expects to receive a reference to an object, passes, to the first method, a reference to a second method instead of a reference to an object, the JAVA compiler does not issue a compile-time error as the JAVA compiler normally would. Instead, the JAVA compiler generates compiled code (e.g., byte code) that the JAVA compiler would have generated if the source code had (a) defined a “bridge” class that implemented a method that invoked the second method and (b) contained, in the invocation of the first method, a reference to an object that was an instance of the “bridge” class in the place of the reference to the second method. | 07-01-2010 |
20100180264 | HANDLING MULTIPLE DEFINITION OF TYPES - User assemblies can be created by a compiler that can handle more than one type definition during execution. Local copies are created for respective authoritative types in a code library, and the local copies are marked with a local type identifier. An authoritative type identifier (e.g., a globally unique identifier (GUID)) is copied from the authoritative type to the local type, and functions and properties associated with the local type are also copied from the authoritative type. Authoritative types are resolved for requested types when a local assembly references a local type from a compiled user assembly. The local type can be identified by a local type identifier, and an authoritative type can be retrieved from the code library that has a same authoritative type identifier as the requested type. A local copy of the retrieved authoritative type can be copied to the local assembly under compilation. The compiler can then emit user assemblies that comprise merely local types. | 07-15-2010 |
20100180265 | FIRMWARE EXTENSION METHOD AND FIRMWARE BUILDER - A firmware extension method is provided, particularly adaptable for an embedded system. Firstly, a baseline firmware image is provided with a header file. Secondly, an extension firmware image is generated based on the header file, comprising one or more extended functions. Thereafter, a callback table is generated, comprising pointers pointing to entries of the extended functions in the extension firmware image. The baseline firmware image, the extension firmware image and the callback table are then merged to generate a merged firmware image. | 07-15-2010 |
20100180266 | Multi Level Virtual Function Tables - A multi level virtual function table uses a hierarchy of chunks or segments of virtual function tables to identify methods for a particular class. At least one level of indirection pointers may point to individual virtual function table chunks, which may be shared by multiple classes. In some embodiments, fixed size chunks of virtual function tables may be used, other embodiments may use variable sized chunks of virtual function tables. In just in time compiled code, virtual function tables may be limited to sharing across parent and child classes, while in pre-compiled code, more complex sharing may be used. | 07-15-2010 |
20100180267 | PLC COMPILING SYSTEM AND COMPILING METHOD - A programmable logic controller (PLC) compiling system includes a ladder diagram loading unit, an instruction set loading unit storing instruction sets, an instruction compiling unit, an operating system loading unit storing dynamic link library (DLL) file templates based on a number of operating systems, and a DLL file compiling unit. The ladder diagram loading unit loads and stores predetermined ladder diagrams. The instruction compiling unit loads the predetermined ladder diagrams and the instruction sets, and compiles the predetermined ladder diagrams to a plurality of instructions corresponding to the instruction sets accordingly. The DLL file compiling unit loads the compiled instructions and the DLL file templates, and compiles the compiled instructions to a plurality of DLL files based on the DLL file templates to match the instruction sets accordingly. | 07-15-2010 |
20100180268 | ARITHMETIC UNIT, PROCESSOR, COMPILER AND COMPILING METHOD - An arithmetic unit which includes: a data supply section which supplies floating-point type object data to which a sign is to be added and condition data which includes a condition under which the sign is added; a sign data generating section which extracts the condition included in the condition data and generates sign data for adding the sign to the object data on the basis of the extracted condition; and an integer arithmetic operation section which performs an integer arithmetic operation while treating the object data as integer type data so as to add the sign to the object data on the basis of the sign data and the object data. | 07-15-2010 |
20100192135 | Method and Structure to Develop a Test Program for Semiconductor Integrated Circuits - Test program development for a semiconductor test system, such as automated test equipment (ATE), using object-oriented constructs is described. The invention provides a method for describing test system resources, test system configuration, module configuration, test sequence, test plan, test condition, test pattern, and timing information in general-purpose object-oriented constructs, e.g., C++ objects and classes. In particular, the modularity of program development is suitable for developing test programs for an open architecture semiconductor test system. | 07-29-2010 |
20100205585 | FAST VECTOR MASKING ALGORITHM FOR CONDITIONAL DATA SELECTION IN SIMD ARCHITECTURES - Techniques are disclosed for generating fast vector masking SIMD code corresponding to source code having a conditional statement, where the SIMD code replaces the conditional statements with vector SIMD operations. One technique includes performing conditional masking using vector operations, bit masking operations, and bitwise logical operations. The need for conditional statements in SIMD code is thereby removed, allowing SIMD hardware to avoid having to use branch prediction. This reduces the number of pipeline stalls and results in increased utilization of the SIMD computational units. | 08-12-2010 |
20100205586 | Evaluation compiler method - A method and software system allowing the ability to use an existing Excel model and extract the business intelligence, relationships, computations and model into pure mathematical relationships and codes such that the business intelligence in the original model is completely protected and the model can be run at extremely high speed and advanced simulations of hundreds of thousands to millions of trials can be run. | 08-12-2010 |
20100205587 | METHOD, DEVICE AND SYSTEM FOR REALIZING KERNEL ONLINE PATCHING - A method, a device, and a system for realizing kernel online patching are provided. The method includes loading a pre-generated patch file in an operating system, setting a first breakpoint at an execution start position of the primitive function when a system thread executes the primitive function and a breakpoint exception occurs during the thread execution process due to the first breakpoint, modifying a returning execution address of the first breakpoint into the destination address of the patch function corresponding to the primitive function according to the first corresponding relation, and removing the first breakpoint. The kernel online patching implementation has a small impact on the normal operation of the operating system. The patch function becomes valid without restarting the operating system, thereby satisfying the high reliability requirements of carrier-class products. | 08-12-2010 |
20100211937 | INTERMEDIATE FORM FOR BITWIDTH SENSITIVE APPLICATIONS AND USES THEREOF - Techniques for representing a program are provided. The techniques include creating one or more sub-variables for each of one or more variables in the program, and maintaining a single size of each of the one or more variables throughout a life-span of each of the one or more variables. Additionally, techniques for performing register allocation are also provided. The techniques include representing bit-width information of each of one or more variables in a powers-of-two representation, wherein the one or more variables comprise one or more variables in a program, coalescing the one or more variables, packing the one or more coalesced variables, and using the one or more packed variables to perform register allocation. | 08-19-2010 |
20100223602 | METHODS AND TOOLS FOR CREATION OF READ-ONLY-MEMORY SOFTWARE BINARY IMAGES AND CORRESPONDING SORTWARE PATCHES - There are described tools and methodologies for building Read Only Memory (ROM) mask software images and the corresponding data/code patching software images. One method is for creating ROM mask content having patch references included therein whereby patch reference errors are detected and corrected. A software patch for a ROM mask with existing patch references may then automatically be created. | 09-02-2010 |
20100223603 | MULTIPLE STAGE PROGRAM RECOMPILER USING INFORMATION FLOW DETERMINATION - A method for dynamic recompilation of source software instructions for execution by a target processor, which considers not only the specific source instructions, but also the intent and purpose of the instructions, to translate and optimize a set of equivalent code for the target processor. The dynamic recompiler determines what the source operation code is trying to accomplish and the optimum way of doing it at the target processor, in an “interpolative” and context sensitive fashion. The source instructions are processed in blocks of varying sizes by the dynamic recompiler, which considers the instructions that come before and after a current instruction to determine the most efficient approach out of several available approaches for encoding the operation code for the target processor to perform the equivalent tasks specified by the source instructions. The dynamic compiler comprises a decoding stage, an optimization stage and an encoding stage. | 09-02-2010 |
20100251225 | COMPUTER READABLE RECORDING MEDIUM STORING EXECUTABLE PROGRAM, EXECUTABLE PROGRAM GENERATING APPARATUS, AND EXECUTABLE PROGRAM GENERATING METHOD - A recording medium storing a computer readable resource-bound program for instructing the computer to execute processing, the resource-bound program including receiving an execution start instruction, initiating the executable program when the execution start instruction is an execution instruction for the executable program including a resource used for generating an executable program, and extracting and outputting the resource when the execution start instruction is an output instruction of the resource. | 09-30-2010 |
20100275187 | IMPLEMENTING A CLASS ORIENTED DATA FLOW PROGRAM ON A PROGRAMMABLE HARDWARE ELEMENT - System and method for converting a class oriented data flow program to a structure oriented data flow program. A first data flow program is received, where the first data flow program is an object oriented program comprising instances of one or more classes, and wherein the first data flow program is executable to perform a first function. The first data flow program is automatically converted to a second data flow program, where the second data flow program does not include the instances of the one or more classes, and where the second data flow program is executable to perform the first function. The second data flow program is stored on a computer memory, where the second data flow program is configured to be deployed to a device, e.g., a programmable hardware element, and where the second data flow program is executable on the device to perform the first function. | 10-28-2010 |
20100287542 | SINGLE CODE SET APPLICATIONS EXECUTING IN A MULTIPLE PLATFORM SYSTEM - Embodiments of the claimed subject matter are directed to methods and a system that allows an application comprising a single code set under the COBOL Programming Language to execute in multiple platforms on the same multi-platform system (such as a mainframe). In one embodiment, a single code set is pre-compiled to determine specific portions of the code set compatible with the host (or prospective) platform. Once the code set has been pre-compiled to determine compatible portions, those portions may be compiled and executed in the host platform. According to these embodiments, an application may be executed from a single code set that is compatible with multiple platforms, thereby potentially reducing the complexity of developing the application for multiple platforms. | 11-11-2010 |
20100293532 | FAILURE RECOVERY FOR STREAM PROCESSING APPLICATIONS - In one embodiment, the invention is a method and apparatus for failure recovery for stream processing applications. One embodiment of a method for providing a failure recovery mechanism for a stream processing application includes receiving source code for the stream processing application, wherein the source code defines a fault tolerance policy for each of the components of the stream processing application, and wherein respective fault tolerance policies defined for at least two of the plurality of components are different, generating a sequence of instructions for converting the state(s) of the component(s) into a checkpoint file comprising a sequence of storable bits on a periodic basis, according to a frequency defined in the fault tolerance policy, initiating execution of the stream processing application, and storing the checkpoint file, during execution of the stream processing application, at a location that is accessible after failure recovery. | 11-18-2010 |
20100293533 | INCREMENTALLY CONSTRUCTING EXECUTABLE CODE FOR COMPONENT-BASED APPLICATIONS - One embodiment of a method for constructing executable code for a component-based application includes receiving a request to compile source code for the component-based application, wherein the request identifies the source code, and wherein the source code comprises a plurality of source code components, each of the source code components implementing a different component of the application, and performing a series of steps for each source code component where the series of steps includes: deriving a signature for the source code component, retrieving a stored signature corresponding to a currently available instance of executable code for the source code component, comparing the derived signature with the stored signature, compiling the source code component into the executable code when the derived signature does not match the stored signature, and obtaining the executable code for the source code component from a repository when the derived signature matches the stored signature. | 11-18-2010 |
20100299658 | COMPILE-TIME CONTEXT FOR DYNAMICALLY BOUND OPERATIONS - Compile-time context information is captured and provided to a runtime binder for dynamic features in programming languages. For example, a C# run-time binder uses the information to perform a run-time bind with semantics matching the compiler's binding behavior. Dynamic programming language features supported relate to compound operations, events, delegates, member accessibility, dynamic-typed objects, structs passed by ref, arguments passed by name rather than position, extension methods, conditionally compiled methods, literal arguments, overflow checking, dynamic indexed properties, dynamic method groups, and static method groups. | 11-25-2010 |
20100306748 | COMPILER AND COMPILING METHOD FOR A NETWORKED CONTROL SYSTEM COMPRISING A PLURALITY OF DEVICES - The invention relates to a compiler and a method for compiling control logic for a plurality of devices of a networked control system, particularly to the automated assignment of control logic to devices. The invention provides with a compilation an automatic assignment procedure of an executable runtime code to devices of a networked control system. The assignment process of control logic to the devices may take various optimization criteria into account which include various distribution aspects, e.g. network resources or capabilities, such as available bandwidth or reliability of the network links, and device resources or capabilities, e.g. CPU, memory, power source or sleeping behaviour which may influence the observed behaviour of the devices, e.g. due to transmission delay or data packet loss. | 12-02-2010 |
20100325617 | Compiling a Graphical Program Having a Textual Language Program Portion for a Real Time Target - Compiling a graphical program including a textual program portion for execution on a real time target. The graphical program may be created on a display or stored in a memory medium. The graphical program may include a plurality of connected nodes which visually indicate functionality of the graphical program. The graphical program may include at least one node which corresponds to a textual language program portion. The textual language program portion may be written or specified in a dynamically typed programming language. The graphical program may be compiled for deployment on the real time target. Compiling the graphical program may include compiling the plurality of connected nodes and the textual language program portion for deterministic real time execution on the real time target. | 12-23-2010 |
20100333076 | PROGRAMMING LANGUAGE TRANSLATOR - A computer readable medium stores a program, executable by a computer, for enabling translation of machine-centric commands in an instrument protocol to a programming language for controlling an instrument configured to use the machine-centric commands. The computer readable medium includes an identifying code segment for identifying instrument protocol commands executable by the instrument, and a generating code segment generates methods corresponding to the instrument protocol commands, each method including programming language source code or compiled machine code for executing the corresponding instrument protocol command. A storing code segment stores the methods in a program library associated with the instrument, the program library enabling selection of at least one method by a programming language program that controls the instrument, in order to execute the instrument protocol command corresponding to the selected method. | 12-30-2010 |
20110035732 | Method and apparatus for defining and compiling or converting language and user interface system agnostic view definitions to runnable code - A method of converting a declaratively defined and language & user interface platform agnostic view to source or binary computer code that is then used to display the view at application run-time. The method includes processing of the view definition, reading the component definition for each component defined in the view, loading and executing each component builder code module to retrieve the output code for each component, and then integrating the output code for each component into a single output for the view. The method allows for new components to be introduced to the system, unknown at the time of the system's packaging, and it provides means for the view to be fully declarative in nature, including no software instructions of any kind. | 02-10-2011 |
20110035733 | Software Self-Defense Systems and Methods - Systems and methods are disclosed for protecting a computer program from unauthorized analysis and modification. Obfuscation transformations can be applied to the computer program's local structure, control graph, and/or data structure to render the program more difficult to understand and/or modify. Tamper-resistance mechanisms can be incorporated into the computer program to detect attempts to tamper with the program's operation. Once an attempt to tamper with the computer program is detected, the computer program reports it to an external agent, ceases normal operation, and/or reverses any modifications made by the attempted tampering. The computer program can also be watermarked to facilitate identification of its owner. The obfuscation, tamper-resistance, and watermarking transformations can be applied to the computer program's source code, object code, or executable image. | 02-10-2011 |
20110035734 | System and method for effectively processing software changes - This invention discloses a software development system that includes a user input device, a compiler, a build microprocessor and a data storage. The data storage stores a built program built by the build microprocessor by packaging a plurality of heterogeneous program units comprises at least a binary program-unit processed by the compiler and at least a non-compiled program unit inputted by a user to the built microprocessor through the user input device. The program unit to be compiled into binary program unit and the non-compiled program unit stored in the data storage are programmed by at least two different programming languages. | 02-10-2011 |
20110047533 | Generating Code Adapted for Interlinking Legacy Scalar Code and Extended Vector Code - Mechanisms for intermixing code are provided. Source code is received for compilation using an extended Application Binary Interface (ABI) that extends a legacy ABI and uses a different register configuration than the legacy ABI. First compiled code is generated based on the source code, the first compiled code comprising code for accommodating the difference in register configurations used by the extended ABI and the legacy ABI. The first compiled code and second compiled code are intermixed to generate intermixed code, the second compiled code being compiled code that uses the legacy ABI. The intermixed code comprises at least one call instruction that is one of a call from the first compiled code to the second compiled code or a call from the second compiled code to the first compiled code. The code for accommodating the difference in register configurations is associated with the at least one call instruction. | 02-24-2011 |
20110067011 | TRANSFORMATION OF SINGLE-THREADED CODE TO SPECULATIVE PRECOMPUTATION ENABLED CODE - In one embodiment a thread management method identifies in a main program a set of instructions that can be dynamically activated as speculative precomputation threads. A wait/sleep operation is performed on the speculative precomputation threads between thread creation and activation, and progress of non-speculative threads is gauged through monitoring a set of global variables, allowing the speculative precomputation threads to determine its relative progress with respect to non-speculative threads. | 03-17-2011 |
20110067012 | SYSTEM AND METHOD FOR GENERATING WHITE-BOX IMPLEMENTATIONS OF SOFTWARE APPLICATIONS - A development suite for generating files, such as DRM-protected files, using white-box cryptography. The suite consists of a code generation tool, a data transformation engine, and a white-box data generation tool, and a white-box library. In the white-box cryptography context, the data transformation engine is used to protect the boundary between the cryptographic operation and the surrounding code. In particular, the data transformation engine is used to apply data transformations to the inputs to and outputs from the cryptographic operations. If the user specifies that transformations are required via a white-box parameterization file, the code generation tool puts the information specified by the user into a form the data transformation engine understands, namely as qualifiers on data variables and function prototypes. The data transformation engine then applies the specified transformations, and passes information to the data generation tool regarding which transformations were chosen. | 03-17-2011 |
20110078669 | Source code protection - A method comprising encrypting an original plain text file and making it available to a user as a protected file, and issuing to said user a user program and a user licence to enable said user to decrypt the protected file and view an image of the original file whilst preventing the image of the original file from being copied to any file, other than as a further protected file. The image is preferably stored in a memory not backed up to the computer swap file. Preferably, the user program comprises an editor program and the user saves editorial changes to the original image in an encrypted difference file, separate from the original file. Both files are then used to re-create the edited image using the editor program and user licence. The user program may comprise any computer tool including compilers. Alternatively, the user program comprises a special editor program incorporating an obfuscator which generates obfuscated code from the image generated by the editor program, so that this is only intelligible to a compiler or similar tool capable of converting the obfuscated code to an object file. | 03-31-2011 |
20110113409 | SYMBOL CAPABILITIES SUPPORT WITHIN ELF - Systems and methods for efficient compilation and execution of program code. A compiler generates a plurality of families of object files, wherein each family comprises a set of system capabilities different from a set of another family. A link-editor receives the object files and stores a symbol capabilities table in a symbol capabilities section of an object file with a new file format. A symbol is associated with one or more instances, wherein each instance is associated with a different set of capabilities. In various embodiments, system capabilities may include a particular operating system, special-function additional instructions, or otherwise. Subsequent to creation of the single object file with multiple instances of a given function, a runtime linker chooses a given instance based on the capabilities of the platform on which the code is to be executed. | 05-12-2011 |
20110119657 | USING FUNCTION CALLS AS COMPILER DIRECTIVES - A method for passing compiler directives into a compiler wherein empty function calls are defined, which call no function, but define compiler directives by its name, is suggested. Thus, by allowing empty functions calls and by handling them automatically, in particular in the automated way suggested, significant improvements over the prior art can be obtained. | 05-19-2011 |
20110119658 | SPECULATIVE COMPILATION - The invention is a method and apparatus for use in developing a program. More particularly, a method and apparatus for compiling a source code program during editing of the same is disclosed, where editing can be initial entry or modification subsequent to initial s entry. The method comprises compiling at least a portion of a source code program defined by a waypoint during the editing of the source code program. In other aspects, the invention includes a program storage medium encoded with instructions that, when executed, perform this method and a computer programmed to perform this method. The apparatus includes a computing apparatus, comprising a text editor through which a source code program may be entered; and a compiler that may compile the source code program. The control block is capable of determining at least one waypoint in the source code program and invoking the compiler to compile the source code program up to the waypoint. | 05-19-2011 |
20110126179 | Method and System for Dynamic Patching Software Using Source Code - Systems and methods for extracting an original source code for an application, the original source code including source code for a function, receiving source code for a new function, the source code being a same type as the original source code, the new function to replace the function in the application, determining information from one of the original source code and an execution of the application and transforming the source code for the new function into transformed source code based on the information determined from the original source code. | 05-26-2011 |
20110138371 | COMPILING DEVICE AND COMPILING METHOD - According to an embodiment, a compiling device compiling a source program written so as to use a frame memory includes a processing delay amount calculator configured to calculate respective processing delay amounts between a plurality of process tasks in the source program on the basis of processing states of pieces of data processed by the process tasks. The compiling device also includes a line memory amount calculator configured to calculate respective line memory sizes required for each of the process tasks on the basis of an access range of a frame memory from which the process task reads data and an instruction code converter configured to convert the plurality of process tasks to instruction codes executable in a pipeline on the basis of the processing delay amounts and the line memory sizes. | 06-09-2011 |
20110154302 | ADDING SERVICES TO APPLICATION PLATFORM VIA EXTENSION - Systems and methods for adding services to an application platform via an extension platform coupled to the application platform. The application platform runs in a first operation system process and provides a number of resources. The extension platform is implemented in a second operation system process and communicates with the application platforms via standard inter-process communication protocols. The extension platform provides an environment to dynamically model and host application services. A resource abstraction layer provides the extension platform with access to the resources provided at the application platform. The resources are utilized by the extension platform to design and to execute the application services. The application services hosted in the extension platform are centrally managed and administered from the application platform via exposed interfaces. | 06-23-2011 |
20110154303 | Endian Conversion Tool - In one embodiment of the invention code (e.g., compiler, tool) may generate information so a first code portion, which includes a pointer value in a first endian format (e.g., big endian), can be properly initialized and executed on a platform having a second endian format (e.g., little endian). Also, various embodiments of the invention may identify problematic regions of code (e.g., source code) where a particular byte order is cast away through void pointers. | 06-23-2011 |
20110154304 | DETERMINING COMPILER EFFICIENCY - There is provided a computer implemented method for determining the efficiency of a runtime compiler. A set of execution times representing the time taken for program code to perform a set task after two or more runtime compilations is recorded. A first metric as the difference between the first execution time and the last execution time of the set of execution times, a second metric as the average throughput improvement from the set of execution times, and a third metric as the time taken for the compiler to achieve the maximum throughput from the set of execution times is calculated. Finally, an efficiency metric is calculated using the first, second and third metrics to determine the efficiency of the compiler. | 06-23-2011 |
20110154305 | SYSTEM AND METHOD FOR REMOTELY COMPILING MULTI-PLATFORM NATIVE APPLICATIONS FOR MOBILE DEVICES - A computer readable medium comprises executable instructions to: provide an SDK to a client computer comprising executable instructions for communicating with a build server, receive an HTML/Javascript source application and a configuration file referencing one or more source application files over a computer network from a client computer to the build server, transmit the HTML/Javascript source application and configuration file to multiple compile servers corresponding to each of multiple mobile device platforms, combine the HTML/Javascript source application with a mobile device platform specific framework source code for each mobile device platform on each compile server, compile the HTML/Javascript source application and framework source code on the compile server to output an executable native application for each mobile device platform, and transmit each executable native application from the compile server to the client computer over a computer network. | 06-23-2011 |
20110161941 | CREATION OF FORM-BASED APPLICATIONS - A method of creating a form-based application using a computing device having at least a processor, a memory, a display device and an input device, includes:
| 06-30-2011 |
20110167414 | SYSTEM AND METHOD FOR OBFUSCATION BY COMMON FUNCTION AND COMMON FUNCTION PROTOTYPE - Disclosed herein are systems, methods, and computer-readable storage media for obfuscating by a common function. A system configured to practice the method identifies a set of functions in source code, generates a transformed set of functions by transforming each function of the set of functions to accept a uniform set of arguments and return a uniform type, and merges the transformed set of functions into a single recursive function. The single recursive function can allocate memory in the heap. The stack can contain a pointer to the allocated memory in the heap. The single recursive function can include instructions for creating and explicitly managing a virtual stack in the heap. The virtual stack can emulate what would happen to the real stack if one of the set of functions was called. The system can further compile the source code including the single recursive function. | 07-07-2011 |
20110173593 | Compiler Providing Idiom to Idiom Accelerator - A wake-and-go mechanism may be a programming idiom accelerator. As a processor fetches instructions, the programming idiom accelerator may look ahead to determine whether a programming idiom is coming up in the instruction stream. If the programming idiom accelerator recognizes a programming idiom, the programming idiom accelerator may perform an action to accelerate execution of the programming idiom. A compiler may recognize programming idioms and expose the programming idioms to the programming idiom accelerator within the resulting machine language instructions. | 07-14-2011 |
20110179402 | METHOD AND SYSTEM FOR COMPILING A DYNAMICALLY-TYPED METHOD INVOCATION IN A STATICALLY-TYPED PROGRAMMING LANGUAGE - A method for compiling source code, involving: obtaining a statement of the source code comprising a method call, where the source code is composed in a statically-typed programming language; determining whether the method call is a dynamic method call; upon determining that the method call is a dynamic method call, compiling a dynamic method invocation without performing type checking on the method call; upon determining that the method call is not a dynamic method call: performing type checking on the method call, selecting a target method to invoke, and compiling a static method invocation to invoke the target method. | 07-21-2011 |
20110191755 | Method and apparatus providing COBOL decimal type arithmetic functions with improved performance - A method and apparatus is disclosed providing an improvement in performance for arithmetic computations by a computer system for calculations which include decimal numeric variables. The improvement in at least one embodiment includes use of a special compiler in cooperation with a special decimal numeric subroutine library. The compiler provides comparative alignment information based upon comparing alignments of a plurality of decimal variables. The decimal subroutine library can then provide improved performance at run time by utilizing the information compared by the compiler at compiler time rather than making those computations repeatedly at run time. | 08-04-2011 |
20110202905 | APPARATUSES, METHODS AND SYSTEMS FOR AN API CALL ABSTRACTOR - The APPARATUSES, METHODS AND SYSTEMS FOR AN API CALL ABSTRACTOR provide live reconciliation of code updates to multi-user social networking applications in highly dynamic build environments (“SNAM”). In one embodiment, an API call abstraction processor-implemented method is disclosed. It includes obtaining programming code for an application and parsing the obtained programming code to identify instructions in the programming code. The SNAM identifies an application programming interface call in the programming code based on parsing the obtained programming code and the application programming interface call including an input string. The SNAM determines if the identified application programming interface call requires a pre-registered bundle to replace the input string. It provides a request to register a new bundle including the input string and obtains an indication that the new bundle has been registered. The SNAM can obtain a bundle identification corresponding to the new bundle, upon obtaining the indication that the bundle has been registered and replace the input string in the application programming interface call with the bundle identification. | 08-18-2011 |
20110209127 | Register Allocation With SIMD Architecture Using Write Masks - A single instruction multiple data processor may accomplish register allocation by identifying live ranges that have incompatible write masks during compilation. Then, edges are added in an interference graph between live ranges that have incompatible masks so that those live ranges will not be assigned to the same physical register. | 08-25-2011 |
20110209128 | SYSTEMS, METHODS AND APPARATUSES FOR FACILITATING TARGETED COMPILATION OF SOURCE CODE - Methods, apparatuses, and systems are provided for facilitating targeted compilation of source code. A method may include receiving source code for an application. The method may further include determining information about an execution platform of an end user apparatus on which the application will be executed. The method may additionally include compiling the source code based at least in part on the determined information into an executable targeted to the execution platform of the end user apparatus. The method may also include causing the executable to be sent to the end user apparatus. Corresponding apparatuses and systems are also provided. | 08-25-2011 |
20110219363 | METHOD FOR DYNAMICALLY LINKING PROGRAM ON EMBEDDED PLATFORM AND EMBEDDED PLATFORM - The examples of the present invention disclose a method for dynamically linking a program on an embedded platform and an embedded platform. The embedded platform includes a middle layer which comprises at least one class. An application program to be linked includes at least one class. The application program is compiled into PICs, wherein storage positions of different code sections in the PICs which are obtained by compiling different functions of the application program do not overlap with each other; all the PICs are copied into a memory of the embedded operation system; a class pointer is created, and the class pointer is transferred between the class of the middle layer and the class of the application program to dynamically link the application program. | 09-08-2011 |
20110239199 | PROGRAM COMPILER, PROGRAM INSTALLER, AND PROGRAM INSTALL METHOD - A program installation apparatus may install a program in an immediately executable form using a snapshot image. The snapshot image may store a partially executed result of the program. A snapshot point at which the snapshot image is created may be decided by analyzing dependency on a system execution environment of the program. The program installation apparatus may, in advance, execute a part of the program having no dependency on the system execution environment to create a snapshot image and then execute the remaining part of the program based on the snapshot image, reducing a start-up time of the program. | 09-29-2011 |
20110239200 | METHOD FOR COMPILING A COMPUTER PROGRAM - The invention relates to a method for compiling a computer program written in a high-level programming language. In some examples, the method includes: a preliminary step of writing said program written in a high-level programming language including: a step of building a so-called PML functional basic language with reduced algebra and without re-allocation operations; a step of writing at least one library in a pre-existing language and, from said at least one library, the step of building functional interfaces from imperative functionalities be-longing to the group that includes at least: the perennial storage of information on a medium, the transmission and reception of packets on a network, and the analysis of a data flow; a step of building a high-level language by linking said interfaces in PML language functions; and a step of creating said computer program from the high-level language that includes a compilation step. | 09-29-2011 |
20110246973 | COMPILER SUPPORTING PROGRAMS AS DATA OBJECTS - A compiler supporting a language in which selected semantic objects are represented as data objects. The data objects may be used in multiple ways to expand the capabilities of the programming language. Data objects may be passed to applications and used to create executable instructions for that application. In this way, instructions written in the native language of the compiler may be used to control applications that accept programs in a language inconsistent with the native language of the compiler. The syntax checking and variable binding capabilities of the compiler may be used for those instructions that will be executed by an application separate from the object code generated by the compiler. The semantic objects represented as data objects may be selected based on express operations included in the source code or may be based on implicit type conversion. | 10-06-2011 |
20110252409 | METHODS AND SYSTEMS TO IMPLEMENT NON-ABI CONFORMING FEATURES ACROSS UNSEEN INTERFACES - Methods and systems to compile a code module to permit a caller routine to pass a parameter to a callee routine of a separately compiled code module, and to permit a callee routine to receive a parameter from a caller routine of the separately compiled code module, through multiple interfaces. Interfaces may include an interface by convention and an alternate interface. A caller routine may be configured to pass a parameter through an alternate interface and call to an alternate entry point of a callee routine. An associated stub routine may be configured to pass the parameter through an interface by convention and to call to a conventional entry point of the callee routine. If the callee routine includes a corresponding alternate entry point, the caller routine may be linked to the alternate entry point. Otherwise, the callee routine may be linked to the callee routine through the stub routine. | 10-13-2011 |
20110276950 | NAME BINDING EXTENSIBILITY FOR TYPED PROGRAMMING LANGUAGE - Architecture that provides a way to plug into a compiler (e.g., F#) and the associated language service. The language components define a standard plug-in mechanism that allows any component to plug into the services and, provide name binding and type resolution services. The compiler and language service utilize the protocol defined (e.g., in the shape of interfaces and classes that must be implemented in order to plug-in to the system) to provide compile time and design time extensions. The architecture provides the ability to define a customized protocol to interact with the compiler's name binding mechanism. The use of this protocol allows not only compilation to succeed, but to also provide rich IDE services, such as name lookup, and value lookup for quick information. Additionally, the capability to provide static type information to satisfy the requirements of a typed programming language is supported. | 11-10-2011 |
20110276951 | MANAGING RUNTIME EXECUTION OF APPLICATIONS ON CLOUD COMPUTING SYSTEMS - Instances of a same application execute on different respective hosts in a cloud computing environment. Instances of a monitor application are distributed to concurrently execute with each application instance on a host in the cloud environment, which provides user access to the application instances. The monitor application may be generated from a specification, which may define properties of the application/cloud to monitor and rules based on the properties. Each rule may have one or more conditions. Each monitor instance running on a host, monitors execution of the corresponding application instance on that host by obtaining from the host information regarding values of properties on the host per the application instance. Each monitor instance may evaluate the local host information or aggregate information collected from hosts running other instances of the monitor application, to repeatedly determine whether a rule condition has been violated. On violation, a user-specified handler is triggered. | 11-10-2011 |
20110276952 | TELECOMMUNICATIONS APPLICATION GENERATOR - An arrangement for generating a telecommunications application (such as a voicemail application) is described. The arrangement provides a graphical user interface that enables a user to select telecommunications application building blocks and to position and connect those blocks on the display in order to define an algorithm. The algorithm can be implemented using pre-defined modules for said building blocks. | 11-10-2011 |
20110283268 | Mechanism for Cross-Building Support Using Dependency Information - A mechanism for cross-building support using dependency information is disclosed. A method of the invention includes parsing a source code package received for compilation into a binary source code package for a target machine, the parsing to determine a list of dependency packages needed to compile the source code package, for each dependency package in the list of dependency packages determining a type of the dependency package and associating an architecture of at least one of a build machine compiling the source code package or the target machine with the dependency package based on a determined type of the dependency package, downloading each dependency package in the list of dependency packages in a binary form of the build architecture format, and downloading each dependency package that is associated with the target machine in a binary form of the target architecture format. | 11-17-2011 |
20110289491 | Method and Device for Program Installation - A method for installing an application program is disclosed. The method includes detecting a system platform, and detecting preprocessing software required by the application program according to the system platform and a compilation script and accordingly generating a relationship file and a log file, wherein the log file includes an acquisition method for the preprocessing software. | 11-24-2011 |
20110289492 | PROGRAM CODE GENERATION SUPPORT DEVICE AND METHOD, PROGRAM EXECUTION DEVICE AND METHOD, AND PROGRAM CODE COMPRESSION PROCESSING DEVICE AND METHOD AND PROGRAM THEREOF - To obtain a program code generation support device, method, and the like, capable of generating a new program code, in particular, generating in accordance with an incorporating apparatus, by performing a further optimization on a program code. The device includes storage means for storing as data, an optimization rule that is composed of a conversion condition for converting data of a program code and a conversion content thereof, and code optimization means that includes a code analysis unit for analyzing the program code, a condition search unit for search a part matching the conversion condition in the program code through a collation with the optimization rule stored in the storage means on the basis of the analyzed program code, and an optimization unit for generating data of a new program code by converting the part matching the conversion condition on the basis of the conversion content. | 11-24-2011 |
20110307874 | CREATING TEXT FUNCTIONS FROM A SPREADSHEET - The present invention extends to methods, systems, and computer program products for creating text functions form a spreadsheet. Embodiments of the invention extract functions from spreadsheets and represent the functions in textual form. Representation in textual form promotes code reuse, clarify, expressive power, and better performance. Text can be rendered in virtually any programming language, such as, for example, C#, C++, Visual Basic (“VB”), etc. In some embodiments, programming language extensibility to support spreadsheet compatible data types and functions is utilized. | 12-15-2011 |
20110321019 | COMPILE-TIME MANAGEMENT OF POLYPHASIC MODULES - The disclosed embodiments provide a system that facilitates the compilation of a software program. During operation, the system uses a directory hierarchy for the software program to infer a compilation unit to be used in the software program as a member of a module. Next, the system obtains a module declaration for the module using the directory hierarchy. Finally, the system enables compilation of the software program by dynamically identifying and locating one or more dependencies of the module using the module declaration and the directory hierarchy. | 12-29-2011 |
20120005660 | Type Inference of Partially-Specified Parameterized Types - A compiler receives source code for a program and determines that the code includes a declaration expression and an initialization expression in an assignment context. The declaration expression introduces a variable and specifies part of a parameterized type for the variable but not another part of the parameterized type. A parameterized type may include a ground type part and one or more type arguments; in a declaration expression, the specified part of the parameterized type may include a ground type and the unspecified part may include one or more of the type arguments. The initialization expression specifies an initial value for the variable, where the value has a parameterized type. The assignment context associates the declared variable with the initial value. The compiler infers the type for the variable based at least on the part specified in the declaration expression and on the type specified by the initialization expression. | 01-05-2012 |
20120017203 | Path-Sensitive Analysis for Reducing Rollback Overheads - A mechanism is provided for path-sensitive analysis for reducing rollback overheads. The mechanism receives, in a compiler, program code to be compiled to form compiled code. The mechanism divides the code into basic blocks. The mechanism then determines a restore register set for each of the one or more basic blocks to form one or more restore register sets. The mechanism then stores the one or more register sets such that responsive to a rollback during execution of the compiled code. A rollback routine identifies a restore register set from the one or more restore register sets and restores registers identified in the identified restore register set. | 01-19-2012 |
20120047495 | EXECUTION ENVIRONMENT SUPPORT FOR REACTIVE PROGRAMMING - An execution environment is created or extended to include support for coroutines to facilitate reactive programming. Utilizing functionality provided by an execution environment, such as a virtual machine, additional operations are derived to enable creation, invocation, and suspension of coroutines. | 02-23-2012 |
20120060150 | HIGH PERFORMANCE EXECUTION IN WORKFLOW BPM ENGINE - An apparatus and a method for executing a workflow in a business process management (BPM) engine is described. A business process management (BPM) process definition is generated based on a business process at a BPM generator of a BPM system. The BPM process definition is translated into a Java source code at a translator engine of the BPM system. The Java source code is compiled into a Java byte code at a compiler engine of the BPM engine. The processing device of the BPM system is configured to execute the Java byte code. | 03-08-2012 |
20120072889 | Distributed Graphical Program Execution Using A Handheld Computer - A system and method for deploying one or more graphical programs on a personal digital assistant (PDA). One or more selected graphical programs may be programmatically converted to an executable format that can be executed by the portable computing device. For example, the graphical programs may be initially represented as a plurality of data structures that define or specify the operation of the respective graphical programs, and conversion software program may operate to access these data structures from memory and convert the data structures to an executable format suitable for the portable computing device. The executable may be transferred to the portable computing device for execution. | 03-22-2012 |
20120096445 | METHOD AND APPARATUS FOR PROVIDING PORTABILITY OF PARTIALLY ACCELERATED SIGNAL PROCESSING APPLICATIONS - A method for providing portability of partially accelerated signal processing applications may include receiving target information descriptive of accelerated function availability of a target hardware platform, receiving source code for an application and defining functions associated with the application, at least one of the functions being capable of accelerated implementation in the target hardware platform, and causing compiling of an executable code including either an at least partially hardware accelerated implementation or a processor-based implementation based on the target information. A corresponding apparatus and computer program product are also provided. | 04-19-2012 |
20120110558 | CUSTOMIZED BINARIES ON-THE-FLY - One or more techniques and/or systems are disclosed for dynamically generating a customized binary on the fly, without a build process. One or more customizing resources are identified for a requested binary, such as from customizing parameter identified from a decoded binary request that was sent from a client computer at runtime. Using an injection map, a location for one or more customizing resources used to customized the requested binary are identified on a resource server, which can be provided by the binary provider. The customized binary is generated by injecting the one or more customizing resources retrieved from the resource server into a decoded base binary. | 05-03-2012 |
20120124562 | Application Programming Interface Naming Using Collaborative Services - A method, computer system, and computer program product for improving application programming interface naming. An alternate name is received for a target application programming interface feature from a consumer developer. In addition, an indirection to the application programming interface feature is generated based on the alternate name. Then, the indirection to the application programming interface feature is transmitted to an indirections repository. | 05-17-2012 |
20120124563 | COMPILER SUPPORT TECHNIQUE FOR HARDWARE TRANSACTIONAL MEMORY SYSTEMS - A method and apparatus for compiling software written to be executed on a microprocessor that supports at least one hardware transactional memory function is provided. A compiler that supports at least one software transactional memory function is adapted to include a runtime system that maps between the at least one software transactional memory function and the at least one hardware transactional memory instruction. | 05-17-2012 |
20120131561 | Model-based Programming, Configuration, and Integration of Networked Enbedded Devices - Embodiments of the invention relate to programming, configuring, and integrating networked embedded devices with other applications. Particular embodiments include an architecture having an application model layer that integrates the networked embedded devices with business application systems, by allowing the devices to be expressed as part of a business application concept. In certain embodiments, an intermediate device programming layer provides a network-centric programming abstraction, relieving the programmer of the details of low-level, node-centric programming. Finally, a self-optimizing run-time system layer adapts to the specific conditions in the deployed network embedded devices, by optimizing e.g. communication patterns and resource consumption based upon input from the higher layer(s). Embodiments may facilitate integration of networked embedded devices with the back ends of business applications, and may provide a unified extensible programming framework simplifying development of applications for network embedded devices. | 05-24-2012 |
20120151456 | LOW POWER PROGRAM COMPILING DEVICE, METHOD AND COMPUTER READABLE STORAGE MEDIUM FOR STORING THEREOF - A low power program compiling method includes the following steps: a program to be compiled is received. Wherein, the program includes several instructions to be compiled, the program is executed by an electrical device, which includes several candidate hardware units, after compiled. One of the candidate hardware units is selected as a target hardware unit. Several target hardware instructions, which access the target hardware unit, are detected from the instructions. The target hardware instructions are gathered into a hardware instruction block of the program. An enabling instruction for enabling the target hardware unit and a disabling instruction for disabling the target hardware are inserted before and after the hardware instruction block of the program respectively. The program is compiled after inserted to generate a compiled program. | 06-14-2012 |
20120159462 | METHOD FOR CHECKPOINTING AND RESTORING PROGRAM STATE - Techniques are described that enable restoring interrupted program execution from a checkpoint without the need for cooperation from the computer's operating system. These techniques can be implemented by modifying existing code using an automated tool that adds instructions for enabling restoring interrupted program execution. | 06-21-2012 |
20120159463 | METHOD AND SYSTEM FOR CREATING, APPLYING, AND REMOVING A SOFTWARE FIX - Embodiments of the present disclosure involve a method for creating, applying, and removing a software fix for an application without terminating the application. To create the fix, the system converts an unresolved internal reference in a source code section to an external imported reference, generates a header file which includes a re-definition of the external imported reference, and generates a binary representation for the fix by compiling the source code section using the generated header file and linking the complied object. To apply the fix, the system loads the binary representation into a virtual address space, places a long jump operator in a compiler-generated padding prior to the start of an affected function, and replaces a no-operation prologue at the start of the function with a short jump operator in an atomic write operation. To remove the fix, the system replaces the short jump operator with the no-operation prologue, removes the long jump operator, and unloads the software fix. | 06-21-2012 |
20120167064 | ALGORITHM SELECTION DEVICE AND ALGORITHM SELECTION METHOD - Provided is a computer-readable, non-transitory medium storing an algorithm selection program for selecting one of algorithm among of a plurality of algorithms included in an extension program for executing a predetermined function when a call-out source program calls out the extension program, the algorithm selection program causing an information processing device including a storage device to execute:acquiring, from the storage device, selection information in which a command for calling out the extension program in the call-out source program and the one of algorithm are correlated; and selecting an algorithm for executing the predetermined function based on the acquired selection information. | 06-28-2012 |
20120198425 | MANAGEMENT OF CONDITIONAL BRANCHES WITHIN A DATA PARALLEL SYSTEM - A compiler of a single instruction multiple data (SIMD) information handling system (IHS) identifies “if-then-else” statements that offer opportunity for conditional branch conversion. The compiler converts those “if-then-else” statements into “conditional branch and prepare” statements as well as “branch return” statements. The compiler compiles source code file information containing “if-then-else” statement opportunities into compiled code, namely an executable program. The SIMD IHS employs a processor or processors to execute the executable program. During execution, the processor generates and updates SIMD lane mask information to track and manage the conditional branch loops of the executing program. The processor saves branch addresses and employs SIMD lane masks to identify conditional branch loops with different branch conditions than previous conditional branch loops. The processor may reduce SIMD IHS processing time during processing of compiled code of the original “if-then-else” statements. The processor continues processing next statements inline after all SIMD lanes are complete, while providing speculative and parallel processing capability for multiple data operations of the executable program. | 08-02-2012 |
20120198426 | METHODS AND APPARATUS TO FORM A RESILIENT OBJECTIVE INSTRUCTION CONSTRUCT - Methods and an apparatus to form a resilient objective instruction construct are provided. An example method obtains a source instruction construct and forms a resilient objective instruction construct by compiling one or more resilient transactions. | 08-02-2012 |
20120210307 | USAGE ANALYSIS OF PRODUCTIVE ENVIRONMENT TO ESTABLISH NEW DATA SOURCE FOR PROCESS OPTIMIZATION AND PROJECT PLANNING - Systems and methods to provide usage analysis of a productive environment are provided. In example embodiments, a logging module links to a compiler to obtain information on a program as the program is being executed by the compiler. One or more procedures of the program may be determined and a count for each of the one or more determined procedures maintained. The determined one or more procedures and the count for each of the one or more determined procedures are stored in a buffer as log data. The log data is compiled, using one or more processors, into a detailed data source for further analysis. | 08-16-2012 |
20120210308 | BINDING-BASED CHARACTERIZATION OF CLOSURES IN SOFTWARE PROGRAMS - The disclosed embodiments provide a system that facilitates the compilation and execution of a software program. During operation, the system obtains a closure from source code for the software program. Next, the system characterizes a type of the closure based on a mutability of one or more variables captured by the closure. Finally, the system encodes the type into a compiled form of the closure to facilitate subsequent execution of the closure in a multithreaded environment. | 08-16-2012 |
20120222019 | Control Flow Graph Operating System Configuration - An operating system may be configured using a control flow graph that defines relationships between each executable module. The operating system may be configured by analyzing an application and identifying the operating system modules called from the application, then building a control flow graph for the configuration. The operating system may be deployed to a server or other computer containing only those components identified in the control flow graph. Such a lightweight deployment may be used on a large scale for datacenter servers as well as for small scale deployments on sensors and other devices with little processing power. | 08-30-2012 |
20120240105 | OSGi DYNAMIC BUNDLE GENERATION AT RUNTIME - A method of dynamically creating an OSGi bundle includes determining a directory for creation of the OSGi bundle, a runtime environment, and an OSGi framework, determining a functionality and data for the OSGi bundle based on the runtime environment and the OSGi framework, creating a JAR file of the OSGi bundle with the data and the functionality, and creating a bundle manifest for the OSGi bundle accordingly. | 09-20-2012 |
20120272223 | Technique for Run-Time Provision of Executable Code using Off-Device Services - A technique for obtaining executable code by a multi-core client device comprising a host core and at least one processing element implemented on a core different from the host core is provided. A method embodiment of this technique comprises the following steps performed by the host core at run-time of a host program: determining a non-executable code portion embedded in the host program; requesting executable code for a detected non-executable code portion from a remote network server; receiving the requested executable code from the network server; and providing the received executable code for execution by the processing element. The host program may conform to the OpenCL framework or any other framework that permits the embedding of non-executable code portions in an executable host program. | 10-25-2012 |
20120304159 | HARDWARE SUPPORT FOR HASHTABLES IN DYNAMIC LANGUAGES - The aspects enable a computing device to execute traditionally software-based JavaScript® operations in hardware. Each JavaScript® object is hashed into a master hashtable that may be stored in the software. A portion of the software hashtable may be pushed to a hardware hashtable using special instruction set registers dedicated to hashtable processing. Each time a software process requests a hashtable operation (e.g., lookup) the hardware hashtable is checked to determine if the value exists in hardware. If the requested value is in the hardware hashtable, the requested value is accessed in a single operation step. If the requested value is not in the hardware hashtable, the requested value is extracted from the master hashtable in the software and a portion of the master hashtable containing the extracted value is pushed to the hardware using special instruction set registers. | 11-29-2012 |
20120311547 | SYSTEM AND METHOD FOR PERVASIVE SOFTWARE PLATFORM-BASED MODEL DRIVEN ARCHITECTURE TRANSACTION AWARE APPLICATION GENERATOR - In developing applications for a plurality of node types, a meta-data definition of the application can be captured into an application definition module. The meta-data definition can describe the application for the plurality of node types. A code generation module can then automatically generate the application code for the plurality of node types, including transaction aware code. The code can be compiled per node type and the packaging necessary to deploy the application to the plurality of node types can also be automatically generated. | 12-06-2012 |
20120311548 | METHOD AND APPARATUS TO DEVELOP AN APPLICATION OF AN IMAGE FORMING APPARATUS - A solution providing tools for developing an application of an image forming apparatus is stored in the image forming apparatus, and functions of the image forming apparatus are displayed according to execution of the solution. An application corresponding to input information of a user is generated by combining functions of the image forming apparatus based on the input information of the user and is stored in the image forming apparatus. | 12-06-2012 |
20130007721 | DYNAMIC ARRAYS AND OVERLAYS WITH BOUNDS POLICIES - Systems and methods are provided for writing code to access data arrays. One aspect provides a method of accessing a memory array. Data is provided within a one-dimensional array of allocated memory. A dimensional dynamic overlay is declared from within a block of statements, and the declaration initializes various attributes within an array attribute storage object. The data is accessed from within the block of statements as a dimensional indexed array using the array attribute storage object. Another aspect provides a method of creating and accessing a dimensional dynamic array. A dimensional dynamic array is declared from within a block of statements, and memory storage for the array is dynamically allocated. A dynamic overlay storage object is also provided and its attributes are initialized from the dynamic array declaration. The data is accessed as a dimensional indexed array from within the block of statements using the array attribute storage object. | 01-03-2013 |
20130014092 | MULTI LEVEL VIRTUAL FUNCTION TABLES - A multi level virtual function table uses a hierarchy of chunks or segments of virtual function tables to identify methods for a particular class. At least one level of indirection pointers may point to individual virtual function table chunks, which may be shared by multiple classes. In some embodiments, fixed size chunks of virtual function tables may be used, other embodiments may use variable sized chunks of virtual function tables. In just in time compiled code, virtual function tables may be limited to sharing across parent and child classes, while in pre-compiled code, more complex sharing may be used. | 01-10-2013 |
20130036408 | TECHNIQUE FOR COMPILING AND RUNNING HIGH-LEVEL PROGRAMS ON HETEROGENEOUS COMPUTERS - A technique for compiling and running high-level program on heterogeneous computers may include partitioning a program code into two or more logical units, and compiling each of the logical units into one or more executable entities. At least some of the logical units are compiled into two or more executable entities, the two or more executable entities being different compilations of the same logical unit. The two or more executable entities are compatible to run on respective two or more platforms that have different architecture. | 02-07-2013 |
20130036409 | TECHNIQUE FOR COMPILING AND RUNNING HIGH-LEVEL PROGRAMS ON HETEROGENEOUS COMPUTERS - A technique for compiling and running high-level program on heterogeneous computers may include partitioning a program code into two or more logical units, and compiling each of the logical units into one or more executable entities. At least some of the logical units are compiled into two or more executable entities, the two or more executable entities being different compilations of the same logical unit. The two or more executable entities are compatible to run on respective two or more platforms that have different architecture. | 02-07-2013 |
20130047142 | Thermal-Aware Source Code Compilation - Thermal-aware source code compilation including: receiving, by a compiler, an identification of a target computing system, the identification of the target computing system specifying temperature sensors that measure temperature of a memory module; compiling the source code into an executable application including inserting in the executable application computer program instructions for thermal-aware execution, the computer program instructions, when executed on the target computing system, carry out the steps of: retrieving temperature measurements of one or more of the target computing system's temperature sensors; determining, in real-time in dependence upon the temperature measurements, whether a memory module is overheated; if a memory module is overheated, entering a thermal-aware execution state including, for each memory allocation in the executable application, allocating memory on a different memory module than the overheated memory module; and upon the temperature sensors indicating the memory module is no longer overheated, exiting the thermal-aware execution state. | 02-21-2013 |
20130055222 | MAGNETIC RESONANCE IMAGING SYSTEM WITH PROGRAMMABLE SUBSYSTEM AND METHOD FOR PROGRAMMING - A Magnetic Resonance Imaging (MRI) system with programmable subsystem and method for programming are provided. One method includes receiving programming code having one or more Application Programming Interfaces (APIs), wherein the APIs include one or more function calls to a library of routines. The method also includes compiling the programming code with the library of routines and controlling the operation of the MRI system using the compiled programming code. | 02-28-2013 |
20130074052 | RUN TIME INCREMENTAL COMPILATION OF SCRIPT CODE - Scripts are incrementally compiled at runtime to generate executable code. The incremental compilation generates executable code corresponding to a basic block of the script. The executable code for a basic block of script is generated for a set of types of variables of the basic block resulting from execution of the script in response to a request. The generated executable code is stored and executed for subsequent requests if these requests result in the same types of variables for the basic block. The incremental compilation of the script is performed in a lazy fashion, such that executable code is not generated for combinations of types of variables of the script code that are not obtained from requests received at runtime. The script may dynamically generate portions of a web page that is returned in response to a request for execution of the script. | 03-21-2013 |
20130074053 | INFRASTRUCTURE SERVICE ARCHITECTURE FOR APPLICATIONS - A mechanism is disclosed for operating local version-independent service program code for infrastructure services, wherein the mechanism is automatically and optionally linked to a central, remote service infrastructure, and wherein both an online and an offline processing mode is included and automatically supported, and wherein the mechanism is embedded in a generic runtime environment. In at least one embodiment, it contains service program code implemented in the runtime environment for calling by way of the application program code with standardized interfaces, wherein the service program code is intended for the provision of functionalities for predetermined services that an application program code can use. | 03-21-2013 |
20130086563 | COMPILING CODE FOR AN ENHANCED APPLICATION BINARY INTERFACE (ABI) WITH DECODE TIME INSTRUCTION OPTIMIZATION - A code sequence made up multiple instructions and specifying an offset from a base address is identified in an object file. The offset from the base address corresponds to an offset location in a memory configured for storing an address of a variable or data. The identified code sequence is configured to perform a memory reference function or a memory address computation function. It is determined that the offset location is within a specified distance of the base address and that a replacement of the identified code sequence with a replacement code sequence will not alter program semantics. The identified code sequence in the object file is replaced with the replacement code sequence that includes a no-operation (NOP) instruction or having fewer instructions than the identified code sequence. Linked executable code is generated based on the object file and the linked executable code is emitted. | 04-04-2013 |
20130104110 | THERMAL-AWARE SOURCE CODE COMPILATION - Thermal-aware source code compilation including: receiving, by a compiler, an identification of a target computing system, the identification of the target computing system specifying temperature sensors that measure temperature of a memory module; compiling the source code into an executable application including inserting in the executable application computer program instructions for thermal-aware execution, the computer program instructions, when executed on the target computing system, carry out the steps of: retrieving temperature measurements of one or more of the target computing system's temperature sensors; determining, in real-time in dependence upon the temperature measurements, whether a memory module is overheated; if a memory module is overheated, entering a thermal-aware execution state including, for each memory allocation in the executable application, allocating memory on a different memory module than the overheated memory module; and upon the temperature sensors indicating the memory module is no longer overheated, exiting the thermal-aware execution state. | 04-25-2013 |
20130117733 | Simultaneously targeting multiple homogeneous and heterogeneous runtime environments - A single software project in an integrated development environment (IDE) may be built for multiple target environments in a single build episode. Multiple different output artifacts may be generated by the build process for each of the target environments. The output artifacts are then deployed to the target environments, which may be homogeneous or heterogeneous environments. The same source project may be used to generate multiple output artifacts for the same target environment. | 05-09-2013 |
20130125099 | MODULAR COMPILATION USING PARTIAL COMPILERS - A modular compiler architecture utilizes partial compiler modules that cooperatively produce object code for operation on a complex execution infrastructure. The partial compilers may invoke the services of other partial compilers, wherein each partial compiler operates as a self-contained “black-box” module. This structure, in turn, may allow the partial compilers of such implementations to be arranged in modular hierarchies for multi-level compilation and specialization of each partial compiler. These various implementations, in turn, produce compiled programs able to correctly run on large computer clusters comprising a mix of computational resources (machines, multiple cores, graphics cards, SQL server engines, etc.). Certain implementations may also be directed to compilers comprising modular partial compilers, and partial compilers may be formed from generalized forms of traditional compilers. Further disclosed is a set of high-level operations that manipulate partial compilers. | 05-16-2013 |
20130125100 | COMPUTER SYSTEM AND METHOD FOR COMPILING PROGRAM CODE AND ASSIGNING ADDRESS SPACES - A computer system is provided for compiling program code and a method for compiling program code by a processor. The method, for example, includes, but is not limited to, receiving, by the processor, the program code and compiling, by the processor, the program code, wherein the processor, when compiling the program code, parses the program code and assigns a default address space qualifier to each member functions without a defined address space qualifier and, when the member function is used, infers an address space for each default address qualifier based upon how the respective member function is being used. | 05-16-2013 |
20130145353 | FIRMWARE EXTENSION METHOD AND FIRMWARE BUILDER - A firmware extension method is provided, particularly adaptable for an embedded system. Firstly, a baseline firmware image is provided with a header file. Secondly, an extension firmware image is generated based on the header file, comprising one or more extended functions. Thereafter, a callback table is generated, comprising pointers pointing to entries of the extended functions in the extension firmware image. Further, memory allocation parameters are provided. The memory allocation parameters comprise a base address where the extension firmware image starts. The baseline firmware image, the extension firmware image and the callback table are then merged to generate a merged firmware image based on the memory allocation parameters. | 06-06-2013 |
20130159980 | PROCESS FOR GENERATING DYNAMIC TYPE - A process for generating dynamic type is disclosed. A compiler generated template method including a mark for custom instruction is selected for cloning. Dynamic code is injected at the mark for the custom instructions. The template method including the injected dynamic code is compiled. | 06-20-2013 |
20130167126 | IN-ORDER EXECUTION IN AN ASYNCHRONOUS PROGRAMMING ENVIRONMENT - A computer implemented method includes receiving an ordered sequence of programming language statements, identifying a first statement and one or more second statements that are configured to be executed after the first statement, in which the first statement is configured to initiate an asynchronous task that executes asynchronously with respect to the one or more second statements, and configuring the one or more second statements to execute upon completion of the asynchronous task. | 06-27-2013 |
20130167127 | SYSTEM, APPARATUS, AND METHOD FOR DISTRIBUTED COMPILATION OF APPLICATIONS - Provided is a system for distributed multi-stage compilation of application programs in a cloud environment. The system includes a source apparatus to generate a compilation order in which source representation of an application program is compiled, and a destination apparatus to receive a compiled representation created by compiling at least a portion of the source representation according to the compilation order. | 06-27-2013 |
20130174132 | SYSTEMS AND METHODS FOR DATA BRICK CREATION AND USE - Data Brick is a state of the art solution to access the data through high speed data access mechanism that is exceptionally fast and is associated with low CPU consumption cost. The Data Brick stores relatively static reference data in the form of a programming language Load Module. The Load module contains the data can be launched into the application program memory and this data can be accessed very efficiently in a programming language program. Static application data that is accessed by multiple applications in a mainframe Batch environment is a prime candidate for the Data Brick. | 07-04-2013 |
20130174133 | ADAPTIVE SELECTION OF PROGRAMMING LANGUAGE VERSIONS FOR COMPILATION OF SOFTWARE PROGRAMS - The disclosed embodiments provide a system that facilitates the development and compilation of a software program. During operation, the system obtains a set of compilation units to be used in the software program and a version order associated with a programming language of the compilation units. Next, for each compilation unit from the set of compilation units, the system uses the version order to select a version of the programming language that is compatible with the compilation unit. The system then uses the version to compile the compilation unit. | 07-04-2013 |
20130174134 | System and Method for Stability Guarantees in Concurrent Software - A flexible, extensible and efficient compile-time mechanism that leverages native high-level application programming language constructs (e.g., the template and macro features of C++), thus minimizing any programmer or a software developer learning curve and eliminating the need for programming tool (e.g., compiler) changes, to identify and control aspects of shared resource access in concurrent software at the time of source code compilation. | 07-04-2013 |
20130185703 | SYSTEMS AND METHODS FOR SOFTWARE INSTRUCTION TRANSLATION FROM A HIGH-LEVEL LANGUAGE TO A SPECIALIZED INSTRUCTION SET - A computer system includes a processor and program storage coupled to the processor. The program storage stores a software instruction translator that, when executed by the processor, is configured to receive source code and translate the source code to a low-level language. The source code is restricted to a subset of a high-level language and the low-level language is a specialized instruction set. Each statement of the subset of the high-level language directly maps to an instruction of the low-level language. | 07-18-2013 |
20130191816 | OPTIMIZING TEXTURE COMMANDS FOR GRAPHICS PROCESSING UNIT - Aspects of this disclosure relate to a method of compiling high-level software instructions to generate low-level software instructions. In an example, the method includes identifying, with a computing device, a set of high-level (HL) control flow (CF) instructions having one or more associated texture load instructions, wherein the set of HL CF instructions comprises one or more branches. The method also includes converting, with the computing device, the identified set of HL CF instructions to low-level (LL) instructions having a predicate structure. The method also includes outputting the converted (LL) instructions having the predicate structure. | 07-25-2013 |
20130198727 | Error Propagation - A compiler may receive source code including two user source code blocks, each capable of throwing an exception. The received source code may be associated with a policy that discards a pending exception when a subsequent exception occurs. The compiler may transform the source code such that it allows for a propagation policy that supports multiple exceptions. The transformed source code may be executed in an execution environment. Upon execution of the transformed code, a pending exception may be propagated out and a later-in-time exception may be stored. | 08-01-2013 |
20130212567 | GENERATING AND CACHING SOFTWARE CODE - Aspects of the subject matter described herein relate to generating and caching software code. In aspects, a target device may receive software to install. The software may include source code that has not been compiled. The target device may install the software and indicate the source code of the package is to be compiled into intermediate or executable code that is persistently stored. If the target device receives a request to execute the software prior to it being compiled, the target device may compile and execute the software without delay. If the target device receives a request to execute the software after it is compiled, the target device may obtain and execute the compiled code. The behavior above may also be applied to scripting code obtained from a server remote to the target device. | 08-15-2013 |
20130232475 | GRAPH ORIENTED PROGRAMMING AND EXECUTION - Graph oriented programming and execution. According to one embodiment of the invention, execution of a program includes automatically discovering and building a graph. The graph is to represent parent child relationships between combinations. Each combination is a specific method and a specific object-oriented instance. Based on a first of the combinations, other combinations are determined by iteratively discovering the child combinations for already discovered parent combinations. The graph is built of nodes coupled with links. Each of the plurality of combinations is identified by one of the nodes. Each of the parent child relationships is represented by one of the links. Execution of the program also includes executing the graph in an order indicated by the links until the root node is reached. Execution of each of the parent nodes includes executing the combination identified by that parent node to generate an output using the outputs of its child node(s). | 09-05-2013 |
20130239099 | COMPILATION OF CODE IN A DATA CENTER - Technologies are generally described for a system, method and data center effective to execute a code. In an example, a method may include receiving, by a first processor, a first code from a second processor. The method may further include compiling the first code for first and second hardware stacks to produce first and second executable codes. The second hardware stack may be different from the first hardware stack. The method may include generating a reference to the first executable code and the second executable code and storing the reference. The method may further include receiving, by a third processor, an instance and a request to execute the instance. The method may further include executing the first executable code by the first hardware stack. | 09-12-2013 |
20130254753 | SYSTEM AND METHOD FOR CREATING IMAGE DETECTION PROGRAM - An image detection program creating system comprise a parameter setting module, an image loading module, a programming module, and a program conversion module. The parameter setting module sets parameters of a Dimensional Measuring Interface Specification (DMIS). The image loading module loads a 3D image. The programming module programs the DMIS program according to the parameters of the DMIS and the 3D image. The program conversion module converts the compiled DMIS into an image detection program. | 09-26-2013 |
20130298112 | Control Flow Graph Application Configuration - An operating system may be configured using a control flow graph that defines relationships between each executable module. The operating system may be configured by analyzing an application and identifying the operating system modules called from the application, then building a control flow graph for the configuration. The operating system may be deployed to a server or other computer containing only those components identified in the control flow graph. Such a lightweight deployment may be used on a large scale for datacenter servers as well as for small scale deployments on sensors and other devices with little processing power. | 11-07-2013 |
20130311978 | CONDITIONAL SEQUENTIAL SELECTION OF EXTERNAL REFERENCE RESOLUTIONS - External references are resolved in a software compiling and linking environment by identifying a group of related external references and by processing the group of external references until a stopping condition is satisfied. The external references are processed by selecting a next external reference from the group of external references as a current external reference and by resolving the current external reference with a matching definition if a matching definition for the current external reference exists. The stopping condition is designated as being satisfied if either the selected external reference is resolved, or if each external reference in the group of external references has been selected. | 11-21-2013 |
20130311979 | CONDITIONAL SEQUENTIAL SELECTION OF EXTERNAL REFERENCE SOLUTIONS - External references are resolved in a software compiling and linking environment by identifying a group of related external references and by processing the group of external references until a stopping condition is satisfied. The external references are processed by selecting a next external reference from the group of external references as a current external reference and by resolving the current external reference with a matching definition if a matching definition for the current external reference exists. The stopping condition is designated as being satisfied if either the selected external reference is resolved, or if each external reference in the group of external references has been selected. | 11-21-2013 |
20130318509 | GENERATING OBJECT CODE FROM A CONJOINED ASSEMBLER DIRECTIVE - Receiving assembly language source code for a computer program and identifying within the assembly language source code a conjoined directive that conjoins a load instruction and an assembler directive. The conjoined directive can identify a data structure, a first register, and a second register that contains an address of a location in memory that contains the data structure. Via a processor, the conjoined directive can be processed to create object code that includes operation code that loads into the first register the address of the location in memory that contains the data structure. The object code can be output. | 11-28-2013 |
20130326490 | IN-PROCESS WRAPPED EXECUTION ENGINE(S) FOR TOOLING A DYNAMIC PROGRAM ACROSS A PROCESS BOUNDARY - Techniques are described herein that are capable of instantiating and executing in-process wrapped execution engine(s) for tooling a dynamic program across a process boundary. For instance, a dynamic language execution engine may be instantiated in a wrapper object that is hosted in a host process to provide a wrapped execution engine while the host process is running. The wrapped execution engine may be configured to provide information regarding execution of a targeted application of the host process to a requesting application. The wrapped execution engine may be isolated from other execution engine(s) that are included in the host process such that the targeted application does not have access to code that defines the wrapped execution engine. The targeted application may include one or more of the other execution engines. | 12-05-2013 |
20140007059 | GRAPHICAL PROCESSING UNIT (GPU) ARRAYS PROVIDING HIGH COMPUTATIONAL CAPABILITIES IN A COMPUTING ENVIRONMENT | 01-02-2014 |
20140033185 | OBJECT STORAGE AND SYNCHRONIZATION HOOKS FOR OCCASIONALLY-CONNECTED DEVICES - A system may include an application programming interface (API) layer, a cache layer, and an object storage/access layer. The API layer may expose an interface to store a business object and an interface to retrieve the business object, and may transmit a request to store the business object and a request to retrieve the business object, and the cache layer may cache the business object and transmit the request to store the business object and the request to retrieve the business object. The object storage/access layer may receive the request to store the business object and, in response to the request to store the business object, to invoke a serialization method exposed by the business object to store the data associated with the object in a data structure. The object storage/access layer may also receive the request to retrieve the business object and, in response to the request to retrieve the business object, to invoke a deserialization method of the business object to deserialize the data associated with the business object in the data structure. | 01-30-2014 |
20140053141 | ARTIFACT DIVIDER FOR LARGE SCALE APPLICATION BUILDS - A method for building an application installation repository is disclosed herein. In one embodiment a build directory comprising a plurality of application objects is evaluated. Artifact generation rules may also be evaluated with respect to the application objects and the build directory. Object groupings, each comprising one or more application objects of the plurality of application objects, are defined according to the evaluations of the artifact generation rules and the hierarchical directory structure and artifacts are generated according to the object groupings. An installable application is generated that includes the generated artifacts. Artifacts may be further grouped into sharable units and assemblies according to rules and organization of application objects in the build directory. A delta build including only artifacts corresponding to modified files and correspondingly modified metadata may also be generated according to methods disclosed herein. A corresponding computer program product is also disclosed. | 02-20-2014 |
20140068572 | JAVA NATIVE INTERFACE ARRAY HANDLING IN A DISTRIBUTED JAVA VIRTUAL MACHINE - A method for executing native code in a distributed Java Virtual Machine (JVM) is disclosed herein. The method may include receiving, in a first thread executing in a remote execution container, a first native code-generated call, such as a Java Native Interface (JNI) call, to a second thread, the first call including a first array write request. The first call may be stored in an instruction cache and bundled with a second native code-generated call and sent to the second thread. The calls are unbundled and executed in the second thread. An opaque handle to an array returned by the second call is bundled with corresponding array data and returned to the first thread. The array data of the bundle is stored in a data cache and retrieved in response to requests for the array data addressed to the second thread. A corresponding computer program product is also disclosed. | 03-06-2014 |
20140068573 | Error-code and exception-based function dispatch tables - A condition detected by a virtual routine may be treated by setting an error code or raising an exception, depending on circumstances. Enhanced vtable layouts promote availability of both error-ID-based and exception-based virtual routines, while maintaining compatibility. Compilers treat virtual routines based on their circumstances. One enhanced vtable includes error-ID-based routine pointers in a COM-layout-compatible portion and exception-based routine pointers in an extension. For a virtual routine not overridden by a derived class, a compiler generates a direct call. For an object instance of a specific type, the compiler generates a direct exception-based call for the object's routine. For a factory-sourced object's routine, the compiler generates a virtual exception-based call. When the virtual routine belongs to a component having an enhanced vtable, the compiler may generate a virtual call using the exception-based routine pointer. Code wrappers between COM and native format may also be used. | 03-06-2014 |
20140068574 | TYPE INFERENCE OF GENERIC TYPE PARAMETERS IN OVERLOADED FUNCTIONS USING TYPE INTERVALS AND INFERENCE DIRECTIONS - The disclosed embodiments provide a system that facilitates the development and execution of a software program. During operation, the system obtains a type interval for a generic type parameter of an implementation of an overloaded function. Next, the system selects an inference direction for the generic type parameter based on a variance of the generic type parameter, wherein the inference direction is an upward inference direction or a downward inference direction. Finally, the system uses the type interval and the inference direction to perform type inference on the generic type parameter. | 03-06-2014 |
20140068575 | METHOD AND SYSTEM FOR LOADING STATUS CONTROL OF DLL - Apparatus and methods are provided for controlling the loading status of DLLs. Specifically, a streaming program compiler is provided. The compiler includes operation modules for calling DLLs during streaming program execution; association table generating units for generating association tables according to user-defined rules, where the association table includes entries indicating (i) stream branches of the streaming program and (ii) an operation module corresponding to the stream branches; and a trigger generating unit for generating a trigger based on user-defined rules, where the trigger generating unit (i) determines which conditions for loading and unloading DLLs fit the streaming program, (ii) matches these conditions to a particular stream branch to identify a matched stream branch, and (iii) sends out triggering signals indicating the matched stream branch. This invention also provides a corresponding method and controller. | 03-06-2014 |
20140089905 | ENABLING POLYMORPHIC OBJECTS ACROSS DEVICES IN A HETEROGENEOUS PLATFORM - In accordance with disclosed embodiments, there are provided methods, systems, and apparatuses enabling polymorphic objects across devices in a heterogeneous platform. According to the disclosed embodiments, such means include, for example, receiving, at a device aware compiler, source code for a computer program as input; compiling the source code for the computer program, in which the compiling includes at least: generating two distinct sets of executable binary instructions for a method of an object; in which a first of the two distinct sets of executable binary instructions for the method of the object provides first binary instructions for the method executable by a first computing device and not executable by a second computing device; and in which a second of the two distinct sets of executable binary instructions for the method of the object provides second binary instructions for the method executable by the second computing device and not executable by the first computing device. Other related embodiments are disclosed. | 03-27-2014 |
20140089906 | DYNAMICALLY BUILDING LOCALE OBJECTS AT RUN-TIME - Locale objects are dynamically built from locale source files when requested at run-time. When a locale object is dynamically built, it is stored in global memory so it may be read by multiple applications. Dynamically building locale objects when requested allows software to operate with a relatively small number of locale objects instead of with hundreds or thousands of locale objects, as is known in the art. The result is significant savings in system-wide resources while still allowing for access to a large number of possible locales. | 03-27-2014 |
20140096115 | METHOD AND APPARATUS FOR PROVIDING CHANGE-RELATED INFORMATION - Providing change information includes obtaining information of a change track that changes software source code, wherein the change track includes a change item, identifying at least one preliminary candidate change item from the change item, wherein the preliminary candidate change item is a change item causing execution of the source code to change, and inserting an instrument in the source code at a location corresponding to the at least one preliminary candidate change item so information of at least one candidate change item is outputted in testing the source code using a test case. The at least one candidate change item is a change item related to the test case from the at least one preliminary candidate change item. The information of a change track is combined with the information of a candidate change item. The change-related information is provided based on the result of the combination. | 04-03-2014 |
20140101642 | Compiler Optimized Safety Mechanism - An approach is provided in which a set of common instructions are each executed by at least two processor cores. Each of the processor cores queues values resulting from at least one of the common instructions (a critical section). The queued values are compared by a queued comparator. An exception is issued in response to the comparison revealing unequal values having been queued by the processor cores. | 04-10-2014 |
20140123118 | SYSTEM AND METHOD FOR INFERRING IMMUTABILITY OF PROGRAM VARIABLES - In accordance with various embodiments, systems and methods are provided which facilitate inferring immutability of variables. A compiler analyzes local variables within source code to determine whether they are immutable. In particular embodiments the compiler examines locations where each variable is assigned to determine whether the variable was definitely unassigned before the assignment. Because the compiler can infer whether a local variable is immutable, it is possible for the programmer to avoid using a keyword to expressly declare the local variable as immutable. Inferring immutability of variables, thus, maintains correctness of the compiled code while reducing the burden on the programmer. | 05-01-2014 |
20140130022 | PLACEMENT OF INSTRUCTIONS IN A MEMORY SYSTEM - According to one embodiment of the present invention, a method for operation of a computer system including a main processor, a first and a second active memory device includes receiving an executable module generated by a compiler, wherein the executable module includes a code section identified as executable by a first processing element in the first active memory device and a second processing element in the second active memory device. The method further includes copying the code section to memory in the first device based on the code section being executable on the first device, copying the code section from the memory in the first active memory device to an instruction buffer of the first processing element and copying the code section from the memory in the first device to the second device based on the code section being executable on the second device. | 05-08-2014 |
20140130023 | PLACEMENT OF INSTRUCTIONS IN A MEMORY SYSTEM - According to one embodiment of the present invention, a computer system is provided where the computer system includes a main processor, first and second active memory device. The computer system is configured to perform a method including receiving an executable module generated by a compiler, wherein the executable module includes a code section identified as executable by a first processing element in the first active memory device and a second processing element in the second active memory device. The method includes copying the code section to memory in the first device based on the code section being executable on the first device, copying the code section from the first active memory device to an instruction buffer of the first processing element and copying the code section from the first device to the second device based on the code section being executable on the second device. | 05-08-2014 |
20140137087 | Target Typing of Overloaded Method and Constructor Arguments - Methods and apparatus for target typing of overloaded method and constructor arguments are described. A method comprises determining whether source code of a program includes, as an argument to an overloaded operation invocation, an expression whose type is context-dependent. The method further comprises, if the source code includes such an argument, providing the expression as an input to an overload resolver, and determining at the overload resolver whether (a) each argument of the invocation is compatible with types of corresponding parameters in one or more declarations and (b) whether a particular declaration among such a set of declarations can be identified as the most specific. If both conditions are met, the method comprises generating executable instructions for the invocation. | 05-15-2014 |
20140149969 | Source code separation and generation for heterogeneous central processing unit (CPU) computational devices - An example method includes obtaining annotated source code and based at least in part on a first annotation, separating the source code into first and second source code portions. The method also includes generating from the first source code portion a first source code stream to be supplied for compilation by a first compiler, the first source code stream augmented, based on the first annotation, to include additional coordination code not present in the obtained source code, and the first compiler specific to the first-type subset of the target CPUs. The method further includes generating from the second source code portion a second source code stream to be supplied for compilation by a second compiler, the second compiler specific to a second-type subset of the target CPUs. The target CPUs of the first- and second-type subsets have one or more different functionalities. | 05-29-2014 |
20140157245 | MANAGING BUILD VARIANTS IN A COMMON REPOSITORY - A system includes determination of first coordinates in a repository coordinate system associated with a seed component corresponding to a target build result of a first code building system, the seed component comprising a projection method between the repository coordinate system and a variant coordinate system of the first code building system, determination of second coordinates in the variant coordinate system, the second coordinates associated with an execution environment of the target build result, determination of third coordinates in the repository coordinate system based on the first coordinates, the second coordinates and the projection method, and association of the target build result with the third coordinates. | 06-05-2014 |
20140157246 | BUILDING CROSS-PLATFORM ASYNCHRONOUS GAMES - A system, computer-readable storage medium storing at least one program, and a computer-implemented method are discussed herein. For example, an embodiment may access a game engine that defines game play logic specifying an execution of a turn in an asynchronous game. The game play logic may be independent of a client device platform. The embodiment may then select a native platform library that includes functions to coordinate game activities within the asynchronous game. The functions may be dependent on the client device platform. The embodiment may then generate an executable game based on compiling the selected native platform library with the game engine. | 06-05-2014 |
20140173573 | DEFERRED TYPE INFERENCE OF GENERIC TYPE PARAMETERS IN FUNCTION CALLS TO OVERLOADED FUNCTIONS - The disclosed embodiments provide a system that facilitates the development and execution of a software program. During runtime of the software program, the system delays type inference on a generic type parameter of an implementation of an overloaded function, wherein the generic type parameter is associated with a type interval containing an unbounded lower limit and one or more self-typed constraints. Upon detecting a type query for a dynamic type of the generic type parameter, the system compares a queried type from the type query with a set of inference choices for the generic type parameter. If the queried type matches an inference choice from the set of inference choices, the system uses the inference choice to perform type inference on the generic type parameter. | 06-19-2014 |
20140181797 | METHODS AND APPARATUSES FOR A COMPILER SERVER - A method and an apparatus that instructs a compiler server to build or otherwise obtain a compiled code corresponding to a compilation request received from an application are described. The compiler server may be configured to compile source codes for a plurality of independent applications, each running in a separate process, using a plurality of independent compilers, each running in a separate compiler process. A search may be performed in a cache for a compiled code that satisfies a compilation request received from an application. A reply message including the compiled code can be provided for the application, wherein the compiled code is compiled in direct response to the request, or is obtained from the cache if the search identities in the cache the compiled code that satisfies the compilation request. | 06-26-2014 |
20140189662 | Extending A Development Environment - Concepts and technologies are described herein for extending the behavior of a software development tool. An extension can be accessed and consumed by a software development tool to configure the software development tool to perform an operation in an extended mode. In one example, an extension can extend a compiler based on the input source code. In one configuration, the compiler extension can provide a compiler with one or more runtime semantics of various source code elements for a particular programming language. The compiler can access an extensions list to determine if the compiler is to perform a compilation operation on a particular source code element or logical unit in an extended mode. | 07-03-2014 |
20140196015 | DECLARATION OF LIFETIME OF RESOURCE REFERENCE - A language extension that advances safety in system programming by specifying a lifetime of a reference that represents a resource. In accordance with the language extension, the lifetime references a particular scope in a manner that the compiler generates computer-executable instructions that enforce the lifetime of the reference to be a function of (e.g., no longer than) the lifetime of the particular scope. Accordingly, the resource lifetime may be specified in advance to have a particular scope. This helps in performing resource management as typical managed language programs can allow resources to exist indefinitely. Furthermore, because the resources have a defined finite lifetime, they might be more conveniently allocated on a stack, instead of on a heap, for much more efficient processing. | 07-10-2014 |
20140208299 | COMMUNICATION STACK FOR SOFTWARE-HARDWARE CO-EXECUTION ON HETEROGENEOUS COMPUTING SYSTEMS WITH PROCESSORS AND RECONFIGURABLE LOGIC (FPGAs) - A communication stack for software-hardware co-execution on heterogeneous computing systems with processors and reconfigurable logic, in one aspect, may comprise a crossbar operable to connect hardware user code and functioning as a platform independent communication layer. A physical interface interfaces to the reconfigurable logic. A physical interface bridge is connected to the cross and the physical interface. The physical interface bridge connects the crossbar and the physical interface via a platform specific translation layer specific to the reconfigurable logic. The crossbar, the physical interface, and the physical interface bridge may be instantiated in response to the hardware user code being generated, the crossbar instantiated with associated parameters comprising one or more routes and associated data widths. The hardware user code is assigned a unique virtual route in the crossbar. | 07-24-2014 |
20140208300 | COMMUNICATION STACK FOR SOFTWARE-HARDWARE CO-EXECUTION ON HETEROGENEOUS COMPUTING SYSTEMS WITH PROCESSORS AND RECONFIGURABLE LOGIC (FPGAs) - A communication stack for software-hardware co-execution on heterogeneous computing systems with processors and reconfigurable logic, in one aspect, may comprise a crossbar operable to connect hardware user code and functioning as a platform independent communication layer. A physical interface interfaces to the reconfigurable logic. A physical interface bridge is connected to the cross and the physical interface. The physical interface bridge connects the crossbar and the physical interface via a platform specific translation layer specific to the reconfigurable logic. The crossbar, the physical interface, and the physical interface bridge may be instantiated in response to the hardware user code being generated, the crossbar instantiated with associated parameters comprising one or more routes and associated data widths. The hardware user code is assigned a unique virtual route in the crossbar. | 07-24-2014 |
20140208301 | FUNCTION CALLING COMPUTER PROGRAMS - The present invention discloses a method and apparatus for function calling that eliminates or reduces errors caused by calling convention mismatch by preparing a number of candidate code modules during program compiling and inserting them in a compiled program. A library of compiled candidate code modules is thus included in the complied program, which allows the user to call a function by specifying a function to be called and a library where it belongs in the source program, without need to know the calling convention thereof or to focus on the call execution process. This ensures the matching of calling convention between the caller and callee of the function while being transparent to users, so as to avoid problems caused by calling convention inconsistency. | 07-24-2014 |
20140215447 | DATA PROCESSING APPARATUS - A data processing apparatus that generates an object code from a source code, includes a unit that sets, for an access to a property of an object included in the source code, an offset of a one-dimensional array that stores a value in correspondence with a property in an offset table of hidden type data provided to correspond to the object, and accesses the property via the offset table. | 07-31-2014 |
20140237456 | METHOD AND SYSTEM FOR DATA PLANE ABSTRACTION TO ENABLE A DYNAMIC CREATION OF NETWORK APPLICATIONS - The method includes receiving, by a data plane definition language compiler, a first data plane definition describing customized functionality of a data plane of a first network application, and compiling the data plane definition to generate a first set of customized data processing modules and a program interface that allows a control plane of the network application to access the first set of customized data processing modules. The method also includes loading the first set of customized data processing modules into a data plane container, wherein the network application is executed via a network operating system, and wherein, upon execution of the network application the customized data processing module causes the data plane container of the network application to process packets differently than prior to loading the customized data processing module in the data plane container. | 08-21-2014 |
20140237457 | APPLICATION PROGRAMMING INTERFACES FOR DATA PARALLEL COMPUTING ON MULTIPLE PROCESSORS - A method and an apparatus for a parallel computing program calling APIs (application programming interfaces) in a host processor to perform a data processing task in parallel among compute units are described. The compute units are coupled to the host processor including central processing units (CPUs) and graphic processing units (GPUs). A program object corresponding to a source code for the data processing task is generated in a memory coupled to the host processor according to the API calls. Executable codes for the compute units are generated from the program object according to the API calls to be loaded for concurrent execution among the compute units to perform the data processing task. | 08-21-2014 |
20140282438 | METHODS, APPARATUSES AND COMPUTER PROGRAM PRODUCTS FOR IMPROVING PRODUCTIVITY FOR BUILDING APPLICATIONS - An apparatus is provided for building an application. The apparatus may include at least one memory and at least one processor configured to generate a build of an application in a C Object-Oriented Programming Language. The processor is also configured to generate a unity file including a plurality of source files having references to one or more header files. At least two of the source files include references to a same header file. The processor is also configured to compile the unity file including the plurality of source files to obtain an object file. The processor is also configured to link the object file to generate an executable of the application. Corresponding computer program products and methods are also provided. | 09-18-2014 |
20140282439 | MIGRATION ASSISTANCE USING COMPILER METADATA - Systems and methods are migration assistance using compiler metadata. An example system includes a data module that receives data associated with a compiler. The data includes a set of rules associated with the compiler. The example system also includes an extraction module that extracts from the data, compiler metadata including the set of rules associated with the compiler. The example system further includes a database that stores the compiler metadata. The example system also includes a patch module that receives a program including source code, retrieves from the database the compiler metadata, and generates, without compiling the received program, a set of migration patches based on the received program and the compiler metadata. The set of migration patches includes one or more changes to the received program to abide by the set of rules associated with the compiler. | 09-18-2014 |
20140282440 | TRANSITIONING BETWEEN CODE-BASED AND DATA-BASED EXECUTION FORMS IN COMPUTING SYSTEMS AND ENVIRONMENTS - Techniques for transitioning between code-based and data-based execution forms (or models) are disclosed. The techniques can be used to improve the performance of computing systems by allowing the execution to transition from one of the execution models to another one of the execution models that may be more suitable for carrying out the execution or effective processing of information in a computing system or environment. The techniques also allow switching back to the previous execution model when that previous model is more suitable than the execution model currently being used. In other words, the techniques allow transitioning (or switching) back and forth between a data-based and code-based execution (or information processing) models. | 09-18-2014 |
20140289714 | Single Code Set Applications Executing In A Multiple Platform System - Embodiments of the claimed subject matter are directed to methods and a system that allows an application comprising a single code set under the COBOL Programming Language to execute in multiple platforms on the same multi-platform system (such as a mainframe). In one embodiment, a single code set is pre-compiled to determine specific portions of the code set compatible with the host (or prospective) platform. Once the code set has been pre-compiled to determine compatible portions, those portions may be compiled and executed in the host platform. According to these embodiments, an application may be executed from a single code set that is compatible with multiple platforms, thereby potentially reducing the complexity of developing the application for multiple platforms. | 09-25-2014 |
20140298303 | METHOD OF PROCESSING PROGRAM AND PROGRAM - A method of processing a program for achieving programming with a low dependency on a hardware is provided. A plurality of types of data representations are provided to a packet in accordance with a type of a memory storing the packet. When an operation is performed for the packet, the data representation provided to the packet is identified, and the processing is performed in accordance with the identified data representation. In this manner, the program with the low dependency on the hardware such as a memory can be developed. Also, in a method (compiler) of processing the program used for the development of the program, a precondition is recognized when the processing for the packet is performed, so that a speed of the created object program is increased. | 10-02-2014 |
20140304691 | DYNAMIC ARRAYS AND OVERLAYS WITH BOUNDS POLICIES - Systems and methods are provided for writing code to access data arrays. One aspect provides a method of accessing a memory array. Data is provided within a one-dimensional array of allocated memory. A dimensional dynamic overlay is declared from within a block of statements, and the declaration initializes various attributes within an array attribute storage object. The data is accessed from within the block of statements as a dimensional indexed array using the array attribute storage object. Another aspect provides a method of creating and accessing a dimensional dynamic array. A dimensional dynamic array is declared from within a block of statements, and memory storage for the array is dynamically allocated. A dynamic overlay storage object is also provided and its attributes are initialized from the dynamic array declaration. The data is accessed as a dimensional indexed array from within the block of statements using the array attribute storage object. | 10-09-2014 |
20140310695 | IDENTIFICATION AND TRANSLATION OF PROGRAM CODE EXECUTABLE BY A GRAPHICAL PROCESSING UNIT (GPU) - A device receives program code, and receives size/type information associated with inputs to the program code. The device determines, prior to execution of the program code and based on the input size/type information, a portion of the program code that is executable by a graphical processing unit (GPU), and determines, prior to execution of the program code and based on the input size/type information, a portion of the program code that is executable by a central processing unit (CPU). The device compiles the GPU-executable portion of the program code to create a compiled GPU-executable portion of the program code, and compiles the CPU-executable portion of the program code to create a compiled CPU-executable portion of the program code. The device provides, to the GPU for execution, the compiled GPU-executable portion of the program code, and provides, to the CPU for execution, the compiled CPU-executable portion of the program code. | 10-16-2014 |
20140331213 | PACKAGING SYSTEM TO FACILITATE DECLARATIVE MODEL-DRIVEN DEVELOPMENT - The subject disclosure relates to a method and system for packaging a post-processed definition of a programming module. Contents of a constraint-based and/or order-independent execution model are received, in which the contents include a declarative source code. The contents are stored into an extensible storage abstraction such that the source code is stored in a declarative format. Metadata describing attributes of the contents stored in the extensible storage abstraction is also defined. A file is then created, which includes the extensible storage abstraction and the metadata. | 11-06-2014 |
20140331214 | Apparatuses, Methods and Systems for Application Programming Interface Call Abstraction - The apparatuses, methods and systems for API call abstraction includes obtaining programming code for an application. The obtained programming code is parsed to identify various instructions contained therein. An application programming interface (API) call is identified in the programming code, based on the parsing. The API call includes an input string. It is then determined whether the API call requires a pre-registered bundle to replace the input string. A database is queried for the pre-registered bundle using the input string. The pre-registered bundle is retrieved and is incorporated into the application by replacing the input string. | 11-06-2014 |
20140351799 | BINARY INTERFACE INSTRUMENTATION - A system and methods for generating metadata based on source code are disclosed. In accordance with one embodiment, a computer system receives a command to compile source code, and in response to the command, generates an executable and a metadata file based on the source code, where the metadata file comprises information pertaining to at least one of a scalar type of the source code, a variable of the source code, or a function of the source code. | 11-27-2014 |
20140351800 | Establishing Platform for If-This-Than-That Rule Based Application Program Used in Mobile Communication Device - The present invention relates to an application program establishing platform and a system of performing the same. The application program establishing platform, which is configured to be implementable on a computer to provide a user with a user interface for establishing an application program based on a user-defined logical determining criterion and implementable on a mobile device, includes: a managing module configured to provide the user to set the user-defined logical determining criterion, wherein the user-defined logical determining criterion is based on an if-this-than-that rule, and to compile the application program into a format implementable on the mobile device. | 11-27-2014 |
20140359586 | Programming Language with Extensions using a Strict Meta-Model - Systems and methods for extending a programming language with a set of extensions using a strict meta-model are disclosed. Embodiments provide a set of interfaces that allow a schema to be synthesized. Syntax is introduced into an existing programming language to allow the construction of schematized data objects. A schema processor module translates a schema representation into new keywords. A document generator module receives the set of keywords and produces output in a selected form. When code comprising the keyword extensions is parsed, AST nodes represent keyword actions as a set of functions and implements those function calls with the original meta-data. A keyword definition comprises a name and an action to be taken at parse time and an action to be taken at runtime. The default action at parse time is to inject a function call into the code. The default action at runtime is to call the function. | 12-04-2014 |
20140380287 | COMPILATION OF SYSTEM DESIGNS - A method is provided for compiling an HLL program. A command is input that indicates a set of HLL source files to be compiled and a set of functions in the HLL source files that are to be implemented on programmable circuitry of a programmable IC. For a source file including one of the set of functions, a respective netlist is generated from HLL code of each of the set of functions included therein. Interface code is also generated for communication with the netlist. HLL code of the set of functions in the HLL source file is replaced with the generated interface code. Each HLL source file is compiled to produce a respective object file. The object files are linked to generate a program executable on the programmable IC. A configuration data stream is generated that implements each generated netlist on the programmable IC. | 12-25-2014 |
20150040109 | METHOD AND APPARATUS FOR GENERATING EXECUTABLE FILE OR MULTI-INSTANCE SERVICE - The present invention relates to a method and an apparatus for generating an executable file of a multi-instance service. The method includes: performing compilation for a source file corresponding to a multi-instance service, to obtain a first-class object file, where the multi-instance service includes N instances, and N is a natural number greater than or equal to 2; performing an object copy of the first-class object file N−1 times, to obtain N−1 new first-class object files; and performing linking to the first-class object file and the N−1 new first-class object files, to generate an executable file. In the present invention, an executable file is generated by performing mirroring and linking processing for an object file obtained by compilation, thereby reducing a development cost and a maintenance cost of software source code. | 02-05-2015 |
20150046910 | HARDWARE COMPILATION AND/OR TRANSLATION WITH FAULT DETECTION AND ROLL BACK FUNCTIONALITY - Hardware compilation and/or translation with fault detection and roll back functionality are disclosed. Compilation and/or translation logic receives programs encoded in one language, and encodes the programs into a second language including instructions to support processor features not encoded into the original language encoding of the programs. In one embodiment, an execution unit executes instructions of the second language including an operation-check instruction to perform a first operation and record the first operation result for a comparison, and an operation-test instruction to perform a second operation and a fault detection operation by comparing the second operation result to the recorded first operation result. In some embodiments, an execution unit executes instructions of the second language including commit instructions to record execution checkpoint states of registers mapped to architectural registers, and roll-back instructions to restore the registers mapped to architectural registers to previously recorded execution checkpoint states. | 02-12-2015 |
20150058831 | WEB APPLICATION DEVELOPMENT PLATFORM WITH RELATIONSHIP MODELING - A system, and method for dynamically creating web applications from data is described. Simple data is transformed into a declarative application data model that is then parsed by a server and compiled into a functional web application. Application functionality is partly determined by rules applied to web application objects in response to user actions. These rules are triggered by various cues, including user actions and relationships among objects in the web applications. A web application is considered an n-dimensional problem space, and relationships among application objects can be modeled using set theory. The status of a particular relationship among objects and user actions can trigger specific application behavior. Additionally application behavior can be triggered in other ways, like conditions in arbitrary scripts or combinations of multiple triggers combined using logical connectives. | 02-26-2015 |
20150067657 | PREPROCESSING KERNEL PRINT COMMANDS - Methods, apparatus and computer program products implement embodiments of the present invention that include replacing, in one or more initial source code files, each reference to a first function configured to convey system messages with a respective reference to a second function configured to convey the system messages, thereby producing respective corresponding preprocessed source code files for the one or more initial source code files. The respective corresponding preprocessed source code files are then compiled, thereby creating an executable file. While executing the executable file, a call to the second function is received, wherein the call includes a text string. A name of one of the respective corresponding preprocessed source code files storing the call to the second function is identified, and based on the identified name and the text string, a computed destination is determined for the text string. Finally, the text string is conveyed to the computed destination. | 03-05-2015 |
20150089483 | METHOD FOR ORDERING TEXT IN A BINARY - In general, in one aspect, embodiments of the invention relate to a method for generating executable binary. The method includes analyzing a test executable binary generated from source code, wherein the source code comprises a plurality of functions, generating, based on analyzing the test executable binary, a code call tree comprising a plurality of call durations for the plurality of functions, and determining, using the code call tree, a function order of the plurality of functions. The method further includes generating, using the function order, a call tree order map, generating a call tree ordered executable binary using the source code and the call tree order map, and executing the call tree ordered executable binary on a processor. | 03-26-2015 |
20150113513 | INCREMENTALLY COMPILING SOFTWARE ARTIFACTS FROM AN INTERACTIVE DEVELOPMENT ENVIRONMENT - An interactive development environment receives developer inputs to develop or customize modeled types. A compilation agent receives a request from the IDE to compile the modeled types that the developer is developing or customizing. The compilation agent accesses a cache of previously compiled types and determines which of the individually loadable types are to be re-compiled based upon the changes made by the developer, and compiles only those identified types. The re-compiled types are also stored in cache. | 04-23-2015 |
20150128112 | Automated Build and Deploy System - A system includes a memory and a processor communicatively coupled to the memory. The processor accesses a particular build schedule from one or more build schedules stored in the memory. The processor accesses, according to the particular build schedule, one or more artifacts and a label associated with the one or more artifacts stored in one or more data repositories. The label associated with the one or more artifacts corresponds to a particular software environment. The processor builds a software package using the one or more artifacts and deploys the software package to the software environment corresponding to the label of the one or more artifacts. | 05-07-2015 |
20150128113 | ALLOCATE INSTRUCTION AND API CALL THAT CONTAIN A SYBMOL FOR A NON-MEMORY RESOURCE - A novel allocate instruction and a novel API call are received onto a compiler. The allocate instruction includes a symbol that identifies a non-memory resource instance. The API call is a call to perform an operation on a non-memory resource instance, where the particular instance is indicated by the symbol in the API call. The compiler replaces the API call with a set of API instructions. A linker then allocates a value to be associated with the symbol, where the allocated value is one of a plurality of values, and where each value corresponds to a respective one of the non-memory resource instances. After allocation, the linker generates an amount of executable code, where the API instructions in the code: 1) are for using the allocated value to generate an address of a register in the appropriate non-memory resource instance, and 2) are for accessing the register. | 05-07-2015 |
20150143347 | SOFTWARE DEVELOPMENT ENVIRONMENT AND METHOD OF COMPILING INTEGRATED SOURCE CODE - A software development environment (SDE) and a method of compiling integrated source code. One embodiment of the SDE includes: (1) a parser configured to partition an integrated source code into a host code partition and a device code partition, the host code partition including a reference to a device variable, (2) a translator configured to: (2a) embed device machine code, compiled based on the device code partition, into a modified host code, (2b) define a pointer in the modified host code configured to be initialized, upon execution of the integrated source code, to a memory address allocated to the device variable, and (2c) replace the reference with a dereference to the pointer, and (3) a host compiler configured to employ a host library to compile the modified host code. | 05-21-2015 |
20150301807 | Partial Specialization of Generic Classes - Generic classes may have more than one specializable type parameter and it may be desirable to specialize one or more of the type variables while not specializing others. The result of partial specialization may be one or more additional generic classes that are further specializable on the remaining type parameters. A runtime specializer may partially specialize a generic class to produce a partially specialized class and may subsequently further specialize the partially specialized class to generate a fully specialized class. Thus, rather than performing the specialization of a generic class all at once, such as by specializing Map into Map or Map, one type parameter may be partially specialized, such as resulting in Map, and then at some later time the remaining type parameter(s) may be specialized, such as to generate Map or Map. | 10-22-2015 |
20150301808 | Manual Refinement of Specialized Classes - While a runtime specializer may always be able to generate an automated specialized version of a generic class, in some cases an alternate form of user control over specialization may allow the use of automated specialization while also adding (or overriding) specialization-specific method implementations. In general, the set of members of a generic class may not change when the class is specialized. In other words, the same members may exist in the auto-specialized version as in the generic version. However, manual refinement of specialized classes may allow a developer to hand specialize a particular (possibly a better) representation and/or implementation of one or more methods of the specialized class. | 10-22-2015 |
20150301809 | Wholesale Replacement of Specialized Classes - Wholesale replacement of specialized classes may involve the ability to replace the auto specialization of a generic class may not be used at all and instead, a completely different, hand-written, class when the class is specialized for particular type parameterizations, according to some embodiments. The replacement class may have the same interface as the generic or auto specialized version, but it may have a completely different representation and/or implementation. A runtime environment may load the alternate version of the class, based on information identifying the alternate version, whenever the particular specialization is instantiated. The runtime may not have to load the generic or auto specialized version of the class when using the alternate version of the class. | 10-22-2015 |
20150309810 | GLOBAL ENTRY POINT AND LOCAL ENTRY POINT FOR CALLEE FUNCTION - Embodiments relate to a global entry point and a local entry point for a callee function. An aspect includes executing, by a processor, a function call from a calling function to the callee function. Another aspect includes, based on the function call being a direct and external function call, entering the callee function at the global entry point and executing prologue code in the callee function that calculates and stores a table of contents (TOC) value for the callee function in a TOC register. Another aspect includes, based on the function call being a direct and local function call, entering the callee function at the local entry point, wherein entering the callee function at the local entry point skips the prologue code. Another aspect includes, based on the function call being an indirect function call, entering the callee function at the global entry point and executing the prologue code. | 10-29-2015 |
20150309812 | GLOBAL ENTRY POINT AND LOCAL ENTRY POINT FOR CALLEE FUNCTION - Embodiments relate to a global entry point and a local entry point for a callee function. An aspect includes executing, by a processor, a function call from a calling function to the callee function. Another aspect includes, based on the function call being a direct and external function call, entering the callee function at the global entry point and executing prologue code in the callee function that calculates and stores a table of contents (TOC) value for the callee function in a TOC register. Another aspect includes, based on the function call being a direct and local function call, entering the callee function at the local entry point, wherein entering the callee function at the local entry point skips the prologue code. Another aspect includes, based on the function call being an indirect function call, entering the callee function at the global entry point and executing the prologue code. | 10-29-2015 |
20150317135 | COMPILER, EXTRACTOR, AND EVALUATOR METHOD - A method and software system allowing the ability to use an existing Excel model and extract the business intelligence, relationships, computations and model into pure mathematical relationships and codes such that the business intelligence in the original model is completely protected and the model can be run at extremely high speed and advanced simulations of hundreds of thousands to millions of trials can be run. | 11-05-2015 |
20150331679 | Staged Program Compilation with Automated Timing Closure - When compiling high-level, graphical code (e.g. LabVIEW™ code) to a different representation (e.g. different software code or hardware FPGA), information relating to characteristics of the design may be collected/captured from the compilation process, and automatically provided to all the earlier stages of the compilation process to obtain more optimal results. Without automated feedback of this information, users have to manually identify, produce, and provide the feedback information, or forego the process altogether, having to assume that the tool has produced the best possible results when that may not be the case. To correct timing, failed constraints paths may be parsed and compared to delays obtained during a previous compile, and previous adjustments that didn't yield desired results may be undone. The longest delay that didn't result from an undone path may then be identified, and adjusted, and the process may be repeated until all paths are predicted to pass. | 11-19-2015 |
20150347101 | R-LANGUAGE INTEGRATION WITH A DECLARATIVE MACHINE LEARNING LANGUAGE - In a method for analyzing a large data set using a statistical computing environment language operation, a processor generates code from the statistical computing environment language operation that can be understood by a software system for processing machine learning algorithms in a MapReduce environment. A processor transfers the code to the software system for processing machine learning algorithms in a MapReduce environment. A processor invokes execution of the code with the software system for processing machine learning algorithms in a MapReduce environment. | 12-03-2015 |
20150355890 | AUTOMATIC CONFIGURATION OF PROJECT SYSTEM FROM PROJECT CAPABILITIES - A project system is automatically configured from project capabilities determined from an instance of a build system by a project capabilities analyzer. A flexible configuration based build system defines the consuming project system. Results of an evaluated project file are used to define the overall capabilities of the build system. The capabilities are used to dynamically load and assemble the project system code. Changes in the project capabilities due to a reevaluation of a result of a build can then redefine and reassemble the project system code. Hence project system configuration is data-driven rather than user-defined and utilizes a flexible, configuration based build system to define the consuming project system. | 12-10-2015 |
20150370545 | OBJECT STORAGE AND SYNCHRONIZATION HOOKS FOR OCCASIONALLY-CONNECTED DEVICES - A system may include an application programming interface (API) layer, a cache layer, and an object storage/access layer. The API layer may expose an interface to store a business object and an interface to retrieve the business object, and may transmit a request to store the business object and a request to retrieve the business object, and the cache layer may cache the business object and transmit the request to store the business object and the request to retrieve the business object. The object storage/access layer may receive the request to store the business object and, in response to the request to store the business object, to invoke a serialization method exposed by the business object to store the data associated with the object in a data structure. The object storage/access layer may also receive the request to retrieve the business object and, in response to the request to retrieve the business object, to invoke a deserialization method of the business object to deserialize the data associated with the business object in the data structure. | 12-24-2015 |
20160026443 | PROCESSING SOURCE FILE - There is provided a method for processing a source file to generate an object file, comprising: obtaining a header file referenced by the source file; in response to the source file calling a data symbol defined in the header file, creating an indicator of a definition the data symbol, wherein definitions of different data symbols correspond to different indicators; and adding the indicator into a compiling result of compiling the source file so as to generate the object file. With the present invention, a dependency between the source file and the header file can be recorded, and the number of source files needed to be re-compiled can be reduced on the basis of the dependency. | 01-28-2016 |
20160034262 | TRANSMISSION POINT PATTERN EXTRACTION FROM EXECUTABLE CODE IN MESSAGE PASSING ENVIRONMENTS - Processes in a message passing system may be launched when messages having data patterns match a function on a receiving process. The function may be identified by an execution pointer within the process. When the match occurs, the process may be added to a runnable queue, and in some embodiments, may be raised to the top of a runnable queue. When a match does not occur, the process may remain in a blocked or non-executing state. In some embodiments, a blocked process may be placed in an idle queue and may not be executed until a process scheduler determines that a message has been received that fulfills a function waiting for input. When the message fulfills the function, the process may be moved to a runnable queue. | 02-04-2016 |
20160070548 | TABLE OF CONTENTS POINTER VALUE SAVE AND RESTORE PLACEHOLDER POSITIONING - Embodiments describe a computer implemented method of compiling application source code into application object code. A compiler generates application object code having a plurality of table of contents TOC placeholder locations for a potential TOC pointer value command within a calling function. A first function call site of the calling function is corresponded to a first TOC placeholder location. A second function call site of the calling function is corresponded to a second TOC placeholder location. | 03-10-2016 |
20160070549 | OFFLINE SHADER COMPILATION - Systems and techniques are provided that allow for installation of an application on a mobile device using a shader executable suitable for execution by the mobile device. When a request to install an application is received by an application distribution platform, a shader configured for the device is generated by the platform and provided with the application package for installation on the device. Thus, launch-time compilation and just-in-time re-compilation may be avoided. | 03-10-2016 |
20160070569 | LAYERED VECTOR ARCHITECTURE COMPATIBILITY FOR CROSS-SYSTEM PORTABILITY - An application that includes intrinsics defined in one architecture is to execute without change on a different architecture. Program code that depends on vector element ordering is obtained, and that program code is part of an application including one or more intrinsics. The one or more intrinsics are mapped from a first system architecture for which the application was written to a second system architecture. One or more operations of the program code are then converted from a first data layout to a second data layout. The application, including the mapped intrinsics and the converted data layout, is to be executed on a processor of the different architecture. | 03-10-2016 |
20160085523 | SELECTIVELY LOADING PRECOMPILED HEADER(S) AND/OR PORTION(S) THEREOF - Techniques are described herein that are capable of selectively loading precompiled header(s) and/or portion(s) thereof. A precompiled header is a complied (e.g., precompiled) representation of a header file. For instance, the compiled representation may be in an intermediate form that a compiler may process more quickly than the non-compiled header file. In one example, the precompiled header(s) and/or portion(s) thereof may be selectively loaded based on whether the precompiled header(s) and/or portion(s) thereof are referenced in a computer program. In another example, loading a portion of a precompiled header may be deferred until content of the portion is referenced in a computer program. | 03-24-2016 |
20160132302 | CONDITIONAL STACK FRAME ALLOCATION - A method for allocating memory includes an operation that determines whether a prototype of a callee function is within a scope of a caller. The caller is a module containing a function call to the callee function. In addition, the method includes determining whether the function call includes one or more unnamed parameters when a prototype of the callee function is within the scope of the caller. Further, the method may include inserting instructions in the caller to allocate a register save area in a memory when it is determined that the function call includes one or more unnamed parameters. | 05-12-2016 |
20160132368 | EVENT PROCESSING DEVELOPMENT ENVIRONMENT - Embodiments described herein are directed to methods, and systems for generating event processing language code in a development environment using an event processing compiler. A query in event processing language is received in a development environment. The query can be associated with sample data from input files or an input data source. An event processing compiler compiles the query, where the compiler transforms the query from event processing language code to a development environment script language code. In particular, the event processing language code transforms the code based on event processing attributes that are intricately aligned in syntax and semantic between the event processing language and the development environment script language. The query as a development environment script is executed using sample data. Executing the query generates output comprising final results data, intermediate results data, and provides for display warnings when mismatches exist between the results data and output specifications. | 05-12-2016 |
20160147517 | METHOD AND COMPUTER PROGRAM PRODUCT FOR DISASSEMBLING A MIXED MACHINE CODE - A method and a computer program product for disassembling a mixed machine code are described. The machine code is provided as a sequence of code items including one or more instructions and one or more data items. The method comprises: storing the sequence of code items in accordance with a corresponding sequence of addresses; executing the machine code, thereby generating an execution trace; and partitioning the sequence of addresses into instruction address blocks and data address blocks on the basis of control data, the control data comprising at least the execution trace. | 05-26-2016 |
20160179485 | COMPILER METHOD FOR GENERATING INSTRUCTIONS FOR VECTOR OPERATIONS ON A MULTI-ENDIAN PROCESSOR | 06-23-2016 |
20160196120 | iOS APPLICATION AUTOMATIC COMPILATION METHOD AND SYSTEM | 07-07-2016 |
20160253157 | SOFTWARE REFACTORING | 09-01-2016 |
20160378440 | USING A VERSION-SPECIFIC RESOURCE CATALOG FOR RESOURCE MANAGEMENT - Once a set of inter-dependent items are generated (such as compiled), each of the items is re-named with a content-based name that is generated for each of those items. A version-specific catalog of the inter-dependent items is generated, that maps an item identifier to the content-based name for each item. The re-named items and the version-specific catalogs are loaded to a publication system for consumption. | 12-29-2016 |
20160378441 | CHANNEL SIZING FOR INTER-KERNEL COMMUNICATION - Systems and methods for dynamically sizing inter-kernel communication channels implemented on an integrated circuit (IC) are provided. Implementation characteristics of the channels, predication, and kernel scheduling imbalances may factor into properly sizing the channels for self-synchronization, resulting in optimized steady-state throughput. | 12-29-2016 |
20160378442 | METHODS, SYSTEMS AND APPARATUS TO OPTIMIZE SPARSE MATRIX APPLICATIONS - Methods, apparatus, systems and articles of manufacture are disclosed to optimize sparse matrix execution. An example disclosed apparatus includes a context former to identify a matrix function call from a matrix function library, the matrix function call associated with a sparse matrix, a pattern matcher to identify an operational pattern associated with the matrix function call, and a code generator to associate a function data structure with the matrix function call exhibiting the operational pattern, the function data structure stored external to the matrix function library, and facilitate a runtime link between the function data structure and the matrix function call. | 12-29-2016 |
20160378443 | TECHNIQUES FOR DISTRIBUTED OPERATION OF SECURE CONTROLLERS - Various embodiments are generally directed to techniques for supporting the distributed execution of a task routine among multiple secure controllers incorporated into multiple computing devices. An apparatus includes a first processor component and first secure controller of a first computing device, where the first secure controller includes: a selection component to select the first secure controller or a second secure controller of a second computing device to compile a task routine based on a comparison of required resources to compile the task routine and available resources of the first secure controller; and a compiling component to compile the task routine into a first version of compiled routine for execution within the first secure controller by the first processor component and a second version for execution within the second secure controller by a second processor component in response to selection of the first secure controller. Other embodiments are described and claimed. | 12-29-2016 |
20170235553 | ANALYSIS OF SOURCE CODE FOR DEPLOYMENT | 08-17-2017 |
20170235554 | ANALYSIS OF SOURCE CODE FOR DEPLOYMENT | 08-17-2017 |
20170235670 | METHOD FOR TRACKING HIGH-LEVEL SOURCE ATTRIBUTION OF GENERATED ASSEMBLY LANGUAGE CODE | 08-17-2017 |
20190146762 | INTELLIGENT SOFTWARE COMPILER DEPENDENCY FULFILLMENT | 05-16-2019 |