Bytecode (e.g., Java) Patents (Class 717/118)
-
Patent number: 6751790Abstract: Alternative techniques for representation of Java string objects are needed. The techniques are especially useful for representing Java objects in Java computing environments and can thereby improve the performance of virtual machine, especially those with relatively limited resources (e.g., embedded systems with relatively smaller memory and computing power). The techniques can be implemented to create Java string objects as arrays of one-byte characters when it is appropriate. To create Java string objects an enhanced constructor can be provided in a Java library that is available to application programs (or programmers). In addition, enhanced Java methods can also be provided in the Java library.Type: GrantFiled: May 9, 2001Date of Patent: June 15, 2004Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Publication number: 20040111704Abstract: In an apparatus for extracting enterprise beans from a servlet source code, a servlet source code input device receives the servlet source code and a Java class. A Java class extraction device extracts Java classes from the servlet source code. A Java class clustering device groups the Java classes on the basis of interrelated classes. A session bean extraction device and an entity bean extraction device extract a session bean and an entity bean from the clustered classes, respectively. An enterprise bean relationship information extraction device extracts relationship information between enterprise beans from the extracted session bean and entity bean.Type: ApplicationFiled: August 8, 2003Publication date: June 10, 2004Inventors: Dong Kwan Kim, Jung Eun Cha, Chul Hong Kim, Hyo Taeg Jung, Moon Sub Song, Young Jong Yang
-
Publication number: 20040111701Abstract: A system and method for generating code for an Enterprise Java Bean comprising generating at least one output based on a description of at least one Enterprise Java Bean, wherein the description is attended by at least one annotation. A system and method for generating an annotated description of an Enterprise Java Bean based on at least one input, wherein the description can be used to generate the at least one input.Type: ApplicationFiled: December 5, 2002Publication date: June 10, 2004Inventor: Cedric Beust
-
Patent number: 6748570Abstract: A method and apparatus for a data processing system for accessing classes and methods in an object oriented system. Responsive to receiving a selected user input to a container, a view event is sent from a view controller to an application mediator. The view event identifies an action taken to generate the selected user input. A request is selectively generated based on the view event, wherein the request event includes a major code identifying a class name as a destination and a minor code identifying a method name a function to be invoked. The request event is sent to a transporter. The transporter acts as a router to send the request event to an appropriate destination object from a plurality of destination objects. Responsive to receiving the request event at the transporter, the request event is sent to a destination object within a plurality of destination objects based in the class name.Type: GrantFiled: October 28, 1999Date of Patent: June 8, 2004Assignee: International Business Machines CorporationInventors: Peter C. Bahrs, Raphael Poole Chancey, Barry Alan Feigenbaum, Manish Mahesh Modh, Sean Michael Sundberg, John Allen Hubert Woolfrey
-
Patent number: 6742109Abstract: One embodiment of the present invention provides a system for executing variable-size computer instructions, wherein a variable-size computer instruction includes an action component that specifies an operation to be performed and a data component of variable size that specifies data associated with the operation. The system operates by first retrieving the variable-size computer instruction from a computing device's memory. The system then decodes the variable-size computer instruction by separating the variable-size computer instruction into the action component and the data component. Next, the system stores the action component in a first store and the data component in a second store so they can be reused without repeated decoding. Finally, the system provides a first flow path for the action component and a second flow path for the data component.Type: GrantFiled: November 30, 2000Date of Patent: May 25, 2004Assignee: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Publication number: 20040098705Abstract: In upgrading a concentrated executable software code with an upgrade bytecode, list processing and indexing is used to create indexes of various code structures within the upgrade bytecode. Preferably, index listings for each of the code structures are created. The index listings contain listings of identifiers corresponding to the particular instances of the respective code structures in the upgrade bytecode and index references corresponding to each of the identifiers included in the listing. The upgrade bytecode is reduced in size by replacing identifiers representing code structures in the upgrade bytecode with the corresponding index references. Identifiers representing code structures not in the upgrade bytecode are replaced with corresponding references to indexes of the various code structures created when concentrating the original bytecode.Type: ApplicationFiled: November 20, 2002Publication date: May 20, 2004Inventors: Ravikumar Pisupati, Dongni Chen
-
Publication number: 20040098712Abstract: In dynamically upgrading an original concentrated executable computer software code with an upgrade bytecode, list processing and indexing is used to create indexes of various code structures within the upgrade bytecode. Preferably, index listings for each of the code structures are created. The index listings contain listings of identifiers corresponding to the particular instances of the respective code structures in the upgrade bytecode and index references corresponding to each of the identifiers included in the listing. The upgrade bytecode is reduced in size by replacing identifiers representing code structures in the upgrade bytecode with the corresponding index references. The concentrated upgrade bytecode is then integrated with the original concentrated bytecode, and the index listings formed during concentration of the upgrade bytecode are added to the virtual table as a record.Type: ApplicationFiled: November 20, 2002Publication date: May 20, 2004Inventors: Ravikumar Pisupati, Dongni Chen
-
Publication number: 20040093587Abstract: Disclosed are systems and methods for accessing objects executing in a platform dependent environment from objects executing in a platform independent environment. The systems and methods comprise a platform independent environment and a platform dependent environment that is accessible to the platform independent environment. The systems and methods additionally comprise a Java object that executes in the platform independent environment, wherein the Java object provides access to an ActiveX object that executes in the platform dependent environment via a native library interface of the ActiveX object.Type: ApplicationFiled: April 4, 2003Publication date: May 13, 2004Inventor: Charles Sesma
-
Publication number: 20040083467Abstract: A system and method are provided for efficiently executing intermediate code. The method comprises: receiving an application generated in an intermediate code such as JAVA, .NET, or VisualBasic; automatically compiling the intermediate code into native machine code; saving the native machine code in permanent memory; receiving a command to execute the application; accessing the native machine code from permanent memory; and, executing the application using the native machine code. Some aspects of the method further comprise: tagging the native machine code in permanent memory as a native machine code version of the application; and, in response to receiving a command to execute the application, checking the permanent memory for a native machine code version of the application. Then, accessing native machine code from permanent memory includes accessing native machine code if a native machine code version of the application is identified in permanent memory.Type: ApplicationFiled: October 29, 2002Publication date: April 29, 2004Applicant: Sharp Laboratories of America, Inc.Inventors: Mark G. Hanley, Ronald D. Braithwaite
-
Publication number: 20040078782Abstract: In a workload managed system comprising a plurality of server processes each capable of supporting a given program entity, such as an Enterprise JavaBeans™ specified stateful session bean, a stateful session bean instance is passivated, by writing it to a bean store, on completion of a unit of work. On next use the session bean is reactivated, by reading it from the bean store, in any one of the plurality of servers thereby allowing workload management for stateful session beans. A routing table is maintained, in non-volatile mass storage, that contains location information for units of work and stateful session bean instances, used to maintain unit of work-server affinity for the lifetime of the unit of work Stateful session beans instances are associated with ID keys that include a flag that is used to indicate whether or not the routing table contains location information for the bean instance.Type: ApplicationFiled: August 29, 2003Publication date: April 22, 2004Inventors: Andrew Simon Clement, Ann Eleanor Dalton, Barry Dickinson, Thomas James Freund, Jonathan Peter Hoare Lawrence, Ian James Mitchell, Glyn Normington, Steven Powell, R Anthony Storey
-
Publication number: 20040078788Abstract: Among developers and the software industry as an aggregate, there exists a pressing need for a utility which converts the interface definition specified in IDL format to an Extensible Markup Language (XML) format. Indeed, as an unstructured definition language, the Common Object Request Broker Architecture (CORBA) IDL is well suited and particularly effective for describing data structures and interfaces, though, the existing state of the art remains constrained and limited in extracting this information for further manipulation. The Metamodel for IDL to XML Parsing and Translation invention employs the IDL-to-Java (IDLJ) utility common to Sun's™ Java™ Development Kit. The Metamodel innovatively goes beyond the existing art and harnesses the IDL parsing ability of the IDLJ and generates an XML output for the parsed contents. For ease of XML manipulation, the Metamodel for IDL to XML Parsing and Translation utilizes the JDOM library to store and output the said XML.Type: ApplicationFiled: October 17, 2002Publication date: April 22, 2004Inventor: Candy Wai-See Wong
-
Publication number: 20040073896Abstract: A method for arithmetic overflow detection includes receiving a first instruction defined for a first processor having a first base, where the instruction comprises an operator and at least one operand having an operand type. The method also includes indicating whether the at least one operand has potential overflow based at least in part on the operator and the relationship between the operand type and a result type associated with the operator.Type: ApplicationFiled: November 12, 2003Publication date: April 15, 2004Applicant: Sun Microsystems, Inc., a Delaware CorporationInventors: Judith Schwabe, Zhiqun Chen
-
Publication number: 20040073895Abstract: A method for arithmetic expression optimization comprises validating at least one input stack associated with a first instruction operable on at least one operand of a first type and optimizing the first instruction to a second instruction operable on at least one operand of a second type that is smaller than the first type based at least in part on the relative size of the first type and the second type. The method also comprises matching the second type with an operand type of at least one operand in the at least one input stack associated with the second instruction. The matching comprises changing the type of instructions in a chain of instructions to equal the second type if the operand type is less than the second type. The chain is bounded by the second instruction and a third instruction that is the source of the at least one operand.Type: ApplicationFiled: November 12, 2003Publication date: April 15, 2004Applicant: Sun Microsystems, Inc., a Delaware CorporationInventors: Judith Schwabe, Zhiqun Chen
-
Publication number: 20040073897Abstract: A method for arithmetic expression optimization includes receiving an operator and at least one operand of a first instruction defined for a first processor having a first base. The method also includes converting the first instruction to a second instruction optimized for a second processor having a second base smaller than the first base when the at least one operand does not carry potential overflow beyond the second base or when the operator is insensitive to overflow. The method also includes converting instructions in an instruction chain to a wider base larger than the second base and smaller or equal to the first base when the at least one operand carries potential overflow beyond the second base and when the operator is sensitive to overflow. The chain is bounded by the second instruction and a third instruction that has been previously optimized and is the source of the potential overflow.Type: ApplicationFiled: November 12, 2003Publication date: April 15, 2004Applicant: Sun Microsystems, Inc., a Delaware CorporationInventor: Judith Schwabe
-
Publication number: 20040073894Abstract: A method for arithmetic expression optimization includes receiving a first instruction defined for a first processor having a first base, the first instruction including an operator and at least one operand, converting the first instruction to a second instruction optimized for a second processor having a second base when all operands do not carry potential overflow or when the operator is insensitive to overflow, the second base being smaller than the first base, and converting to a wider base a third instruction that is the source of the overflow when the at least one operand the potential for overflow and when the operator is sensitive to overflow.Type: ApplicationFiled: October 14, 2003Publication date: April 15, 2004Applicant: Sun Microsystems, Inc., a Delaware Corporation.Inventors: Zhigun Chen, Judith E. Schwabe
-
Patent number: 6711657Abstract: Methods of memory management in a run-time environment are described. A mechanism is provided for registering a routine to deinitialize or deallocate a large object at the end of a call (e.g. by setting it to null to unreference the object), which prevents the large object from being migrated into session memory, e.g. when live objects are migrated at the end of the call. This routine is called after the finalization of garbage collected objects that may use the large object. In a subsequent call, the large object is checked before use to determine if the object is deinitialized and re-initialized if the large object was deinitialized.Type: GrantFiled: February 25, 2000Date of Patent: March 23, 2004Assignee: Oracle Corp.Inventors: Harlan Sexton, Peter Benson, Jerry Schwarz
-
Patent number: 6711739Abstract: A mechanism for controlling threads in a Java application while avoiding the unsafe conditions inherent in the use of existing java.lang.Thread methods. In one embodiment, a first class is defined for handling threads in an application. The first class uses a target variable to indicate whether a thread should continue to run, or whether it should be stopped. This first class provides a start( ) method to set up the target variable, a stop( ) method to set the target variable to indicate that the thread should be stopped, and an abstract run( ) method. The functionality of the run( ) method is provided by one or more additional classes which extend the first class. The additional classes override the abstract run( ) method and define the tasks to be performed by threaded objects instantiated from these classes. When a thread needs to be stopped, the corresponding target variable is set to indicate that it should be stopped.Type: GrantFiled: November 8, 1999Date of Patent: March 23, 2004Assignee: Sun Microsystems, Inc.Inventor: Jeffrey M. Kutcher
-
Patent number: 6708177Abstract: A computer implemented method of and apparatus for printing values in a fixed number of column spaces using Java is described. A value desired to be formatted to a predetermined length string and an indexed lookup table having predetermined formatted string entries are used. An index based on the number of characters needed to represent the value is calculated and then used to locate a desired length formatted string entry in the lookup table. The desired length formatted string entry is then combined with a string representation of the value to form a predetermined length string.Type: GrantFiled: May 11, 2001Date of Patent: March 16, 2004Assignee: Hewlett-Packard Development Company, L.P.Inventor: Lawrence R. Schwarcz
-
Patent number: 6704926Abstract: A process in a data processing system for just-in-time compiling instructions. A set of non-specific data processing system instructions for a method are received. Addresses are placed into a set of functions. The set of non-specific data processing system instructions are processed using an intermediate code generation process to generate a set of instructions for execution using a particular mode of addressing.Type: GrantFiled: September 28, 2000Date of Patent: March 9, 2004Assignee: International Business Machines CorporationInventors: Geoffrey Owen Blandy, Andrew Johnson
-
Patent number: 6701517Abstract: A computer-implemented method for synchronizing JAVA with UML in a computer system executing a repository program. The method comprises the steps of determining if a previous revision of JAVA source exist, and if not; creating a new revision of the JAVA source. Next, the new revision is put in a “created” state and the new JAVA source is stored in the new revision. After this, the new revision is put in a “ready” state. A determination is next made if a previous revision of UML representation exist, and if not; a new revision of the UML representation is created. The new revision of the UML is then put in a “created” state; and, a UML representation of the JAVA source is created.Type: GrantFiled: September 28, 2000Date of Patent: March 2, 2004Assignee: Unisys CorporationInventors: Jeffrey Allen Moore, Joseph Peter Stefaniak, Lonnie Dale Sulgrove
-
Publication number: 20040040017Abstract: A method and apparatus for automatically determining optimum placement of privileged code enablement locations in existing code are provided. With the apparatus and method, a method invocation graph of existing code is generated and a static analysis of the method invocation graph is performed. The static analysis is used to analyze the permission propagation through chains of method invocations in the method invocation graph. When a method invocation in the method invocation graph satisfies one or more user definable criteria, the location in the method invocation graph is save to a file that identifies recommended insertion points for a call to the authorization enablement code. A default criteria for insertion of a call to authorization enablement is the boundary between application code and API code.Type: ApplicationFiled: August 22, 2002Publication date: February 26, 2004Applicant: International Business Machines CorporationInventors: Aaron Stephen Jay Kershenbaum, Lawrence Koved, Anthony Joseph Nadalin, Marco Pistoia
-
Patent number: 6694508Abstract: A computer implemented-method for synchronizing JAVA in a UML in a computer system executing a repository program. The method comprises the steps of determining if a previous revision of UML representation exist, and if not; creating a new revision thereof. Next, the new revision is put in a “created” state and stored in a new UML representation in the UML revision. The UML revision is then put in a “ready” state. After this, a determination is made as to whether or not there are more UML classes/interfaces; and if there are, a JAVA revision ID is extracted from the UML class/interface. Another determination is made as to whether or not a JAVA revision exist, and if not; a new revision of JAVA source is created and put into a “created” state. JAVA source is then generated from a UML representation and stored in the new revision and put into a “ready” state. All of the steps are repeated until there are no more UML classes/interfaces.Type: GrantFiled: September 28, 2000Date of Patent: February 17, 2004Assignee: Unisys CorporationInventors: Jeffrey Allen Moore, Joseph Peter Stefaniak, Lonnie Dale Sulgrove
-
Patent number: 6694507Abstract: A performance analyzer for object-oriented programming code distinguishes between an object which is substantively used within the creating method, and one which is merely created in the creating method and passed back to a calling method. In the preferred embodiment, a trace record is generated when the object is first accessed, to indicate the method which caused the operation, but no trace record is generated on subsequent object accesses. The performance analyzer may parse the trace to determine whether an object access trace record occurred in the creating method, or in some other method. Preferably, the program being analyzed is written in Java, and the performance analyzer is an instrumented Java Virtual Machine (JVM), i.e., a JVM to which trace and/or other performance analytic capabilities are added.Type: GrantFiled: December 15, 2000Date of Patent: February 17, 2004Assignee: International Business Machines CorporationInventors: Jeremy Alan Arnold, Eric Lawrence Barsness, John Matthew Santosuosso
-
Publication number: 20040031025Abstract: The invention concerns formal verification and optimization of a program, typically of a virtual machine, initially written in high-level language and implanted for example in a smart card. During verification, it is formally proved (E4) that checks on program states explored by security mechanisms guarantee that a specific forbidden state defined in a high-level language is unreachable by the program. The implantation of the program is then optimised in particular by eliminating execution paths leading to the forbidden state in the program, so as to transform it into a program in a low-level language providing the same security guarantees as the high-level language program.Type: ApplicationFiled: May 22, 2003Publication date: February 12, 2004Inventor: Pascal Brisset
-
Patent number: 6691302Abstract: Systems and methods for interfacing a service component written in any one of a variety of programming languages to a native operating system application program interface (API) are described. For example, in one embodiment, a generic interface between the Win32 API (application program interface) and Windows NT service components written in C, C++, and JAVA is provided. In one aspect, an interface module is configured to load a service component written in a non-native programming language. In another aspect, an interface module is configured to retrieve service component information from a configuration database.Type: GrantFiled: May 31, 2000Date of Patent: February 10, 2004Assignee: Siemens Information & Communications Networks, Inc.Inventors: Mark Skrzynski, Huy Ton
-
Publication number: 20040019880Abstract: In a data processing apparatus 2 having a first mode of operation in which Java bytecodes 46, 48 specify the processing operations and a second mode of operation in which other instructions specify the processing operations. In order to speed operation, the Java Local Variable 0, or another such variable, is stored within a register of a register bank 14 to be available for rapid access. This storage is in a write-through manner such that reads of the value will be directly serviced from the register R4 and writes to the data value will be made in both the register R4 and back in the original memory location for that data value as determined by the Java Virtual Machine.Type: ApplicationFiled: July 25, 2002Publication date: January 29, 2004Inventor: Andrew Christopher Rose
-
Publication number: 20040019887Abstract: Provided are a method, system, and program for loading program components into a runtime environment. A loader hierarchy is provided indicating an order in which loaders are invoked to load multiple types of program components. A plurality of first type loaders are used to load a first type of program components that are capable of being used by a second type of program components loaded by at least one second type loader. The second type loader is defined at a lower level in the loader hierarchy than the first type component loaders.Type: ApplicationFiled: July 25, 2002Publication date: January 29, 2004Applicant: Sun Microsystems, Inc.Inventors: Brandon E. Taylor, William H. Connor
-
Publication number: 20040015914Abstract: A method of loading an object-oriented computer program comprises translating the program into compiled code and holding that code, ready for execution, in an execution environment which does not necessarily also hold the original program code. In a preferred embodiment, the original class file is discarded from memory prior to execution of the program. The invention is particularly applicable to wireless communications networks consisting of a plurality of client devices, such as mobile phones, each of which typically has only a small amount of memory available. Using the present invention, the original class file is discarded after compilation, and does not need to be retained in the client device memories.Type: ApplicationFiled: March 8, 2002Publication date: January 22, 2004Inventor: Timothy Renouf
-
Publication number: 20040015859Abstract: An integration component such as an application integration engine can be bundled as a single, self-contained J2EE Enterprise archive (EAR) file. The bundling of the component into an EAR file enables the component to be deployed to any valid system domain that is running and available. A recycling of the server then may be necessary only if a Java archive file is added to the classpath for non-system domains.Type: ApplicationFiled: March 27, 2003Publication date: January 22, 2004Inventors: Timothy Potter, Mitch Upton, Christa Golding, Rick DeGrande
-
Publication number: 20040015862Abstract: The present invention provides a method and apparatus for automatic accessibility assessment. One embodiment of the present invention automatically executes and tests the accessibility of a computer program. This embodiment analyzes the executing computer program to determine whether enough information is presented for assistive technologies to work properly with the computer program. Another embodiment manipulates the user interface by simulating interactions with assistive technologies. Thus, it is determined which portion of the computer program's functionality is reachable through interaction with the simulated assistive devices. One embodiment allows a user to select states for testing which are otherwise unreachable by the simulated assistive devices. The computer program's interactions with the simulated assistive devices are used to determine whether any accessibility failures exist in the computer program.Type: ApplicationFiled: May 15, 2001Publication date: January 22, 2004Inventor: Jeffrey J. Dunn
-
Publication number: 20040015835Abstract: A system having an Object Distributor and Integrator creates distributed software objects from non-distributed objects developed in different programming languages without requiring a human to explicitly program the objects with code specific to making the objects distributed, wherein the objects are of the type (but not restricted to) .dll, .class, or .obj. The Object Distributor and Integrator also provides integration of the objects with distribution specific code, with the distributed environment, dynamically and at runtime, without having to code reprogram the objects with code specific to the integration. The system may employ a method for dynamically distributing and integrating one or more non-distributed objects, including publisher objects and subscriber objects in a distributed environment.Type: ApplicationFiled: January 24, 2002Publication date: January 22, 2004Inventors: Sasank Kotnur, Sreekrishna Kotnur
-
Publication number: 20040015850Abstract: The present invention pertains to techniques for creating and maintaining objects in object-oriented environments. The techniques are especially well suited for Java programming environments. In accordance with one aspect of the invention, specialized Java heaps are disclosed. In contrast to conventional heaps, the specialized Java heap is designated for storing Java objects with similar traits in the same memory portion. As such, objects with similar traits can be allocated and maintained in a designated memory portion. Another aspect of the invention provides methods for allocating objects in the heap memory. These methods can be used to create and associate objects with similar traits in a specialized heap. As will be appreciated, objects can be created and maintained more efficiently in this manner. As a result, the performance of virtual machines, especially those operating with relatively limited resources (e.g., embedded systems), is improved.Type: ApplicationFiled: May 9, 2001Publication date: January 22, 2004Applicant: Sun Microsystems, Inc.Inventors: Stepan Sokolov, David Wallman
-
Publication number: 20040015855Abstract: Improved techniques for accessing Java class files are disclosed. The techniques provide a mechanism that will generally improve the efficiency of virtual machines by providing a directory for Java class files. The directory can be implemented as an attribute in the attribute portion of the Java class files. Various components of the Java class file can be accessed efficiently by using the directory. In addition, techniques for accessing various components of Java class files using directories are disclosed. The techniques utilize the directory to allow efficient access to the class file. Thus, unlike conventional techniques, there is no need to perform sequential reads in order to locate various components of the Java class file. This allows for better use of resources. As a result, the invention can improve the performance of virtual machines, especially those that operate with limited resources (e.g., embedded systems).Type: ApplicationFiled: May 9, 2001Publication date: January 22, 2004Applicant: Sun Microsystems, Inc.Inventors: David Wallman, Stepan Sokolov
-
Publication number: 20040015852Abstract: A method comprising: converting bytecodes into a graph of jop objects to track where jump operations pointed before modification of the bytecodes; adjusting constant pool references from local to global numbers based on the graph; and combining the bytecodes into a bundle.Type: ApplicationFiled: May 2, 2001Publication date: January 22, 2004Inventor: Brian Swetland
-
Patent number: 6681381Abstract: A Java virtual machine 2, comprises an execution engine for executing Java byte code and a memory management system 14. The memory management system 14 performs garbage collection to remove objects that are not reachable from the current state of the Java program. In the prior art memory management system objects representing a class definition are only removed from memory if the classloader object which has loaded the class object is not reachable. According to the present invention the memory management system 14 is arranged for removing classes which do not have any instantiated objects which can be reached in the present state of the program even if the classloader is still reachable. This results in a substantial saving of memory. Preferably the objects representing a class definition have a method which can signal to it that the definition can be deleted from memory if it has no instantiated objects anymore.Type: GrantFiled: January 5, 2000Date of Patent: January 20, 2004Assignee: Koninklijke Philips Electronics N.V.Inventors: Gerrit H. Soepenberg, Johannes A. G. Vugts
-
Publication number: 20040010779Abstract: A multi-module interpreter comprises a first module configured to provide execution functions for executing a computer method, a second module, logically coupled to said first module, configured to execute the computer method, and an interface configured to facilitate transfer of control among the first and second modules. The multi-module interpreter is advantageous because it provides execution functions for executing compiled native machine code without necessarily requiring such functions to be encoded into the machine code.Type: ApplicationFiled: July 10, 2002Publication date: January 15, 2004Inventor: Michael A. Di Loreto
-
Publication number: 20040010785Abstract: A profiling system independently creates application profiles (10) that indicate the number of executions of each operation in the application and virtual machine profiles (14) which indicate the time/energy consumed by each operation on a particular hardware platform. An application profile (10) in conjunction with the virtual machine profile (14) can be used to generate time and/or energy estimates for the application.Type: ApplicationFiled: July 15, 2002Publication date: January 15, 2004Inventors: Gerard Chauvel, Dominique D'Inverno, Serge Lasserre, Gilbert Cabillic, Jean-Philippe Lesot, Michel Banatre, Frederic Parain, Jean-Paul Routeau
-
Patent number: 6675375Abstract: In general, the invention relates to a method for optimized execution of a computer program including detecting a preservable static field in said computer program with a compiler, comprising detecting at least one selected from the group consisting of a getstatic instruction and a putstatic instruction, annotating said preservable static field to create an annotation indicating whether said field is preservable, compiling said computer program to produce an output using said annotation, wherein said output includes information about said field, encoding said output if backward compatibility is required, loading said output, and executing said output in an environment.Type: GrantFiled: April 28, 2000Date of Patent: January 6, 2004Assignee: Sun Microsystems, Inc.Inventor: Grzegorz Czajkowski
-
Patent number: 6675378Abstract: An object oriented mechanism and method allow allocating Java array objects of unknown size at compile time to a method's invocation stack if the array's size is less than a predetermined threshold value. If the array object could typically be allocated to the invocation stack if it were of a known size at compile time, run-time code is generated that examines the actual size of the array object at run-time and that allocates the array object to the invocation stack if the size is less than a predetermined threshold value. In this manner Java array objects that have an unknown size at compile time may still be allocated to an invocation stack at run-time if the size of the object is sufficiently small.Type: GrantFiled: January 6, 2000Date of Patent: January 6, 2004Assignee: International Business Machines CorporationInventor: William Jon Schmidt
-
Patent number: 6675371Abstract: A system for adding functionality to a graphical user interface of a non-Java based, or native, application, using the Java programming language is provided. A Java window, or dialog, is configured to be accessible by a native application. While the native application is executed in a first thread, a Java dialog is launched in a second thread. Execution of the native application in the first thread is then continued. The Java dialog next calls the native application and registers itself with the native application. Also, the native code can control the Java dialog like other dialogs supported by the native code. A command for a Java dialog from a native application is routed to an invisible dialog. The invisible dialog passes that command to the Java dialog through a native interface connection. A very seamless integration between the Java and native code thus occurs. The graphical user interface operates and visually appears as if controlled from a single source of code.Type: GrantFiled: April 30, 1999Date of Patent: January 6, 2004Assignee: Hewlett-Packard Development Company, L.P.Inventors: Justin E. York, Geoffery A. Schunicht
-
Patent number: 6675379Abstract: A method for memory management in execution of a program by a computer having a memory includes identifying in the program an array of array elements. At a given point in the program, a range of the elements is determined within the array such that none of the elements in the array outside the range is alive at the point. Information regarding the determined range is passed to a memory management function, so that memory locations are associated with the array elements, responsive to the determined range.Type: GrantFiled: June 30, 2000Date of Patent: January 6, 2004Assignee: International Business Machines CorporationInventors: Elliot Karl Kolodner, Ran Shaham, Mooly Sagiv
-
Publication number: 20040003380Abstract: An intermediate language (IL) program is verified by processing the IL program in a single pass. Processed IL instructions may be provided to a just-in-time (JIT) compiler so that the IL program can be converted into a native language program of a targeted device. A verification apparatus may comprise a memory, a sequencing module, a memory updating module, and a rule logic module. The memory comprises an IL offset stack and a data structure that stores information of an IL stack corresponding to a processed IL instruction. The verification apparatus processes the IL program in a straight-line manner except when encountering IL instructions that correspond to designated op code types. In such cases, the verification apparatus may alter a sequencing of processing the IL program by utilizing the IL offset stack.Type: ApplicationFiled: June 26, 2002Publication date: January 1, 2004Applicant: Microsoft CorporationInventor: Vladimir Fedorov
-
Publication number: 20030236986Abstract: A method for anti-piracy protection of a software application by obfuscation of the execution of portions of the applications code is described. The method comprises providing a language specification and library to implement the functions of the language, providing a compiler to translate the language into byte codes, and providing an interpreter to execute the byte codes using the library. The method further comprises providing the language specifications, library, compiler, interpreter, and instructions to a software publisher, wherein the software publisher embeds the library and interpreter in the application to be protected, and selects and prepares application code segments for processing into byte codes by the compiler. The application is then executed using the embedded library and interpreter, wherein the execution of the application is obfuscated by the use of byte codes.Type: ApplicationFiled: June 21, 2002Publication date: December 25, 2003Inventors: Paul A. Cronce, Joseph M. Fontana, Eric C. Anderson
-
Patent number: 6658647Abstract: A system for accessing resources, such as bitmaps, fonts and sound files is provided. Typically, resources of this type are accessed as files from Java code. The data is read into dynamic (RAM) memory as a byte array in a Java object, and at least one other copy of the byte array is made in order to process the resource data, such as rendering an image to a display. The invention provides a mechanism for accessing the resource data directly from ROM, without making intermediate copies in RAM. Each resource can have a unique key or string in a logical table. Values associated with the keys are pointers to the data stored in ROM. The pointers are passed directly to the methods for processing the data on the hardware, bypassing the need to have the data become a temporary Java object. The saving in memory use is particularly advantageous for constrained memory devices.Type: GrantFiled: August 12, 1999Date of Patent: December 2, 2003Assignee: International Business Machines CorporationInventors: Carolyn Ruth MacLeod, Patrick James Mueller, Philip Charles Rubesin
-
Publication number: 20030221184Abstract: A system and method is provided defining a standard software application development framework that can be customized and linked to building blocks by various utilities and project layers, to implement standard business rules in an assembled code. Application developers can set programming standards through a template. By setting these standards, application developers use the system and method to define the naming convention, appearance of the code, reserve places for the comments, and ensure that specific types of code appear at a predefined locations in the code. The template is used while assembling the code.Type: ApplicationFiled: May 22, 2002Publication date: November 27, 2003Inventors: Atul Narayan Gunjal, Abhijeet Ashok Pendharkar
-
Patent number: 6654778Abstract: A method and apparatus for a process in a computer for processing a method that performs a function. A determination is made as to whether the method is to be executed normally when the method is loaded. Responsive to an absence of a determination that the method is a method to be executed normally, instructions native to the computer are associated with the method, wherein the instructions perform the function.Type: GrantFiled: January 29, 1999Date of Patent: November 25, 2003Assignee: International Business Machines CorporationInventors: Geoffrey Owen Blandy, Bentley John Hargrave
-
Patent number: 6651140Abstract: A caching pattern and associated method for caching in a programming environment are disclosed. The caching pattern includes an extensible cache entry component that includes methods for retrieving, updating, and setting expiration parameters for a cache entry. A cache store component includes methods for reading and writing objects to cache entries. A cache manager component includes methods implementing a first interface to the cache store component to cause the cache store component to read and write objects to the data store and includes methods implementing a second interface to the cache entry component for adding, removing, getting and committing data to the cache entry. The cache store component may also include instantiating a virtual machine and the caching pattern may be used, in one embodiment, in a JAVA programming environment.Type: GrantFiled: September 1, 2000Date of Patent: November 18, 2003Assignee: Sun Microsystems, Inc.Inventor: Subbarao Ravi Kumar
-
Patent number: 6643842Abstract: Instrumenting a computer program to provide instrumented byte code includes examining the byte code, selecting portions of the byte code for instrumentation, and instrumenting the portions to provide instrumented byte code. Selecting the portions may include choosing portions of the byte code corresponding to method entry, method exit, a throw, a method call, or a new line number. Instrumenting a portion of the byte code corresponding to a method call may include instrumenting a local line number of source code corresponding to the byte code being instrumented. Instrumenting the portions may include adding calls to instrumentation runtime functions that pass parameters indicative of the portions being instrumented. At least one of the parameters that is passed may include a line number of the source code corresponding to the portion being instrumented or a thispointer for the method corresponding to the portion being instrumented.Type: GrantFiled: September 12, 2001Date of Patent: November 4, 2003Assignee: Compuware CorporationInventors: David J. Angel, James R. Kumorek, Farokh Morshed, David A. Seidel
-
Patent number: 6638315Abstract: A method of controlling the existence of a Java object associated with a Web page in order to reuse the object, rather than create a new one when the Web page is revisited. The invention provides a method for allowing an object to register with a persistence manager upon creation, which maintains objects registered with it while the Web page is no longer being viewed. A Web browser translates instructions to create a Web page and invokes any Java objects resident on the page. The objects then check with the persistence manager to determine if the objects are present in the persistence manager. The objects in the persistence manager are then used, rather than creating new objects. The object remains registered until such time as it no longer needs to persist or until the Web browser is completely shut down.Type: GrantFiled: September 21, 1998Date of Patent: October 28, 2003Assignee: Wall Data IncorporatedInventors: Karl A. Uppiano, Vaughn H. Wine, Joseph C. Younger
-
Publication number: 20030200530Abstract: Method and apparatus are disclosed for the intensive use of garbage collection in order to determine the exact amount of memory that is consumed by a running application at any point of its execution. A garbage collector executes immediately prior to allocations of memory during execution of a program. The amount of memory used by the application is known after each such allocation of memory, and is very close to or equal to its theoretical requirement. A developer is also enabled to determine whether a specified memory allotment for an application is ever exceeded.Type: ApplicationFiled: December 10, 2002Publication date: October 23, 2003Inventor: Moshe Sayag