Including Intermediate Code Patents (Class 717/146)
  • Patent number: 8037460
    Abstract: 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: Grant
    Filed: January 26, 2007
    Date of Patent: October 11, 2011
    Assignee: Oracle International Corporation
    Inventors: Robert H. Lee, David Unietis, Mark Jungerman
  • Patent number: 8024715
    Abstract: 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: Grant
    Filed: June 29, 2006
    Date of Patent: September 20, 2011
    Assignee: Intel Corporation
    Inventors: George A. Reis, Robert Cohn, Shubhendu S. Mukherjee
  • Patent number: 8015543
    Abstract: 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: Grant
    Filed: January 10, 2007
    Date of Patent: September 6, 2011
    Assignee: The MathWorks, Inc.
    Inventors: James E. Carrick, Peter Szpak, Robert O. Aberg, Andrew C. Bartlett, Xiaocang Lin, Hongbo Yang
  • Patent number: 8006237
    Abstract: 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: Grant
    Filed: March 27, 2007
    Date of Patent: August 23, 2011
    Assignee: International Business Machines Corporation
    Inventors: Jason Souloglou, Alasdair Rawsthorne
  • Publication number: 20110185345
    Abstract: 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: Application
    Filed: January 27, 2010
    Publication date: July 28, 2011
    Applicant: Microsoft Corporation
    Inventors: Nikhil Swamy, Juan Chen, Ravi Kumar Chugh
  • Publication number: 20110173596
    Abstract: 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: Application
    Filed: November 28, 2008
    Publication date: July 14, 2011
    Inventor: Martin Vorbach
  • Publication number: 20110173595
    Abstract: 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: Application
    Filed: January 8, 2010
    Publication date: July 14, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Niklas Gustafsson, Artur Laksberg
  • Publication number: 20110154307
    Abstract: 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: Application
    Filed: August 25, 2010
    Publication date: June 23, 2011
    Inventor: Eben Upton
  • Publication number: 20110131548
    Abstract: 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: Application
    Filed: November 29, 2010
    Publication date: June 2, 2011
    Applicant: Aptana Incorporated
    Inventors: Paul Colton, Kevin Edward Lindsey, Roland Ingomar Muschenetz, Robin Sean Debreuil
  • Publication number: 20110082984
    Abstract: 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: Application
    Filed: October 6, 2009
    Publication date: April 7, 2011
    Applicant: Telefonaktiebolaget LM Ericsson (publ)
    Inventor: Song Yuan
  • Patent number: 7921417
    Abstract: 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: Grant
    Filed: February 13, 2004
    Date of Patent: April 5, 2011
    Assignee: SAP AG
    Inventors: Eduard Bartsch, Joerg Lienhardt
  • Patent number: 7917900
    Abstract: 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: Grant
    Filed: March 30, 2007
    Date of Patent: March 29, 2011
    Assignee: Microsoft Corporation
    Inventors: Sriram K. Rajamani, Prakash Chandrasekharan, Christopher L. Conway, Joseph Joy
  • Publication number: 20110072419
    Abstract: 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: Application
    Filed: September 22, 2010
    Publication date: March 24, 2011
    Applicant: International Business Machines Corporation
    Inventors: Roch G. Archambault, Shimin Cui, Yaoqing Gao
  • Patent number: 7913239
    Abstract: 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: Grant
    Filed: March 8, 2005
    Date of Patent: March 22, 2011
    Assignee: International Business Machines Corporation
    Inventors: Christopher Mark Barton, Arie Tal
  • Publication number: 20110067013
    Abstract: 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: Application
    Filed: September 15, 2009
    Publication date: March 17, 2011
    Applicant: ADVANCED MICRO DEVICES, INC.
    Inventors: Gary FROST, Shrinivas JOSHI
  • Patent number: 7865885
    Abstract: 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: Grant
    Filed: September 27, 2006
    Date of Patent: January 4, 2011
    Assignee: Intel Corporation
    Inventors: Youfeng Wu, Cheng Wang, Ho-seop Kim
  • Patent number: 7844958
    Abstract: 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: Grant
    Filed: March 10, 2006
    Date of Patent: November 30, 2010
    Assignee: Aptana, Inc.
    Inventors: Paul Colton, Kevin Edward Lindsey, Roland Ingomar Muschenetz, Robin Sean Debreuil
  • Patent number: 7840951
    Abstract: 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: Grant
    Filed: August 22, 2003
    Date of Patent: November 23, 2010
    Assignee: Oracle America, Inc.
    Inventors: Gregory M. Wright, Mario I. Wolczko, Matthew L. Seidl
  • Publication number: 20100293534
    Abstract: 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: Application
    Filed: May 15, 2009
    Publication date: November 18, 2010
    Inventors: HENRIQUE ANDRADE, Bugra Gedik, Hua Yong Wang, Kun-Lung Wu
  • Patent number: 7836434
    Abstract: 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: Grant
    Filed: May 4, 2004
    Date of Patent: November 16, 2010
    Assignee: Oracle America, Inc.
    Inventor: Michael L. Boucher
  • Patent number: 7831965
    Abstract: 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: Grant
    Filed: August 12, 2004
    Date of Patent: November 9, 2010
    Assignee: Oracle America, Inc.
    Inventors: William F. Pittore, Antero K. P. Taivalsaari
  • Publication number: 20100275188
    Abstract: 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: Application
    Filed: April 23, 2009
    Publication date: October 28, 2010
    Applicant: Microsoft Corporation
    Inventors: Leon Dubinsky, John Lyon-Smith
  • Publication number: 20100275189
    Abstract: 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: Application
    Filed: February 24, 2010
    Publication date: October 28, 2010
    Inventors: Daniel E. COOKE, J. Nelson RUSHTON, Brad NEMANICH
  • Publication number: 20100269103
    Abstract: 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: Application
    Filed: October 13, 2009
    Publication date: October 21, 2010
    Applicant: National Tsing Hua University
    Inventors: Meng-Huan Wu, Cheng-Yang Fu, Peng-Chih Wang, Ren-Song Tsay
  • Patent number: 7814467
    Abstract: 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: Grant
    Filed: January 15, 2004
    Date of Patent: October 12, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Xinliang David Li, Mur Litharan Vijayasundaram, Dmitry Mikulin, Shin-Ming Liu
  • Patent number: 7814069
    Abstract: 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: Grant
    Filed: March 30, 2006
    Date of Patent: October 12, 2010
    Assignee: Oracle International Corporation
    Inventor: Jyotsna Bendapudi
  • Publication number: 20100251226
    Abstract: 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: Application
    Filed: January 11, 2010
    Publication date: September 30, 2010
    Applicant: KABUSHIKI KAISHA TOSHIBA
    Inventors: Makoto Sato, Katsuya Uchida, Hiroyuki Tsukahara
  • Patent number: 7805710
    Abstract: 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: Grant
    Filed: March 30, 2004
    Date of Patent: September 28, 2010
    Assignee: International Business Machines Corporation
    Inventor: Geraint North
  • Patent number: 7793277
    Abstract: 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: Grant
    Filed: September 7, 2001
    Date of Patent: September 7, 2010
    Assignee: International Business Machines Corporation
    Inventor: William Jon Schmidt
  • Patent number: 7788652
    Abstract: 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: Grant
    Filed: July 21, 2003
    Date of Patent: August 31, 2010
    Assignee: Microsoft Corporation
    Inventors: Mark Ronald Plesko, David Read Tarditi, Jr.
  • Patent number: 7788651
    Abstract: 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: Grant
    Filed: September 2, 2005
    Date of Patent: August 31, 2010
    Assignee: Microsoft Corporation
    Inventors: Henricus Johannes Maria Meijer, Brian C. Beckman, Paul A. Vick, Amanda Silver
  • Patent number: 7788653
    Abstract: 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: Grant
    Filed: March 2, 2004
    Date of Patent: August 31, 2010
    Assignee: Intel Corporation
    Inventors: Xiaohua Shi, Guei-Yuan Lueh, Gansha Wu
  • Publication number: 20100211940
    Abstract: 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: Application
    Filed: February 1, 2010
    Publication date: August 19, 2010
    Inventors: Steve Shih-wei Liao, Perry H. Wang, Hong Wang, Gerolf F. Hoflehner, Daniel M. Lavery, John P. Shen
  • Publication number: 20100199269
    Abstract: 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: Application
    Filed: October 8, 2008
    Publication date: August 5, 2010
    Applicant: PANASONIC CORPORATION
    Inventors: Dai Hattori, Tomoo Hamada
  • Patent number: 7770158
    Abstract: 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: Grant
    Filed: October 14, 2004
    Date of Patent: August 3, 2010
    Assignee: BEA Systems, Inc.
    Inventors: John Alexander Osborne, Jeffrey Scott Miller, Alexander Rothschild Aickin, Raja Mani, Adrian Peter McDermott, David Vydra
  • Publication number: 20100191930
    Abstract: 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: Application
    Filed: January 26, 2009
    Publication date: July 29, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: 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: 7761601
    Abstract: 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: Grant
    Filed: April 1, 2005
    Date of Patent: July 20, 2010
    Assignee: Microsoft Corporation
    Inventors: Steven J. Falkenburg, Ada Y. Chan, Bradley R. Pettit
  • Patent number: 7752608
    Abstract: 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: Grant
    Filed: August 12, 2005
    Date of Patent: July 6, 2010
    Assignee: The United States of America as represented by the Administrator of the National Aeronautics and Space Administration
    Inventors: Michael G. Hinchey, James L. Rash, John D. Erickson, Denis Gracinin, Christopher A. Rouff
  • Patent number: 7747877
    Abstract: 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: Grant
    Filed: February 2, 2009
    Date of Patent: June 29, 2010
    Assignee: International Business Machines Corporation
    Inventors: Hongxia Jin, Donald E. Leake, Jr., Jeffrey B. Lotspiech, Sigfredo I. Nin, Wilfred E. Plouffe
  • Publication number: 20100162202
    Abstract: 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: Application
    Filed: October 3, 2007
    Publication date: June 24, 2010
    Inventors: Yi Deng, S. Masoud Sadjadi, STeve Luis, Peter Clarke, Chi Zhang, Evangelos Christidis, Raju Rangaswami
  • Publication number: 20100153936
    Abstract: 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: Application
    Filed: December 15, 2008
    Publication date: June 17, 2010
    Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Eric Marshall Christopher
  • Publication number: 20100153934
    Abstract: 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: Application
    Filed: December 12, 2008
    Publication date: June 17, 2010
    Inventor: Peter Lachner
  • Publication number: 20100153935
    Abstract: 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: Application
    Filed: December 15, 2008
    Publication date: June 17, 2010
    Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Thomas John O'Brien
  • Publication number: 20100153929
    Abstract: 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: Application
    Filed: December 15, 2008
    Publication date: June 17, 2010
    Inventors: 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: 7739671
    Abstract: 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: Grant
    Filed: August 12, 2005
    Date of Patent: June 15, 2010
    Assignee: The United States of America as represented by the Administrator of the National Aeronautics and Space Administration
    Inventors: Michael G. Hinchey, James L. Rash, John D. Erickson, Denis Gracinin, Christopher A. Rouff
  • Patent number: 7738448
    Abstract: 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: Grant
    Filed: December 29, 2005
    Date of Patent: June 15, 2010
    Assignee: Telefonaktiebolaget LM Ericsson (publ)
    Inventor: Martin Hans Renschler
  • Publication number: 20100138815
    Abstract: 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: Application
    Filed: November 28, 2008
    Publication date: June 3, 2010
    Applicant: Red Hat, Inc.
    Inventor: James P. Schneider
  • Publication number: 20100131936
    Abstract: 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: Application
    Filed: November 26, 2008
    Publication date: May 27, 2010
    Inventor: David R. Cheriton
  • Patent number: 7725883
    Abstract: 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: Grant
    Filed: December 5, 2005
    Date of Patent: May 25, 2010
    Assignee: The MathWorks, Inc.
    Inventors: Charles G. Nylander, William M. McKeeman, Brett Baker, William Nell
  • Patent number: 7703086
    Abstract: 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: Grant
    Filed: April 29, 2004
    Date of Patent: April 20, 2010
    Assignee: Microsoft Corporation
    Inventors: Gilad Odinak, David Milstein, Eric C. Perlin, Vinay Deo, Scott B. Guthery