Bytecode (e.g., Java) Patents (Class 717/118)
  • Patent number: 6751790
    Abstract: 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: Grant
    Filed: May 9, 2001
    Date of Patent: June 15, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20040111704
    Abstract: 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: Application
    Filed: August 8, 2003
    Publication date: June 10, 2004
    Inventors: Dong Kwan Kim, Jung Eun Cha, Chul Hong Kim, Hyo Taeg Jung, Moon Sub Song, Young Jong Yang
  • Publication number: 20040111701
    Abstract: 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: Application
    Filed: December 5, 2002
    Publication date: June 10, 2004
    Inventor: Cedric Beust
  • Patent number: 6748570
    Abstract: 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: Grant
    Filed: October 28, 1999
    Date of Patent: June 8, 2004
    Assignee: International Business Machines Corporation
    Inventors: Peter C. Bahrs, Raphael Poole Chancey, Barry Alan Feigenbaum, Manish Mahesh Modh, Sean Michael Sundberg, John Allen Hubert Woolfrey
  • Patent number: 6742109
    Abstract: 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: Grant
    Filed: November 30, 2000
    Date of Patent: May 25, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20040098705
    Abstract: 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: Application
    Filed: November 20, 2002
    Publication date: May 20, 2004
    Inventors: Ravikumar Pisupati, Dongni Chen
  • Publication number: 20040098712
    Abstract: 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: Application
    Filed: November 20, 2002
    Publication date: May 20, 2004
    Inventors: Ravikumar Pisupati, Dongni Chen
  • Publication number: 20040093587
    Abstract: 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: Application
    Filed: April 4, 2003
    Publication date: May 13, 2004
    Inventor: Charles Sesma
  • Publication number: 20040083467
    Abstract: 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: Application
    Filed: October 29, 2002
    Publication date: April 29, 2004
    Applicant: Sharp Laboratories of America, Inc.
    Inventors: Mark G. Hanley, Ronald D. Braithwaite
  • Publication number: 20040078782
    Abstract: 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: Application
    Filed: August 29, 2003
    Publication date: April 22, 2004
    Inventors: 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: 20040078788
    Abstract: 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: Application
    Filed: October 17, 2002
    Publication date: April 22, 2004
    Inventor: Candy Wai-See Wong
  • Publication number: 20040073896
    Abstract: 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: Application
    Filed: November 12, 2003
    Publication date: April 15, 2004
    Applicant: Sun Microsystems, Inc., a Delaware Corporation
    Inventors: Judith Schwabe, Zhiqun Chen
  • Publication number: 20040073895
    Abstract: 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: Application
    Filed: November 12, 2003
    Publication date: April 15, 2004
    Applicant: Sun Microsystems, Inc., a Delaware Corporation
    Inventors: Judith Schwabe, Zhiqun Chen
  • Publication number: 20040073897
    Abstract: 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: Application
    Filed: November 12, 2003
    Publication date: April 15, 2004
    Applicant: Sun Microsystems, Inc., a Delaware Corporation
    Inventor: Judith Schwabe
  • Publication number: 20040073894
    Abstract: 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: Application
    Filed: October 14, 2003
    Publication date: April 15, 2004
    Applicant: Sun Microsystems, Inc., a Delaware Corporation.
    Inventors: Zhigun Chen, Judith E. Schwabe
  • Patent number: 6711657
    Abstract: 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: Grant
    Filed: February 25, 2000
    Date of Patent: March 23, 2004
    Assignee: Oracle Corp.
    Inventors: Harlan Sexton, Peter Benson, Jerry Schwarz
  • Patent number: 6711739
    Abstract: 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: Grant
    Filed: November 8, 1999
    Date of Patent: March 23, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: Jeffrey M. Kutcher
  • Patent number: 6708177
    Abstract: 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: Grant
    Filed: May 11, 2001
    Date of Patent: March 16, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Lawrence R. Schwarcz
  • Patent number: 6704926
    Abstract: 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: Grant
    Filed: September 28, 2000
    Date of Patent: March 9, 2004
    Assignee: International Business Machines Corporation
    Inventors: Geoffrey Owen Blandy, Andrew Johnson
  • Patent number: 6701517
    Abstract: 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: Grant
    Filed: September 28, 2000
    Date of Patent: March 2, 2004
    Assignee: Unisys Corporation
    Inventors: Jeffrey Allen Moore, Joseph Peter Stefaniak, Lonnie Dale Sulgrove
  • Publication number: 20040040017
    Abstract: 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: Application
    Filed: August 22, 2002
    Publication date: February 26, 2004
    Applicant: International Business Machines Corporation
    Inventors: Aaron Stephen Jay Kershenbaum, Lawrence Koved, Anthony Joseph Nadalin, Marco Pistoia
  • Patent number: 6694508
    Abstract: 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: Grant
    Filed: September 28, 2000
    Date of Patent: February 17, 2004
    Assignee: Unisys Corporation
    Inventors: Jeffrey Allen Moore, Joseph Peter Stefaniak, Lonnie Dale Sulgrove
  • Patent number: 6694507
    Abstract: 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: Grant
    Filed: December 15, 2000
    Date of Patent: February 17, 2004
    Assignee: International Business Machines Corporation
    Inventors: Jeremy Alan Arnold, Eric Lawrence Barsness, John Matthew Santosuosso
  • Publication number: 20040031025
    Abstract: 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: Application
    Filed: May 22, 2003
    Publication date: February 12, 2004
    Inventor: Pascal Brisset
  • Patent number: 6691302
    Abstract: 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: Grant
    Filed: May 31, 2000
    Date of Patent: February 10, 2004
    Assignee: Siemens Information & Communications Networks, Inc.
    Inventors: Mark Skrzynski, Huy Ton
  • Publication number: 20040019880
    Abstract: 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: Application
    Filed: July 25, 2002
    Publication date: January 29, 2004
    Inventor: Andrew Christopher Rose
  • Publication number: 20040019887
    Abstract: 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: Application
    Filed: July 25, 2002
    Publication date: January 29, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Brandon E. Taylor, William H. Connor
  • Publication number: 20040015914
    Abstract: 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: Application
    Filed: March 8, 2002
    Publication date: January 22, 2004
    Inventor: Timothy Renouf
  • Publication number: 20040015859
    Abstract: 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: Application
    Filed: March 27, 2003
    Publication date: January 22, 2004
    Inventors: Timothy Potter, Mitch Upton, Christa Golding, Rick DeGrande
  • Publication number: 20040015862
    Abstract: 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: Application
    Filed: May 15, 2001
    Publication date: January 22, 2004
    Inventor: Jeffrey J. Dunn
  • Publication number: 20040015835
    Abstract: 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: Application
    Filed: January 24, 2002
    Publication date: January 22, 2004
    Inventors: Sasank Kotnur, Sreekrishna Kotnur
  • Publication number: 20040015850
    Abstract: 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: Application
    Filed: May 9, 2001
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Stepan Sokolov, David Wallman
  • Publication number: 20040015855
    Abstract: 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: Application
    Filed: May 9, 2001
    Publication date: January 22, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: David Wallman, Stepan Sokolov
  • Publication number: 20040015852
    Abstract: 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: Application
    Filed: May 2, 2001
    Publication date: January 22, 2004
    Inventor: Brian Swetland
  • Patent number: 6681381
    Abstract: 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: Grant
    Filed: January 5, 2000
    Date of Patent: January 20, 2004
    Assignee: Koninklijke Philips Electronics N.V.
    Inventors: Gerrit H. Soepenberg, Johannes A. G. Vugts
  • Publication number: 20040010779
    Abstract: 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: Application
    Filed: July 10, 2002
    Publication date: January 15, 2004
    Inventor: Michael A. Di Loreto
  • Publication number: 20040010785
    Abstract: 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: Application
    Filed: July 15, 2002
    Publication date: January 15, 2004
    Inventors: Gerard Chauvel, Dominique D'Inverno, Serge Lasserre, Gilbert Cabillic, Jean-Philippe Lesot, Michel Banatre, Frederic Parain, Jean-Paul Routeau
  • Patent number: 6675375
    Abstract: 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: Grant
    Filed: April 28, 2000
    Date of Patent: January 6, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: Grzegorz Czajkowski
  • Patent number: 6675378
    Abstract: 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: Grant
    Filed: January 6, 2000
    Date of Patent: January 6, 2004
    Assignee: International Business Machines Corporation
    Inventor: William Jon Schmidt
  • Patent number: 6675371
    Abstract: 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: Grant
    Filed: April 30, 1999
    Date of Patent: January 6, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Justin E. York, Geoffery A. Schunicht
  • Patent number: 6675379
    Abstract: 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: Grant
    Filed: June 30, 2000
    Date of Patent: January 6, 2004
    Assignee: International Business Machines Corporation
    Inventors: Elliot Karl Kolodner, Ran Shaham, Mooly Sagiv
  • Publication number: 20040003380
    Abstract: 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: Application
    Filed: June 26, 2002
    Publication date: January 1, 2004
    Applicant: Microsoft Corporation
    Inventor: Vladimir Fedorov
  • Publication number: 20030236986
    Abstract: 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: Application
    Filed: June 21, 2002
    Publication date: December 25, 2003
    Inventors: Paul A. Cronce, Joseph M. Fontana, Eric C. Anderson
  • Patent number: 6658647
    Abstract: 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: Grant
    Filed: August 12, 1999
    Date of Patent: December 2, 2003
    Assignee: International Business Machines Corporation
    Inventors: Carolyn Ruth MacLeod, Patrick James Mueller, Philip Charles Rubesin
  • Publication number: 20030221184
    Abstract: 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: Application
    Filed: May 22, 2002
    Publication date: November 27, 2003
    Inventors: Atul Narayan Gunjal, Abhijeet Ashok Pendharkar
  • Patent number: 6654778
    Abstract: 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: Grant
    Filed: January 29, 1999
    Date of Patent: November 25, 2003
    Assignee: International Business Machines Corporation
    Inventors: Geoffrey Owen Blandy, Bentley John Hargrave
  • Patent number: 6651140
    Abstract: 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: Grant
    Filed: September 1, 2000
    Date of Patent: November 18, 2003
    Assignee: Sun Microsystems, Inc.
    Inventor: Subbarao Ravi Kumar
  • Patent number: 6643842
    Abstract: 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: Grant
    Filed: September 12, 2001
    Date of Patent: November 4, 2003
    Assignee: Compuware Corporation
    Inventors: David J. Angel, James R. Kumorek, Farokh Morshed, David A. Seidel
  • Patent number: 6638315
    Abstract: 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: Grant
    Filed: September 21, 1998
    Date of Patent: October 28, 2003
    Assignee: Wall Data Incorporated
    Inventors: Karl A. Uppiano, Vaughn H. Wine, Joseph C. Younger
  • Publication number: 20030200530
    Abstract: 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: Application
    Filed: December 10, 2002
    Publication date: October 23, 2003
    Inventor: Moshe Sayag