Abstract: A high speed program tracer providing compression using linear increment run length values, displacement values corresponding to discontinuities, and loop compression. A program count sequencer receives program count values from a processor, and outputs various program count values and signals to allow compression calculations to be made based upon linear increment run lengths, discontinuity detection, and detection of repeating instruction loops. Compression may be achieved using selected numbers of words to represent various compression values.
Abstract: Methods and systems consistent with the present invention provide an improved software development tool that allows a programmer to develop source code by receiving an indication to form a link, receiving an indication of a first of the plurality of elements, receiving an indication of a second of the plurality of elements, and adding new code to the first element to reflect the link to the second element.
Abstract: A system is presented for optimizing safe downcasting and similar programming idioms in an object-oriented programming language. The system operates by receiving a source program written in the object-oriented programming language. The system compiles this source program into an intermediate representation. Next, the system examines the intermediate representation to identify the use of a virtual function call to determine if an object of a given base class is a member of a given derived class. Such usage facilitates safe downcasting of the object from the given base class to the given derived class. If the intermediate representation uses the virtual function call in this manner, the system replaces the virtual function call with a comparison of a virtual function table pointer associated with the object to an address of a virtual function table associated with the given derived class. The compiler finishes compiling the intermediate representation into executable binary code.
Abstract: In a method for monitoring the flow of execution of a series of instructions of a computer program, a sequence of instructions are transmitted to the processor to execute the monitored program. These instructions are analyzed, and the result of the analysis are verified by referring to reference data recorded with the program. The reference data can include a value predetermined in such a way as to correspond to the result of the analysis produced during the monitoring process only if all the instructions have been actually analyzed during the program flow. The invention also concerns a device for monitoring the program execution, a program device, and a programming device operating according to the monitoring principles.
Type:
Grant
Filed:
January 24, 2000
Date of Patent:
January 23, 2007
Assignee:
Gemplus
Inventors:
David Naccache, Ludovic Rousseau, Pierre Girard
Abstract: A compile-time data store that contains arbitrary data types is accessed via methods that ensure type safety. A type construct (e.g., a C++ template) is instantiated at compile time and generates a data store that contains arbitrarily-typed data objects, such as integers, characters, pointers and so forth. The construct includes a Put method to put any element (object) of a listed type (e.g., of a typelist) in the data store, and a Get method to retrieve the element from the data store. The Put method maintains a type index in association with each stored in the data store. The Get method validates that the type of object that was requested in the call to the Get method matches the object type that was stored in the Put method. When run, the Get method returns the element data upon a type match, otherwise the Get method generates an exception.
Abstract: A computer-readable medium causes a computer to operate as a server for managing the development of software by a software development team. Stored on this computer readable medium is a computer program which includes an object module and a process execution module. The object module performs operations on a linked object structure that represents a software development project. The process execution module has one interface that interacts with the object module and has another interface that interacts over a communication network with personal computers of the team members. By this interaction, the phases of each project are started in a non-fixed, non-predictable sequence by—1) sensing when all the tasks, that are represented by an entry set of CRITERIALIST_ITEM objects, are completed, and 2) sending a notice to begin the phase of the project which is related to the one entry set.
Abstract: A device for modeling an integrated enterprise includes a first tool for constructing a model of the integrated enterprise and a second tool for analyzing inter-application call sets contained in the constructed model. The second tool analyzes a selected inter-application call set by constructing a data attribute matrix having a row for each data attribute contained in at least one of the inter-application calls and a column for each one of the inter-application calls. The data attribute matrix is then marked to indicate which ones of the data attributes are contained in which ones of the selected inter-application calls. The constructed data attribute matrix may then be analyzed to identify improper association of data attributes with calls.
Type:
Grant
Filed:
November 2, 2002
Date of Patent:
January 2, 2007
Assignee:
Sprint Communications Company L.P.
Inventors:
Lavanya Srinivasan, Nalledath Palat Vinodkrishnan, Thomas C. Gifford
Abstract: A system and method for determining a structure within a software kernel using an offset and an element is disclosed. The software kernel is received from a third party for debugging operations. Given one or more element and offset pairs, data extracted from the software kernel is searched to produce a list of possible structures to provide additional information during the debugging operations. The data is extracted into tables with symbol table information. The symbol table information is searched using an offset and an element. Structures are identified using this information and, optionally, a structure size may be provided to further limit the possible structures.
Abstract: A method of obfuscating an object-oriented program is provided. A program is provided that is defined in terms of a plurality of classes. Each of the classes has at least one of a field and a method. At least two of the plurality of classes are combined into a combined class. When the at least two classes are combined, at least one field from at least one of the two classes is included in the combined class, and/or at least one method from at least one of the two classes is included in the combined class. After the at least two classes are combined, the program is transmitted.
Type:
Grant
Filed:
November 25, 2002
Date of Patent:
December 12, 2006
Assignee:
Matsushita Electric industrial Co., Ltd.
Inventors:
Gleb Naumovich, Ezgi Yalcin, Nasir D. Memon, Hong Heather Yu, Mikhail Sosonkin
Abstract: A system and method for facilitating cross-process access into a managed code process is useful in an embodiment of the invention for debugging managed code without perturbing the process being accessed or requiring the code under test to be running during debugging. A compiler according to an embodiment of the invention is used to produce mirror code wherein in-process pointers have been replaced with cross-process pointers in order to mirror the address space of the process under test to the address space of the mirror code process. In a further embodiment, the mirror code process is modified not only to allow but also to optimize the cross-process access.
Type:
Grant
Filed:
November 3, 2003
Date of Patent:
December 12, 2006
Assignee:
Microsoft Corporation
Inventors:
Andrew L. Bliss, Vance Palmer Morrison, Sean Edwin Trowbridge
Abstract: An architecture for developing a distributed information system comprises a service definition tool for generating service protocols as a service definition. Each service protocol includes a plurality of messages. The messages include incoming messages and outgoing messages. Each message carries a plurality of data fields. A component development tool generates a first and a second plurality of components that implement and consume services. Each component in the first plurality of components represents a physical entity in the distributed information system. Each component in the second plurality of components represents a logical entity in the distributed information system. A system development tool generates a plurality of component instances based on the first and the second plurality of components. An engine software program runs on each of a plurality of networked nodes.
Abstract: An application infa operating system (AIOS) is provided. The AIOS provides an operating platform for integrating, embedding, managing and controlling an application program, wherein a main function thereof is to integrate different application programs which are developed from different information companies and different program designers via different developing languages and tools (e.g., C, C++, database, or Java, etc.) for mutually conversing and swapping data at different space-times through the integration of the present invention, so as to benefit an update, an upgrade and an integration of the application programs, shorten a developing time of integrating a new and a old systems, and save a cost of developing a system for improving a re-use rate of the application programs.
Abstract: A system and methods are provided for inserting probe points into an executing program, and measuring the time spent traversing code paths from one probe point to any other probe point or some other performance metric (e.g., instructions executed, cache misses, memory addresses accessed). One method is implemented by inserting N probes. Each probe has a corresponding function configured to: retrieve the identifier and timestamp of the previous probe executed, calculate the time spent traversing the path from the previous probe to the current probe, and update a matrix of N×N elements, wherein each element corresponds to a path from one probe to another probe. After completion of the program, this matrix is useful for identifying code paths that are bottlenecks and hence candidates for optimization.
Abstract: A development architecture framework manages information that supports a project being carried out by a development architecture framework. Security requirements are defined and the framework is audited to ensure requirements are met. Quality is ensured by obtaining and statistically analyzing measurements relating to predetermined criterion Personnel are trained to improve the quality of the project. The project is managed by generating a plan, scheduling a timeline, tracking the plan, and reporting information uncovered during tracking. A development environment is also managed. Component delivery is coordinated and delivery problems are rectified during the delivery.
Abstract: An improved method to set up automatically a computer system configuration in association with a system upgrade that involves the installation of a set of operative elements necessary for the reliable operation of the same. The correct, operative combination of hardware, system and application software components is accomplished by inter-component dependency checking and improved conflict resolving procedures in association with specific dependency rules tables and an ordered database that stores definitions of components and relationships thereof.
Abstract: In response to programmer input of a trigger token, a program editor creates a pair of boundary tokens encapsulating an embedded lexical context and positions an insertion point within the embedded lexical context. The operations on the embedded lexical context are preferably performed using an embeddable sub-editor specialized to the task at hand. Since boundary tokens are generated in pairs, stability of lexical boundaries is enforced. Accordingly, stable implementations of certain desirable behaviors, including language-oriented advanced program typography that is robust to user edits, are facilitated using the invented techniques.
Type:
Grant
Filed:
August 27, 2001
Date of Patent:
October 24, 2006
Assignee:
Sun Microsystems, Inc.
Inventors:
Michael L. Van De Vanter, Marat Boshernitsan
Abstract: The XAM architecture that specifies a software program instrumentation and data collection method and system is disclosed. The XAM architecture includes definition of a measurement type hierarchy, the definition of an XAM API that adapts an application program to a local XAM library, and a message protocol, based on XML, through which the XAM library is configured by, and sends collected data to, an XAM services process. Predefined measurement types include primitive measurement types and aggregate measurement types, the latter allowing for significant decrease in data transmission overheads between the XAM library and the XAM services process because of data filtering and processing by XAM library routines.
Type:
Grant
Filed:
June 12, 2001
Date of Patent:
September 19, 2006
Assignee:
Hewlett-Packard Development Company, L.P.
Abstract: An assembler for assembling code is disclosed. The assembly language code includes a plurality of code blocks associated with resource-needs, such as variables, and resources, such as registers, I/O locations, memory locations, and coprocessors. A technology is provided that allows the global assignment of resource-needs to resources such that run time resource conflicts are avoided. A grammar for allowing resources to be defined and managed, a grammar for allowing the resource-needs to be defined and managed, a grammar providing definition of code blocks, and a grammar for associating resources with code blocks are also provided.
Type:
Grant
Filed:
January 10, 2003
Date of Patent:
September 19, 2006
Assignee:
International Business Machines Corporation
Abstract: A process control system is configured via manipulation of objects that model system components, e.g., sensors, blocks, control processors, historians, workstations, etc. Individual objects include parameters that characterize the underlying components and/or the behavior of the objects themselves. These parameters are derived from the “parents,” from which the objects are created. Derived characteristics need not be defined explicitly but, rather, are defined implicitly or by reference. These derived characteristics may be overridden for an individual object and, thereby, its progeny. Although objects have class-like characteristics (i.e., insofar as they are definitional in nature), they can be created at configuration time, without the need for recompilation.
Type:
Grant
Filed:
November 23, 1999
Date of Patent:
August 22, 2006
Assignee:
Invensys Systems, Inc.
Inventors:
Steven Dardinski, Keith Eldridge, Robert Hall, Mark Johnson, Brian McKay, Paul Meskonis, Scott Volk
Abstract: An intelligent help system which processes information specific to a user and a system state is described. The system incorporates a monitoring device to determine which events to store as data in an historical queue. These data, as well as non-historical data (e.g., system state), are stored in a knowledge base. An inference engine tests rules against the knowledge base data, thereby providing a help tag. A display engine links the help tag with an appropriate solution tag to provide help text for display.
Type:
Grant
Filed:
August 17, 1999
Date of Patent:
September 19, 2006
Assignee:
Samsung Electronics Co., Ltd.
Inventors:
Charles D. Lanier, Richard J. Wolf, Leticia Villegas Butner