Abstract: 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.
Abstract: A method, system and apparatus for providing a web application generator to generate the basis for a complete web application source code. Based on graphical user interface input files provided by graphic designers, the web application generator generates application framework code, an event handler skeleton and business logic foundation code. Web developers then prepare additional source code using an object-oriented programming language based on the event handler skeleton and business logic foundation code to create web application business logic objects and event handler methods. Ultimately the graphical user interface input files prepared by the graphic designers and web application source code prepared by the web developers are dynamically bound at runtime.
Abstract: Methods for constructing an Any-to-Any data machine (consisting of Any-to-Any data components and their environmental requirements) and an Any-to-Any code machine (consisting of Any-to-Any code components and their environmental requirements) and relating them together so that they harmoniously interact and so that the data Any-to-Any machine controls and is also acted upon by the code Any-to-Any machine so as to produce an Any-to-Any system that transforms data in a manner that is useful and which is analogous to the harmonious interaction of the Any-Any binary code and Any-to-Any transistor systems, and which handles data and transforms it in a sufficiently similar manner to the manner in which the human handles and transforms data that the human finds it easy and intuitive to operate, all supported by methods that enable data to be stored in a single logical grid structure that can accept and correctly relate, transmit and receive any data, together examples of methods to derive benefits from these inventi
Abstract: A system and method is described for generating a test bed that is useful in developing, testing and/or supporting the use of software, such as software used for managing IT processes and/or monitoring equipment in an enterprise network. The system and method operates by processing a manifest to generate an instance space model of a computer network, wherein the manifest refers to a type space model of a computer network and includes an encoding that conveys parameters that are used to inflate the type space model of the computer network into the instance space model of the computer network. The type space model may comprise an object-relational directed graph that describes a plurality of potential directed graph instances and the instance space model may comprise one of the plurality of potential directed graph instances.
Type:
Grant
Filed:
March 6, 2009
Date of Patent:
March 5, 2013
Assignee:
Microsoft Corporation
Inventors:
Raymond L. Stone, Christopher A. Cubley, Ashvin J. Sanghvi, Albert Greenberg
Abstract: 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.
Abstract: 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.
Abstract: 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.
Type:
Grant
Filed:
January 15, 2010
Date of Patent:
February 26, 2013
Assignee:
Oracle America, Inc. formerly Sun Microsystems, Inc.
Inventors:
Alexander R. Buckley, John Rose, Joseph D. Darcy
Abstract: A method for executing a computer program involving obtaining a statement of the source code, where the statement comprises a method call, and where the source code is composed in a statically-typed programming language. The method also involves, upon entry into a loop included in the computer program: incrementing an entry counter by one; and, for each iteration of the loop, incrementing an iteration counter by one, incrementing a local counter by one to obtain an incremented value of the local counter, incrementing a summation variable by the incremented value of the local counter, and executing the iteration of the loop.
Abstract: A back-end service adaptation system provides access to normalized data in a data repository for a consumer runtime environment sending a query request for denormalized data. The back-end service adaptation system can include a data access service layer, a parser layer, and a back-end service adaptation runtime layer. The consumer runtime can use a service adaptation definition language (SADL), and the parser and data access service can be configured to convert and translate the SADL request for the back-end service adaptation runtime layer.
Type:
Grant
Filed:
December 28, 2009
Date of Patent:
February 26, 2013
Assignee:
SAP AG
Inventors:
Frank Brunswig, Thomas Fiedler, Oswald Gschnitzer, Marcel Hermanns, Markus Viol, Jens Weiler, Gerhard Wenzel
Abstract: Traditional feedback-directed optimization (FDO) is not widely used due to the significant computational overhead involved in using instrumented binaries. The described embodiments provide methods that eliminate the need for instrumented binaries by permitting the conversion of hardware-event sampling information into edge frequencies usable by FDO compilers. Some advantages include: the ability to collect feedback data on production systems; the ability to perform FDO on the OS kernel; and the ability to avoid disrupting timing paths from instrumented binaries.
Type:
Grant
Filed:
December 24, 2008
Date of Patent:
February 26, 2013
Assignee:
Google Inc.
Inventors:
Robert Hundt, Vinodha Ramasamy, Dehao Chen
Abstract: 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 modu
Type:
Application
Filed:
August 16, 2011
Publication date:
February 21, 2013
Applicant:
INTERNATIONAL BUSINESS MACHINES CORPORATION
Inventors:
Cary L. Bates, Nicholas P. Johnson, Justin K. King
Abstract: In many messaging systems, message selection filtering involves a significant processing overhead. This includes the parsing and preparing of the message selection filters in readiness for evaluation, as well as the evaluation itself. In systems which involve parsing and prepare processing for expressions that include repeated patterns (such as in many JMS environments), a template-based shortcutting of the conventional processing improves performance. A stored parsing template is used to parse an input sequence such as a received data processing instruction. The parse is used to identify expressions of a first type that can then be implicitly optimized by using a stored evaluation template that is associated with expressions of that type.
Type:
Grant
Filed:
February 7, 2012
Date of Patent:
February 19, 2013
Assignee:
International Business Machines Corporation
Abstract: Modular and/or demand-driven string analysis of a computer program is performed. Each method of the program is encoded into monadic second-order logic (M2L) to yield a set of predicate declarations and a set of constraints. The two sets for each method are composed to yield a union set of predicate declarations and a union set of constraints for the program. The union set of constraints includes a particular set of constraints corresponding to call relationships among the methods. An M2L formula including a free variable corresponding to a program variable is added to the union set of constraints. The two union sets are processed to verify a satisfiability of the constraints in relation to an illegal pattern. Where the constraints are satisfiable, the program can generate a string containing the illegal pattern. Where the constraints are not satisfiable, the program never generates a string containing the illegal pattern.
Type:
Grant
Filed:
October 19, 2010
Date of Patent:
February 19, 2013
Assignee:
International Business Machines Corporation
Inventors:
Takaaki Tateishi, Omer Tripp, Marco Pistoia
Abstract: A method, system and module for automatically converting a call flow into a state-based representation are disclosed. The method comprises walking a call flow and converting each page of the call flow into a rule of a higher level representation of the call flow, augmenting the higher level representation with terminal symbols representing state variable assignments and comparisons associated with decision and computation shapes in the call flow and converting the higher level representation into a state-based representation.
Type:
Grant
Filed:
May 3, 2011
Date of Patent:
February 19, 2013
Assignee:
AT&T Intellectual Property II, L.P.
Inventors:
Cecilia M. Castillo, Theodore J. Roycraft, James M. Wilson
Abstract: Methods and apparatuses that collect code coverage information for selected code locations when executing executable code are described. Source code in one or more files may be annotated at the selected code locations. The executable code may be compiled from the annotated source code using standard compilers. The code coverage information may be collected into a run time data store accessible by other applications. In response to receiving a code coverage request, the code coverage information can be retrieved from the data store to compare with annotations identified from the source code. A code coverage report can be generated to indicate whether one or more of the selected code locations are not covered when executing the executable code.
Abstract: In an electronic device and method of protecting software, a software program of the electronic device is invoked. The media access control (MAC) address of the electronic device and a serial number of a hard disk drive that stores the software program in the electronic device are searched. The MAC address and the serial number are compared with MAC addresses and serial numbers included in the software program, to determinate whether it is licensed to run the software program in the electronic device. Usage logs of the software program are further obtained to determine whether running of the software program in the electronic device is expired.
Abstract: An application development system for developing an application with application components is described. The system application development includes a modeling tool. The modeling tool imports the application components in a comparable component definition format, and defines a data relation between data, screens, and operations embodied in the application components in an application model. The application model has a static structural characteristic, a dynamic behavioral characteristic and an implementation characteristic. The static structural characteristic defines parts of the application. The dynamic behavioral characteristic defines responsiveness of the application to events or actions, and the implementation characteristic describes elements required for deploying the application. The modeling tool updates the cross-component mapping.
Abstract: 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.
Type:
Application
Filed:
September 14, 2012
Publication date:
February 7, 2013
Applicant:
INTERNATIONAL BUSINESS MACHINES CORPORATION
Inventors:
JOSHUA S. AUERBACH, DAVID F. BACON, PERRY S. CHENG, RODRIC RABBAH
Abstract: Disclosed herein are systems, methods, and non-transitory computer-readable storage media for obfuscating branches in computer code. A compiler or a post-compilation tool can obfuscate branches by receiving source code, and compiling the source code to yield computer-executable code. The compiler identifies branches in the computer-executable code, and determines a return address and a destination value for each branch. Then, based on the return address and the destination value for each branch, the compiler constructs a binary tree with nodes and leaf nodes, each node storing a balanced value, and each leaf node storing a destination value. The non-leaf nodes are arranged such that searching the binary tree by return address leads to a corresponding destination value. Then the compiler inserts the binary tree in the computer-executable code and replaces each branch with instructions in the computer-executable code for performing a branching operation based on the binary tree.
Type:
Application
Filed:
August 1, 2011
Publication date:
February 7, 2013
Applicant:
Apple Inc.
Inventors:
Gideon M. Myles, Julien Lerouge, Jon McLachlan, Ganna Zaks, Augustin J. Farrugia
Abstract: 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.
Type:
Application
Filed:
August 2, 2011
Publication date:
February 7, 2013
Applicant:
INTERNATIONAL BUSINESS MACHINES CORPORATION
Inventors:
JOSHUA S. AUERBACH, DAVID F. BACON, PERRY S. CHENG, RODRIC RABBAH
Abstract: The described systems and methods are directed at configuring a server based on a selected role. An installation application is configured to install core components in a server where these core components enable the server to perform the basic functions of a network computing device. A role management application is configured to enable a system administrator to select a role for the server and to automatically determine software components associated with the selected role. The role management application is then configured to build the software components and install the components on the server. The role management application is further configured to configure the components for the selected role. The automated installation process performed by the role management application enables a server to be efficiently configured for a particular role without installing other unnecessary components unrelated to the role.
Type:
Grant
Filed:
July 24, 2010
Date of Patent:
February 5, 2013
Assignee:
Microsoft Corporation
Inventors:
Andrew T. Mason, William A. Laing, John Macintyre, Richard A. Pletcher
Abstract: A method for assembling processing graphs in an information processing system, includes: performing, in an offline manner, translating a plurality of component descriptions into a planning language and performing reasoning on the plurality of component descriptions during the translation; and performing, in an online manner, receiving a processing request that specifies a desired processing outcome; translating the processing request into a planning goal; and assembling a plurality of processing graphs, each of the processing graphs including a plurality of the translated and reasoned components that satisfy the desired processing outcome.
Type:
Grant
Filed:
April 2, 2007
Date of Patent:
February 5, 2013
Assignee:
International Business Machines Corporation
Inventors:
Mark D. Feblowitz, Zhen Liu, Anand Ranganathan, Anton V. Riabov
Abstract: A mechanism is provided for making information about the virtual disk image file and/or its associated virtual image configuration file more readily available to a user. The virtual disk image file format is expanded to include fields in which information about the data in the file can be stored. Extensible information on file content, compatible HW configurations, compatible host OSes, timeout status, DRM status, patch state, and network topology, tag data for indexing, configuration files, saved state files, operation history data, and the like is stored in a location within a virtual disk image file that can be read without executing the virtual machine. This information can then be used to search the contents of the virtual disk image, to enforce usage policies, to provide extensibility for vendors, and the like.
Abstract: A mechanism is provided for optimizing scalar code executed on a single instruction multiple data (SIMD) engine by aligning the slots of SIMD registers. With the mechanism, a compiler is provided that parses source code and, for each statement in the program, generates an expression tree. The compiler inspects all storage inputs to scalar operations in the expression tree to determine their alignment in the SIMD registers. This alignment is propagated up the expression tree from the leaves. When the alignments of two operands in the expression tree are the same, the resulting alignment is the shared value. When the alignments of two operands in the expression tree are different, one operand is shifted. For shifted operands, a shift operation is inserted in the expression tree. The executable code is then generated for the expression tree and shifts are inserted where indicated.
Type:
Grant
Filed:
May 27, 2008
Date of Patent:
February 5, 2013
Assignee:
International Business Machines Corporation
Inventors:
Alexandre E. Eichenberger, John Kevin Patrick O'Brien
Abstract: Methods and apparatus for analyzing the interface usage and requirements within software applications. In one embodiment, the interfaces comprise application programming interfaces (APIs) used with Java-based software, and the apparatus comprises a computer program that analyzes file paths (or classpaths) containing one or more files comprising Java bytecode. The names of the classes are extracted and placed into a class dictionary. The different classes listed in the dictionaries are broken down into their individual methods. Each method is then dissembled and analyzed for method or field invocations on other classes found in the dictionary. Methods called are added to a “used class” report. The used class report preferably contains the name of the class, method and the instruction information.
Abstract: A method in a software development environment for developing product runtime code having at least two code components written in different runtime languages, the method comprising: providing a programming interface for development of the code components in a single development language: translating developed code components in the development language back to the respective runtime language for execution.
Type:
Grant
Filed:
May 28, 2010
Date of Patent:
January 29, 2013
Assignee:
International Business Machines Corporation
Abstract: Presently described is a decompilation method of operation and system for parsing executable code, identifying and recursively modeling data flows, identifying and recursively modeling control flow, and iteratively refining these models to provide a complete model at the nanocode level. The nanocode decompiler may be used to determine if flaws, security vulnerabilities, or general quality issues exist in the code. The nanocode decompiler outputs in a standardized, human-readable intermediate representation (IR) designed for automated or scripted analysis and reporting. Reports may take the form of a computer annotated and/or partially human annotated nanocode listing in the above-described IR. Annotations may include plain English statements regarding flaws and pointers to badly constructed data structures, unchecked buffers, malicious embedded code or “trap doors,” and the like. Annotations may be generated through a scripted analysis process or by means of an expert-enhanced, quasi-autonomous system.
Abstract: 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.
Abstract: Using language add-ins with one or more static extensibility points of an application host. The method includes searching for user code in a user code store. Some user code is found in the user code store. A determination is made as to the language of the user code from among a plurality of predefined languages. The user code is provided to a language provider for the determined language. A function invocation is received from an application host. The function invocation is matched to at least a portion of the user code. The at least a portion of user code corresponding to the function invocation is executed via the language provider.
Type:
Grant
Filed:
June 15, 2010
Date of Patent:
January 29, 2013
Assignee:
Microsoft Corporation
Inventors:
Curt Oliver Hagenlocher, Anthony Moore, John Lam
Abstract: 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.
Type:
Grant
Filed:
October 26, 2007
Date of Patent:
January 29, 2013
Assignee:
QUALCOMM Incorporated
Inventors:
Lingjun Chen, Guofang Jiao, Yun Du, Chun Yu
Abstract: A method of developing an application for deployment on a computing system. The computing system includes a processor and a reconfigurable logic in communication with the processor for configuration thereby. The method includes programming the processor with hardware-neutral instructions in a high-level software programming language. The instructions are representative of an application configured to execute at least partially on the reconfigurable logic. The method further includes instantiating elements from a library of elements compatible with the high-level programming language; and constructing programmatically a generic data graph representative of the application to be mapped at least partially onto the reconfigurable logic. The generic data graph is expressed as streams of records flowing between operators. A computing system is also disclosed.
Abstract: In an embodiment, a code generator receives input code having a plurality of functional elements, such as blocks, nodes, statements, commands, etc. The input code processes a data set, such as an image file. The code generator further receives one or more criteria for the generated code. The functional elements of the input code are provided with one or more parameters regarding the block sizes that the respective functional elements can process, such as an available block size and a preferred block size. The code generator queries the functional elements of the input code to obtain their available and preferred block sizes, and builds an intermediate representation (IR) of the input code. The code generator re-organizes and modifies the IR so that it achieves the one or more criteria. Output code that meets the one or more criteria is generated from the reorganized and modified IR.
Type:
Grant
Filed:
August 20, 2007
Date of Patent:
January 22, 2013
Assignee:
The MathWorks, Inc.
Inventors:
Donald P. Orofino, II, Witold R. Jachimczyk
Abstract: A set of helper thread binaries is created to retrieve data used by a set of main thread binaries. If executing a portion of the set of helper thread binaries results in the retrieval of data needed by the set of main thread binaries, then that retrieved data is utilized by the set of main thread binaries.
Type:
Grant
Filed:
February 1, 2008
Date of Patent:
January 22, 2013
Assignee:
International Business Machines Corporation
Inventors:
Ravi K. Arimilli, Juan C. Rubio, Balaram Sinharoy
Abstract: 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.
Abstract: Disclosed are a method, system, and computer program product for implementing external domain independent modeling framework in a system design. In some embodiments, the method or system comprises importing an external model in an external format into the framework while substantially preserving some or all of the interpretation of the external model, determining a internal common representation for the external model within the framework, and displaying or storing the internal common representation in a tangible computer readable medium. In some embodiments, the method or system further comprises validating the accuracy of the internal common representation, determining an analysis or transformation capability for the framework, or outputting a first output model in a second external format. In various embodiments, the method or system requires no external tool compliance.
Abstract: A conflict resolution mechanism collects statistical data regarding how much time certain common actions or waits take. For example, the mechanism may collect statistics on disk I/O for each disk device. Statistics may include the average access time, for example. Such statistics may be collected over a sliding window of time. With the statistical data that the mechanism collects, the mechanism can make a more intelligent judgment regarding whether a process is in a “hanging” condition. For example, if the average I/O to a disk is 10 seconds for the past hour, and if a process is doing disk I/O to that disk for 5 seconds, then the mechanism will not yet determine that the process is hanging. In order to determine whether the process is hanging, the mechanism looks at the average time and the longest time for the particular actions that the process is performing.
Abstract: A method for preventing the unauthorized modification of a software or unauthorized modification of runtime data. According to this method, a converter, which is capable of converting the software into a generalized machine code is provided. The converter is designed such that it cannot be reverse engineered, by using a conversion process that causes data loss. An interpreter, which the knowledge of its process method is kept restricted, is also provided. The interpreter interprets the general machine code into a specific machine code, while reconstructing the lost data during the interpretation process.
Abstract: A customized distribution, e.g. of Linux software, is built using only packages that satisfy a customer's individual requirements. The packages are verified, at build time, to be interoperable at run-time. Also, the distribution is verified to ensure all package dependencies are included. In cases where no package already exists that meets a user requirements, a new package can be created for this purpose. The packages in the distribution customized for the user can be tracked, so that as updates to the packages are released, the customer can be notified about those updates (without being notified about packages not in the customer's customized distribution). Finally, once the distribution has been built for the user, it can then be offered as a general-purpose distribution for future customers.
Type:
Grant
Filed:
May 19, 2005
Date of Patent:
January 8, 2013
Assignee:
Novell, Inc.
Inventors:
Scott A. Isaacson, Eric W. B. Anderson, Robert Wipfel
Abstract: 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.
Abstract: A method for augmenting a compiled software routine in execution, the compiled software routine being instrumented to generate an event at an augmentation point defined therein, the method including receiving the event at a second software routine, the second software routine including software instructions for augmenting the compiled software routine.
Type:
Grant
Filed:
September 17, 2008
Date of Patent:
January 1, 2013
Assignee:
International Business Machines Corporation
Inventors:
Paul Kettley, Ian J. Mitchell, Stephen J. Wood
Abstract: 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.
Type:
Grant
Filed:
August 17, 2007
Date of Patent:
January 1, 2013
Assignee:
International Business Machines Corporation
Inventors:
Ramachandra N. Pai, Gerrit Huizenga, Eric B. Munson
Abstract: An “Automated, Static Safety Verifier” uses typed assembly language (TAL) and Hoare logic to achieve highly automated, static verification of type and memory safety of an operating system (OS). Various techniques and tools mechanically verify the safety of every assembly language instruction in the OS, run-time system, drivers, and applications, except the boot loader (which can be separately verified). The OS includes a “Nucleus” for accessing hardware and memory, a kernel that builds services running on the Nucleus, and applications that run on top of the kernel. The Nucleus, written in verified assembly language, implements allocation, garbage collection, multiple stacks, interrupt handling, and device access. The kernel, written in C# and compiled to TAL, builds higher-level services, such as preemptive threads, on top of the Nucleus. A Hoare-style verifier with automated theorem prover verifies safety and correctness of the Nucleus. A TAL checker verifies safety of the kernel and applications.
Abstract: A system for developing rich internet applications (RIAs) for remote computing devices that utilize a certifying player to invoke server-side web services through a single, secure, certifying intermediary server, includes an integrated development environment (IDE). The IDE includes a toolbox comprising graphical components configured to be dragged and dropped into UI states implementing the RIA process flow and a Web Service Description Language (WSDL) integrator for generating web service call for accessing web services for processing input from the UI states and generating an output result.
Type:
Grant
Filed:
August 27, 2008
Date of Patent:
December 25, 2012
Assignee:
Roam Data Inc
Inventors:
Michael Arner, John Rodley, Will W. Graylin
Abstract: Disclosed are a method and system for optimized, dynamic data-dependent program execution. The disclosed system comprises a statistics computer which computes statistics of the incoming data at the current time instant, where the said statistics include the probability distribution of the incoming data, the probability distribution over program modules induced by the incoming data, the probability distribution induced over program outputs by the incoming data, and the time-complexity of each program module for the incoming data, wherein the said statistics are computed on as a function of current and past data, and previously computed statistics; a plurality of alternative execution path orders designed prior to run-time by the use of an appropriate source code; a source code selector which selects one of the execution path orders as a function of the statistics computed by the statistics computer; a complexity measurement which measures the time-complexity of the currently selected execution path-order.
Type:
Grant
Filed:
May 16, 2007
Date of Patent:
December 25, 2012
Assignee:
International Business Machines Corporation
Inventors:
Dake He, Ashish Jagmohan, Jian Lou, Ligang Lu
Abstract: 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 expression matching and transformation programming framework (EMTF) conformant.
Type:
Grant
Filed:
March 13, 2008
Date of Patent:
December 25, 2012
Assignee:
International Business Machines Corporation
Abstract: A cross-platform toolbar and method thereof is disclosed. The toolbar includes a toolbar render object defining at least user interface elements of the cross-browser toolbar; a script file defining at least event handlers associated with the user interface elements; toolbar libraries including at least application programming interfaces (APIs) and script files supporting a specific web browser type; and a unique dynamic-link library (DLL) file assigned with the toolbar libraries and the script file.
Abstract: A JIT (Just-In-Time) compiler performs dual-mode code generation by determining whether an application has opted-in to SIMD (Single Instruction Multiple Data) code generation both at JIT-time and at runtime. The application may select the code generation mode by identifying whether it has opted-in to SIMD code generation. As a result, the underlying implementation guarantees application compatibility by allowing the application to select the code generation mode. Additionally, applications have the ability to select into different code generation modes during concurrent execution.
Abstract: A computer system for executing a computer program on parallel processors, the system having a compiler for identifying within a computer program concurrency markers that indicate that code between them can be executed in parallel and should be executed with delayed side-effects; and an execution system that is operable to execute the code identified by the concurrency markers to generate a queue of side-effects and after execution of that code is completed, sequentially execute the queue of side-effects.
Type:
Grant
Filed:
January 26, 2007
Date of Patent:
December 18, 2012
Assignee:
Codeplay Software Limited
Inventors:
Andrew Richards, Andrew Cook, Colin Riley
Abstract: 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.
Abstract: Within a data processing system, one or more register files are assigned to respective states of a graph for each of a plurality of clock cycles. A plurality of edges are inserted to form connections between the states of the graph, with respective weights being assigned to each of the edges. A best route through the graph is then determined based, at least in part, on the weights assigned to the edges.