Including Intermediate Code Patents (Class 717/146)
-
Patent number: 8037460Abstract: Software expressed in an intermediate level language is stored into a database and interpreted in a virtual machine in a database management system. A dynamic compilation process in the database management system asynchronously converts the software into native code when predetermined conditions are met. Thereafter, the compilation process persists the native code into the database. At the time of persisting the native code, the compilation process also stores in the database, an indication of any properties that are used in compilation of the native code. At run time, when the native code needs to be executed, the virtual machine checks if the indication stored in the database matches a new indication of the constants, and if they do the persisted code is executed or else the persisted code is invalidated. The persisted code is also invalidated when a new version of ILL software is stored into the database.Type: GrantFiled: January 26, 2007Date of Patent: October 11, 2011Assignee: Oracle International CorporationInventors: Robert H. Lee, David Unietis, Mark Jungerman
-
Patent number: 8024715Abstract: A method for detecting transient fault includes translating binary code to an intermediate language code. An instruction of interest in the intermediate language code is identified. Reliability instructions are inserted in the intermediate language code to validate values from the instruction of interest. The intermediate language code is translated to binary code. Other embodiments are described and claimed.Type: GrantFiled: June 29, 2006Date of Patent: September 20, 2011Assignee: Intel CorporationInventors: George A. Reis, Robert Cohn, Shubhendu S. Mukherjee
-
Patent number: 8015543Abstract: A computer-implemented method for generating code based on a graphical model may include: translating the graphical model into a graphical model code, the graphical model code including a first graphical model code function; performing a lookup of the first graphical model code function in a hardware specific library, the hardware specific library comprising a plurality of relationships between graphical model code functions and hardware specific functions, where the first graphical model code function is one of the graphical model code functions; obtaining a matched hardware specific function based on the lookup, wherein the matched hardware specific function is one of the hardware specific functions from the hardware specific library; and modifying the graphical model code based on the matched hardware specific function.Type: GrantFiled: January 10, 2007Date of Patent: September 6, 2011Assignee: The MathWorks, Inc.Inventors: James E. Carrick, Peter Szpak, Robert O. Aberg, Andrew C. Bartlett, Xiaocang Lin, Hongbo Yang
-
Patent number: 8006237Abstract: A method of dynamic real time translation of first program code written for a first programmable machine into second program code (target code) for running on a second programmable machine employing run time generation of an intermediate representation of the first program code. Upon first encountering a given portion of program code, only the target code necessary to execute that portion of program code under a prevailing set of entry conditions is initially generated and stored. When the same portion of program code is again encountered, a determination is made as to whether intermediate representation corresponding to a second subsequent set of conditions has been generated. If not, the target code necessary to execute the same portion of program code under that second set of conditions is generated.Type: GrantFiled: March 27, 2007Date of Patent: August 23, 2011Assignee: International Business Machines CorporationInventors: Jason Souloglou, Alasdair Rawsthorne
-
Publication number: 20110185345Abstract: Described is a source program code language that facilitates the association of security proofs obtained from a solver (e.g., a Z3 theorem prover) with the program code. The code may include affine types, dependent types and/or refinement types. A derefinement procedure replaces each refinement type with a dependent pair type corresponding to the proof. A target code type checker verifies the target code with respect to the security policies. If verified as complying with security policy, a verified program corresponding to the translated program may then be installed and run.Type: ApplicationFiled: January 27, 2010Publication date: July 28, 2011Applicant: Microsoft CorporationInventors: Nikhil Swamy, Juan Chen, Ravi Kumar Chugh
-
Publication number: 20110173596Abstract: The invention relates to a method for compiling high-level language code for various architectures and/or components. The invention proposes that an architecture-specific precompilation be generated and subsequently the architecture-specific precompilation be compiled taking into account component-specific information.Type: ApplicationFiled: November 28, 2008Publication date: July 14, 2011Inventor: Martin Vorbach
-
Publication number: 20110173595Abstract: The compilation of user code. Upon accessing the user code, the compiler determines that the user code includes at least one top-level asynchronous operation that is 1) to operate at a top-level of the stack of the programmed code, 2) that is programmed using a syntax for synchronous operations and 3) includes at least one indicator that the operation is to be asynchronous. The user code is then compiled such that the top-level asynchronous operation programmed in the syntax for synchronous operations is transformed into an asynchronous pattern suitable for the runtime environment.Type: ApplicationFiled: January 8, 2010Publication date: July 14, 2011Applicant: MICROSOFT CORPORATIONInventors: Niklas Gustafsson, Artur Laksberg
-
Publication number: 20110154307Abstract: A method and system are provided in which one or more processors may be operable to generate an intermediate representation of a shader source code, wherein the intermediate representation comprises one or more whole-program data flow graph representations of the shader source code. The one or more processors may be operable to generate machine code based on the generated intermediate representation of the shader source code. The one or more whole-program data flow graph representations of the shader source code may be generated utilizing a compiler front end. The machine code may be generated utilizing a compiler back end. The generated machine code may be executable by a graphics processor. The generated machine code may be executable by a processor comprising a single-instruction multiple-data (SIMD) architecture. The generated machine code may be executable to perform coordinate and/or vertex shading of image primitives.Type: ApplicationFiled: August 25, 2010Publication date: June 23, 2011Inventor: Eben Upton
-
Publication number: 20110131548Abstract: A system and method for converting byte code of a first type into byte code of a second type. Byte code of a first type and markup language code are received as inputs. The first byte code is converted into constituent byte code data elements that can comprise any logical unit or grouping of at least a portion of a software application. The markup language code is converted into constituent markup language data elements that can comprise individual markup language tags and references to data or functionality in the first byte code. The first byte code data elements and markup language data elements are mapped to data elements of a second byte code type. The second byte code data elements are assembled into a resulting second byte code.Type: ApplicationFiled: November 29, 2010Publication date: June 2, 2011Applicant: Aptana IncorporatedInventors: Paul Colton, Kevin Edward Lindsey, Roland Ingomar Muschenetz, Robin Sean Debreuil
-
Publication number: 20110082984Abstract: A host device executes a browser application that displays web content to a user in plurality of tabs or windows. The browser application includes an interpreter that determines whether an external file referenced in the web content already exists in a shared memory resource available to a plurality of the tabs or windows. If the external file does not exist, the interpreter obtains the external file and generates the intermediate representation of the external file for storage in the shared memory resource. If the external file does exist, the interpreter links an intermediate representation of the code embedded in the web content that is stored in a dedicated memory resource to the corresponding intermediate representation of the external file stored in the shared memory resource.Type: ApplicationFiled: October 6, 2009Publication date: April 7, 2011Applicant: Telefonaktiebolaget LM Ericsson (publ)Inventor: Song Yuan
-
Patent number: 7921417Abstract: Method and computer system for activation of source files. A source file repository stores a plurality of active source files belonging to a component. A central compilation service receives an activation request for at least one inactive source file of the component. In response to the activation request the central compilation service compiles the component using the at least one inactive source file and, in case the compilation is successfully completed, initiates a transfer of the at least one inactive source file to the plurality of active source files.Type: GrantFiled: February 13, 2004Date of Patent: April 5, 2011Assignee: SAP AGInventors: Eduard Bartsch, Joerg Lienhardt
-
Patent number: 7917900Abstract: 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.Type: GrantFiled: March 30, 2007Date of Patent: March 29, 2011Assignee: Microsoft CorporationInventors: Sriram K. Rajamani, Prakash Chandrasekharan, Christopher L. Conway, Joseph Joy
-
Publication number: 20110072419Abstract: May-constant propagation is a technique used to propagate a constant through the call graph and control flow graph by ignoring possible kills and re-definitions with low probability. Variables associated with constants in program code are determined. Execution flow probabilities are executed for code segments of the program code that comprise the variables. The execution flow probabilities are calculated based on flow data for the program code. At least a first of the code segments is determined to have a high execution flow probability. The first of the constants associated with the first variable are propagated through the flow data to generate modified flow data.Type: ApplicationFiled: September 22, 2010Publication date: March 24, 2011Applicant: International Business Machines CorporationInventors: Roch G. Archambault, Shimin Cui, Yaoqing Gao
-
Patent number: 7913239Abstract: A method, apparatus, and computer instructions are provided by the present invention for a programming framework for easy pattern matching and transformation of intermediate language expression trees. With expression matching and transformation framework (EMTF) of the present invention, pattern matchers may be defined and embedded in a C++ program code in a manner that resembles their intermediate representation. EMTF also provides capabilities for unification, unbinding, transformation, intra-pattern referencing, common operators, creation of pattern objects in a storage pool. With EMTF, less common patterns may be applied against input expressions without repeatedly implementing an algorithm.Type: GrantFiled: March 8, 2005Date of Patent: March 22, 2011Assignee: International Business Machines CorporationInventors: Christopher Mark Barton, Arie Tal
-
Publication number: 20110067013Abstract: A software development method defers certain implementation details until load time. A programmer first annotates, in source code, a selected set of software components using metadata (such as Java-style annotations) that define one or more criteria—e.g., criteria relating to the state of the target hardware platform, the capabilities of the platform, or arbitrary user input. The annotated source code files are then compiled to create one or more intermediate code files (e.g., Java bytecode files). During load time of the resulting intermediate code files, one or more of the selected set of software components are loaded from the intermediate code files based on the criteria.Type: ApplicationFiled: September 15, 2009Publication date: March 17, 2011Applicant: ADVANCED MICRO DEVICES, INC.Inventors: Gary FROST, Shrinivas JOSHI
-
Using transactional memory for precise exception handling in aggressive dynamic binary optimizations
Patent number: 7865885Abstract: Dynamic optimization of application code is performed by selecting a portion of the application code as a possible transaction. A transaction has a property that when it is executed, it is either atomically committed or atomically aborted. Determining whether to convert the selected portion of the application code to a transaction includes determining whether to apply at least one of a group of code optimizations to the portion of the application code. If it is determined to apply at least one of the code optimizations of the group of optimizations to the portion of application code, then the optimization is applied to the portion of the code and the portion of the code is converted to a transaction.Type: GrantFiled: September 27, 2006Date of Patent: January 4, 2011Assignee: Intel CorporationInventors: Youfeng Wu, Cheng Wang, Ho-seop Kim -
Patent number: 7844958Abstract: A system and method for converting byte code of a first type into byte code of a second type. Byte code of a first type and markup language code are received as inputs. The first byte code is converted into constituent byte code data elements that can comprise any logical unit or grouping of at least a portion of a software application. The markup language code is converted into constituent markup language data elements that can comprise individual markup language tags and references to data or functionality in the first byte code. The first byte code data elements and markup language data elements are mapped to data elements of a second byte code type. The second byte code data elements are assembled into a resulting second byte code.Type: GrantFiled: March 10, 2006Date of Patent: November 30, 2010Assignee: Aptana, Inc.Inventors: Paul Colton, Kevin Edward Lindsey, Roland Ingomar Muschenetz, Robin Sean Debreuil
-
Patent number: 7840951Abstract: One embodiment of the present invention provides a system that reduces the overhead involved in executing a native code method in an application running on a virtual machine. During operation, the system selects a call to a native code method to be optimized within the virtual machine, decompiles at least part of the native code method into an intermediate representation, and obtains an intermediate representation associated with the application. Next, the system combines the intermediate representation for the native code method with the intermediate representation associated with the application running on the virtual machine to form a combined intermediate representation, and generates native code from the combined intermediate representation, wherein the native code generation process optimizes interactions between the application running on the virtual machine and the native code method. A variation on this embodiment involves optimizing callbacks by the native code method into the virtual machine.Type: GrantFiled: August 22, 2003Date of Patent: November 23, 2010Assignee: Oracle America, Inc.Inventors: Gregory M. Wright, Mario I. Wolczko, Matthew L. Seidl
-
Publication number: 20100293534Abstract: In one embodiment, the invention is a method and apparatus for use of vectorization instruction sets. One embodiment of a method for generating vector instructions includes receiving source code written in a high-level programming language, wherein the source code includes at least one high-level instruction that performs multiple operations on a plurality of vector operands, and compiling the high-level instruction(s) into one or more low-level instructions, wherein the low-level instructions are in an instruction set of a specific computer architecture.Type: ApplicationFiled: May 15, 2009Publication date: November 18, 2010Inventors: HENRIQUE ANDRADE, Bugra Gedik, Hua Yong Wang, Kun-Lung Wu
-
Patent number: 7836434Abstract: Methods, systems, and articles of manufacture consistent with the present invention provide an improved technique for analyzing statements that use pointer or array syntax to access dynamically-allocated arrays to determine whether the statement generates a reference that is outside the bounds of the array's allocated memory. Statements that use pointer or array syntax to access dynamically-allocated arrays can be either statically (at compile-time) or dynamically bounds (at run-time) checked. Methods and systems in accordance with the present invention determine at compile-time if an array reference can be determined to always be in bounds or definitely out of bounds at least once, and if not, insert code into the program to check the array bounds dynamically at run-time before the access of the array reference.Type: GrantFiled: May 4, 2004Date of Patent: November 16, 2010Assignee: Oracle America, Inc.Inventor: Michael L. Boucher
-
Patent number: 7831965Abstract: One embodiment of the present invention provides a system that resolves references in an in-place execution file for a platform-independent virtual machine into physical addresses. During operation, the system receives an in-place execution file in which references have been replaced with in-place encoded metadata specifying attributes of the references. The system then resolves a reference by obtaining in-place encoded metadata for the reference from a location in the in-place execution file, using the in-place encoded metadata to determine an address of an associated referent, and then replacing the in-place encoded metadata at the location in the in-place execution file with the address of the referent.Type: GrantFiled: August 12, 2004Date of Patent: November 9, 2010Assignee: Oracle America, Inc.Inventors: William F. Pittore, Antero K. P. Taivalsaari
-
Publication number: 20100275188Abstract: A system and method for facilitating analysis and modification of a computer program. A directed graph is generated from an intermediate language representation of a computer program function, with a node representing each instruction. Meta-edges or meta-nodes are inserted into the directed graph to facilitate location of instruction nodes. One type of meta-edge is a back edge that identifies branch instruction nodes. Some meta-nodes may identify instructions of a specific type. Some meta-nodes may identify exception blocks and corresponding handlers. Analysis of a program function may include insertion of new instructions prior to execution of the function.Type: ApplicationFiled: April 23, 2009Publication date: October 28, 2010Applicant: Microsoft CorporationInventors: Leon Dubinsky, John Lyon-Smith
-
Publication number: 20100275189Abstract: A code generator and multi-core framework are executable in a computer system to implement methods as disclosed herein, including a method for the code generator to automatically generate multi-threaded source code from functional specifications, and for the multi-core framework, which is a run time component, to generate multi-threaded task object code from the multi-threaded source code and to execute the multi-threaded task object code on respective processor cores. The methods provide transparency to the programmer, and during execution, provide automatic identification of processing parallelisms. The methods implement Consume-Simplify-Produce and Normalize-Transpose-Distribute operations to reduce complex expression sets in a functional specification to simplified expression sets operable in parallel processing environments through the generated multi-threaded task object code.Type: ApplicationFiled: February 24, 2010Publication date: October 28, 2010Inventors: Daniel E. COOKE, J. Nelson RUSHTON, Brad NEMANICH
-
Publication number: 20100269103Abstract: The present invention discloses a method for multi-core instruction-set simulation. The proposed method identifies the shared data segment and the dependency relationship between the different cores and thus effectively reduces the number of sync points and lowers the synchronization overhead, allowing multi-core instruction-set simulation to be performed more rapidly while ensuring that the simulation results are accurate. In addition, the present invention also discloses a device for multi-core instruction-set simulation.Type: ApplicationFiled: October 13, 2009Publication date: October 21, 2010Applicant: National Tsing Hua UniversityInventors: Meng-Huan Wu, Cheng-Yang Fu, Peng-Chih Wang, Ren-Song Tsay
-
Patent number: 7814467Abstract: A method of generating a software program executable binary file. A first file including source code therein is accessed. A second file including object code therein and further including object file summary information is accessed. The executable binary file is generated from at least the first and second files. The object file summary information is used in optimizing the executable binary file generated.Type: GrantFiled: January 15, 2004Date of Patent: October 12, 2010Assignee: Hewlett-Packard Development Company, L.P.Inventors: Xinliang David Li, Mur Litharan Vijayasundaram, Dmitry Mikulin, Shin-Ming Liu
-
Patent number: 7814069Abstract: Methods and apparatus for checking the compliance of a file with global and custom standards are disclosed. According to one aspect of the present invention, a method for checking a file that is associated with a first set of standards and a second set of standards into a repository includes providing the file to a checking arrangement that includes a checking tool and an adapter that is interfaced with the checking tool. The method also includes executing the checking tool to determine compliance of the file with the first set of standards, and executing the adapter to determine compliance of the file with the second set of standards.Type: GrantFiled: March 30, 2006Date of Patent: October 12, 2010Assignee: Oracle International CorporationInventor: Jyotsna Bendapudi
-
Publication number: 20100251226Abstract: A first execution program for outputting coverage data during execution is output by compiling a first source code. Coverage data is output by executing the output first execution program. A code block not executed at all included in the first source code is commented out or deleted according to the output coverage data to generate a second source code. A second execution program is output by compiling the generated second source code.Type: ApplicationFiled: January 11, 2010Publication date: September 30, 2010Applicant: KABUSHIKI KAISHA TOSHIBAInventors: Makoto Sato, Katsuya Uchida, Hiroyuki Tsukahara
-
Patent number: 7805710Abstract: Subject program code is translated to target code in basic block units at run-time in a process wherein translation of basic blocks is interleaved with execution of those translations. A shared code cache mechanism is added to persistently store subject code translations, such that a translator may reuse translations that were generated and/or optimized by earlier translator instances.Type: GrantFiled: March 30, 2004Date of Patent: September 28, 2010Assignee: International Business Machines CorporationInventor: Geraint North
-
Patent number: 7793277Abstract: A front-end compiler generates unique instructions for virtual method calls in intermediate representation code that may be passed to a back-end compiler. A back-end compiler in accordance with the preferred embodiments receives the intermediate representation code, and processes the unique instructions to generate therefrom equivalent code with explicit method calls, where possible. The machine code from the back-end compiler is then executed using sample inputs to generate profile data. The profile data and intermediate representation code are fed into the back-end compiler, which then generates code that may devirtualize virtual method calls according to the profile data by providing one or more explicit method calls for target methods that have an execution frequency (as indicated by the profile data) that exceeds a predetermined threshold.Type: GrantFiled: September 7, 2001Date of Patent: September 7, 2010Assignee: International Business Machines CorporationInventor: William Jon Schmidt
-
Patent number: 7788652Abstract: A representation of types, type-checker, method and compiler are provided for checking consistency in various forms of an intermediate language. Specifically, the typed intermediate language is suitable for use in representing programs written in multiple (heterogeneous) source languages including typed and untyped languages, loosely and strongly typed languages, and languages with and without garbage collection. Additionally, the type checker architecture is extensible to handle new languages with different types and primitive operations. The representation of types can be implemented as a data structure that represents two or more sets of types with one or more sub-structures for representing classifications of types. Alternatively, the type system can be implemented as a base class at the top of a hierarchy and a plurality of classes hierarchically below the base class can be defined to represent a number of types such as pointer types, container types, and function types.Type: GrantFiled: July 21, 2003Date of Patent: August 31, 2010Assignee: Microsoft CorporationInventors: Mark Ronald Plesko, David Read Tarditi, Jr.
-
Patent number: 7788651Abstract: A computer-implemented system for representing data comprises a position indicator that indicates a position of a datum within a group, a name indicator that optionally names the datum, and a value of the datum. A type to be assigned to the datum is derived from at least one of a name of the datum and the position of the datum within the group. Methods of using the system are also provided.Type: GrantFiled: September 2, 2005Date of Patent: August 31, 2010Assignee: Microsoft CorporationInventors: Henricus Johannes Maria Meijer, Brian C. Beckman, Paul A. Vick, Amanda Silver
-
Patent number: 7788653Abstract: Apparatus and methods for performing generational escape analysis in managed runtime environments are disclosed. The disclosed apparatus and methods determine the generational age of an equivalence class while performing escape analysis. Equivalence classes having generational ages are cloned if their generational ages are less than a threshold age.Type: GrantFiled: March 2, 2004Date of Patent: August 31, 2010Assignee: Intel CorporationInventors: Xiaohua Shi, Guei-Yuan Lueh, Gansha Wu
-
Publication number: 20100211940Abstract: The latencies associated with cache misses or other long-latency instructions in a main thread are decreased through the use of a simultaneous helper thread. The helper thread is a speculative prefetch thread to perform a memory prefetch for the main thread. The instructions for the helper thread are dynamically incorporated into the main thread binary during post-pass operation of a compiler.Type: ApplicationFiled: February 1, 2010Publication date: August 19, 2010Inventors: Steve Shih-wei Liao, Perry H. Wang, Hong Wang, Gerolf F. Hoflehner, Daniel M. Lavery, John P. Shen
-
Publication number: 20100199269Abstract: A program optimization device which, when optimizing a program, performs optimization depending on characteristics of data to be processed by the program without having to execute the program before the optimization, includes: an intermediate code conversion unit that converts an input program to be optimized, into an intermediate code; a variable value setting unit that sets a possible value of a variable according to externally provided information; a node value calculation unit that calculates a possible value of a node included in the intermediate code according to the value set by the variable value setting unit; an intermediate code optimization unit that optimizes the intermediate code according to the value calculated by the node value calculation unit; and an output program conversion unit that converts the intermediate code optimized by the intermediate code optimization unit, to an output program.Type: ApplicationFiled: October 8, 2008Publication date: August 5, 2010Applicant: PANASONIC CORPORATIONInventors: Dai Hattori, Tomoo Hamada
-
Patent number: 7770158Abstract: A method, computer program product, and apparatus comprise providing a Java developer kit class library comprising first Java classes; providing a Java Open Foundation class library comprising second Java classes each containing one or more of the first Java classes; providing a .NET SDK class library comprising .NET classes; providing a .NET language Open Foundation class library comprising first .NET language classes each containing one or more of the .NET classes; wherein each of the .NET language classes presents the same method signature as one of the second Java classes; receiving Java source code defining third Java classes, first calls to the first Java classes, and second calls to the second Java classes; translating the third Java classes into second .NET language classes; and translating the first calls to calls into the .NET SDK class library without modifying the second calls.Type: GrantFiled: October 14, 2004Date of Patent: August 3, 2010Assignee: BEA Systems, Inc.Inventors: John Alexander Osborne, Jeffrey Scott Miller, Alexander Rothschild Aickin, Raja Mani, Adrian Peter McDermott, David Vydra
-
Publication number: 20100191930Abstract: Transactional memory compatibility type attributes are associated with intermediate language code to specify, for example, that intermediate language code must be run within a transaction, or must not be run within a transaction, or may be run within a transaction. Attributes are automatically produced while generating intermediate language code from annotated source code. Default rules also generate attributes. Tools use attributes to statically or dynamically check for incompatibility between intermediate language code and a transactional memory implementation.Type: ApplicationFiled: January 26, 2009Publication date: July 29, 2010Applicant: MICROSOFT CORPORATIONInventors: Dana Groff, Yosseff Levanoni, Stephen Toub, Michael McKenzie Magruder, Weirong Zhu, Timothy Lawrence Harris, Christopher William Dern, John Joseph Duffy, David Detlefs, Martin Abadi, Sukhdeep Singh Sodhi, Lingli Zhang, Alexander Dadiomov, Vinod Grover
-
Patent number: 7761601Abstract: Proxy functionality is described for receiving a request for markup content from a receiving device, retrieving the markup content, converting the markup content to code-bearing content, and transferring the code-bearing content to the receiving device. The receiving device can then consume the code-bearing content without the use of conventional browser functionality. The proxy functionality can convert the markup content to code-bearing content by identifying a set of features that captures the characteristics of the markup language content, and then translating those features into to the code-bearing content (in association with identified data resources). The converting can also include identifying features that are contingent on focusable elements (e.g., links) having focus (or not having focus), and formulating this dependency in conditional statements within the code-bearing content. Finally, the markup content can also include code content embedded therein or referenced therein.Type: GrantFiled: April 1, 2005Date of Patent: July 20, 2010Assignee: Microsoft CorporationInventors: Steven J. Falkenburg, Ada Y. Chan, Bradley R. Pettit
-
Patent number: 7752608Abstract: Systems, methods and apparatus are provided through which in some embodiments, domain knowledge is translated into a knowledge-based system. In some embodiments, a formal specification is derived from rules of a knowledge-based system, the formal specification is analyzed, and flaws in the formal specification are used to identify and correct errors in the domain knowledge, from which a knowledge-based system is translated.Type: GrantFiled: August 12, 2005Date of Patent: July 6, 2010Assignee: The United States of America as represented by the Administrator of the National Aeronautics and Space AdministrationInventors: Michael G. Hinchey, James L. Rash, John D. Erickson, Denis Gracinin, Christopher A. Rouff
-
Patent number: 7747877Abstract: A trusted Java virtual machine provides a method for supporting tamper-resistant applications, ensuring the integrity of an application and its secrets such as keys. The trusted Java virtual machine verifies the integrity of the Java application, prevents debugging of the Java application, and allows the Java application to securely store and retrieve secrets. The trusted Java virtual machine environment comprises a TrustedDictionary, a TrustedBundle, an optional encryption method for encrypting and decrypting byte codes, and an underlying trusted Java virtual machine. The encrypted TrustedDictionary protects data while the TrustedBundle protects programming code, allowing applications to store secret data and secure counters. The application designer can restrict TrustedBundle access to only those interfaces that the application designer explicitly exports. The open source code may optionally be encrypted.Type: GrantFiled: February 2, 2009Date of Patent: June 29, 2010Assignee: International Business Machines CorporationInventors: Hongxia Jin, Donald E. Leake, Jr., Jeffrey B. Lotspiech, Sigfredo I. Nin, Wilfred E. Plouffe
-
Publication number: 20100162202Abstract: A system for automating at least a portion of a communication application development cycle using a communication virtual machine that automatically interfaces with an existing network system and provides an engine for executing designed application models over the existing network system.Type: ApplicationFiled: October 3, 2007Publication date: June 24, 2010Inventors: Yi Deng, S. Masoud Sadjadi, STeve Luis, Peter Clarke, Chi Zhang, Evangelos Christidis, Raju Rangaswami
-
Publication number: 20100153936Abstract: Deferred constant pool generation is disclosed. Optimization processing is performed with respect to an intermediate representation of a source code. The optimized intermediate representation is used to generate a constant pool. In some embodiments, the source code comprises JavaScript, which is used to generate an LLVM or other intermediate representation (IR), which intermediate representation is optimized prior to a constant pool being generated.Type: ApplicationFiled: December 15, 2008Publication date: June 17, 2010Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Eric Marshall Christopher
-
Publication number: 20100153934Abstract: A compiler for a heterogeneous system that includes both one or more primary processors and one or more parallel co-processors is presented. For at least one embodiment, the primary processors(s) include a CPU and the parallel co-processor(s) include a GPU. Source code for the heterogeneous system may include code to be performed on the CPU but also code segments, referred to as “foreign macro-instructions”, that are to be performed on the GPU. An optimizing compiler for the heterogeneous system comprehends the architecture of both processors, and generates an optimized fat binary that includes machine code instructions for both the primary processor(s) and the co-processor(s). The optimizing compiler compiles the foreign macro-instructions as if they were predefined functions of the CPU, rather than as remote procedure calls.Type: ApplicationFiled: December 12, 2008Publication date: June 17, 2010Inventor: Peter Lachner
-
Publication number: 20100153935Abstract: Delayed insertion of safepoint related code is disclosed. Optimization processing is performed with respect to an intermediate representation of a source code. The optimized intermediate representation is analyzed programmatically to identify a safepoint and insert safepoint related code associated with the safepoint. In some embodiments, analyzing the optimized intermediate representation programmatically comprises determining where to place the safepoint within a program structure of the source code as reflected in the intermediate representation.Type: ApplicationFiled: December 15, 2008Publication date: June 17, 2010Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Thomas John O'Brien
-
Publication number: 20100153929Abstract: A device-independent intermediate representation of a source code is generated and stored, e.g., in a memory or other storage mechanism. The stored intermediate representation of the source code is used to generate a device-specific machine code corresponding to the source code. The stored intermediate representation may be updated, e.g., periodically, for example by obtaining an updated version of the source code and compiling the updated source code to generate an updated intermediate representation. The stored intermediate representation may be based on source code received from a device that is synchronized with which a compiling device that generates the device-specific machine code. In some cases, the stored intermediate representation may be used to generate for each of a plurality of devices a corresponding device-specific machine code.Type: ApplicationFiled: December 15, 2008Publication date: June 17, 2010Inventors: Victor Leonel Hernandez Porras, Thomas John O'Brien, Roger Scott Hoover, Christopher Arthur Lattner, Eric Marshall Christopher, Pratik Solanki, Jia-Hong Chen, Michael Alan Kahl
-
Patent number: 7739671Abstract: Systems, methods and apparatus are provided through which in some embodiments an informal specification is translated without human intervention into a formal specification. In some embodiments the formal specification is a process-based specification. In some embodiments, the formal specification is translated into a high-level computer programming language which is further compiled into a set of executable computer instructions.Type: GrantFiled: August 12, 2005Date of Patent: June 15, 2010Assignee: The United States of America as represented by the Administrator of the National Aeronautics and Space AdministrationInventors: Michael G. Hinchey, James L. Rash, John D. Erickson, Denis Gracinin, Christopher A. Rouff
-
Patent number: 7738448Abstract: A signaling method reduces bandwidth requirements and signaling delays normally associated with sending text-based signaling messages over a wireless links. An application at a transmitting endpoint generates and sends a binary-encoded signaling message, along with a binary interpreter that enables the receiving endpoint or SIP server to construct a text-based message from the binary encoded message. The binary-encoded signaling message may include references to a saved state, or to a dictionary to enable compression of the message. The signaling method can be used with any text-based signaling protocol, such as the Session Initiation Protocol, the Session Description Protocol, and the Real Time Streaming Protocol.Type: GrantFiled: December 29, 2005Date of Patent: June 15, 2010Assignee: Telefonaktiebolaget LM Ericsson (publ)Inventor: Martin Hans Renschler
-
Publication number: 20100138815Abstract: Implementing aspects via callback in a virtual machine, where an aspect weaver weaves the aspect with a module to provide primary and crosscutting functionality in the runtime execution of the module. The virtual machine has multiple modules that are part of an application implementing separation of concerns. Each of the multiple modules has a distinct functionality portion and a common functionality portion, common to all modules. The common functionality is referenced by the virtual machine via callback for the multiple modules. Aspect code is loaded as a callback that is applied to the multiple modules by the virtual machine. Loading the aspect code as a callback can implement the aspect at any point in the modules, including conditional statements, calls to methods of objects or classes, loops, any point in an exception handler, or to monitor changes in variables.Type: ApplicationFiled: November 28, 2008Publication date: June 3, 2010Applicant: Red Hat, Inc.Inventor: James P. Schneider
-
Publication number: 20100131936Abstract: A method is provided for translating sets of constraint declarations to imperative code sequences based on defining an instantiatable object per set, inserting calls to a notification callback mechanism on state modification and defining calls in the constraint context as imperative code sequences that, in response to these callbacks, take actions to maintain these constraints. This notification and callback mechanism can also be employed in connection with external events, thereby providing for efficient implementation of event-sequenced imperative procedures in a constraint programming language.Type: ApplicationFiled: November 26, 2008Publication date: May 27, 2010Inventor: David R. Cheriton
-
Patent number: 7725883Abstract: A method and system is provided that allows a well-behaved program to execute more quickly than dynamically typed programming languages did in the past, thereby allowing a the dynamically typed language to be competitive with static declarative programming languages. A method includes converting lines of source code representing functions to byte-codes representing functions, selecting a subsequence of the byte-codes based on the byte-codes and the dynamic run-time properties of program variables, generating processor instructions in a compiler for the subsequence, and interpreting the byte-codes not contained in the subsequence.Type: GrantFiled: December 5, 2005Date of Patent: May 25, 2010Assignee: The MathWorks, Inc.Inventors: Charles G. Nylander, William M. McKeeman, Brett Baker, William Nell
-
Patent number: 7703086Abstract: An integrated circuit card includes a storage device to store one or more code files and one or more data files, and control logic. The control logic implements an ICC runtime environment that executes an applet in response to a command identifying both a code file and a data file received from a host system.Type: GrantFiled: April 29, 2004Date of Patent: April 20, 2010Assignee: Microsoft CorporationInventors: Gilad Odinak, David Milstein, Eric C. Perlin, Vinay Deo, Scott B. Guthery