Patents by Inventor Douglas N. Simon

Douglas N. Simon has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8296745
    Abstract: Method and apparatus for automatically generating intermediate-level interfaces between program methods written in a platform-independent language and program methods written in a native language. A portable stub generator generates stubs in an intermediate, tokenized internal representation. The stub generator is portable across platforms as the stubs it generates are not platform-specific. In addition, the generated stubs are available to the compiler at intermediate compilation stages rather than at the backend compilation stage, and thus may be optimized together with the rest of the platform-independent code, and also may be inlined. The portable stub generator may be directed at virtual machine environments. An exemplary virtual machine environment in which the stub generator may be implemented is the Java™ Virtual Machine (JVM). In JVMs, Java™ is the platform-independent language, and Java™ bytecode the tokenized internal representation.
    Type: Grant
    Filed: December 31, 2007
    Date of Patent: October 23, 2012
    Assignee: Oracle America, Inc.
    Inventors: Douglas N. Simon, Bernd J. W. Mathiske
  • Publication number: 20090172652
    Abstract: Method and apparatus for automatically generating intermediate-level interfaces between program methods written in a platform-independent language and program methods written in a native language. A portable stub generator generates stubs in an intermediate, tokenized internal representation. The stub generator is portable across platforms as the stubs it generates are not platform-specific. In addition, the generated stubs are available to the compiler at intermediate compilation stages rather than at the backend compilation stage, and thus may be optimized together with the rest of the platform-independent code, and also may be inlined. The portable stub generator may be directed at virtual machine environments. An exemplary virtual machine environment in which the stub generator may be implemented is the Java™ Virtual Machine (JVM). In JVMs, Java™ is the platform-independent language, and Java™ bytecode the tokenized internal representation.
    Type: Application
    Filed: December 31, 2007
    Publication date: July 2, 2009
    Inventors: Douglas N. Simon, Bernd J.W. Mathiske
  • Patent number: 7246347
    Abstract: One embodiment of the present invention provides a system that facilitates loading classes into non-volatile memory. During the loading process, the system first loads class definitions into volatile memory, wherein the class definitions contain metadata for classes currently being loaded into non-volatile memory, as well as metadata for classes that are already loaded into non-volatile memory. Next, after the class definitions are loaded into volatile memory, the system loads method code for the classes into non-volatile memory. During this process, the system uses the class definitions to resolve linkages in the method code so that the method code is ready for execution in non-volatile memory.
    Type: Grant
    Filed: June 24, 2003
    Date of Patent: July 17, 2007
    Assignee: Sun Microsystems, Inc
    Inventors: Nicholas Shaylor, Douglas N. Simon
  • Patent number: 7228532
    Abstract: One embodiment of the present invention provides a system that facilitates code verification and garbage collection in a platform-independent virtual machine. The system operates by first receiving a code module written in a platform-independent language. Next, the system examines the code module to locate calls to program methods within the code module. The system then transforms the code module so that all operands remaining on the evaluation stack only relate to the called method when the method is called, thereby simplifying verification and garbage collection of the code module.
    Type: Grant
    Filed: June 24, 2003
    Date of Patent: June 5, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Nicholas Shaylor, Douglas N. Simon
  • Patent number: 7162712
    Abstract: One embodiment of the present invention provides a system for implementing a string object defined in a programming language. Upon receiving characters to be embedded in the string object, the system allocates space for the string object that includes a header, which is appended to a character array of the string object. Next, the system copies the characters into the character array of the string object. The system also initializes the header by initializing a class pointer in the header to point to a class for the string object, and by initializing a length field in the header to specify a length for the string object. In this way, the string object remains compatible with previous implementations of the string object that use a character array that is separate from the string object.
    Type: Grant
    Filed: January 24, 2003
    Date of Patent: January 9, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Nicholas Shaylor, Douglas N. Simon
  • Publication number: 20040006583
    Abstract: One embodiment of the present invention provides a system that facilitates converting a synchronized method into a non-synchronized method. During operation, the system receives a code module that includes a synchronized method. This synchronized method automatically performs a lock operation before executing its method body and automatically performs an unlock operation after executing its method body, whereby at most one thread at a time can execute the method body. Next, the system changes the synchronized method into a non-synchronized method that does not automatically perform lock and unlock operations. The system also inserts an explicit lock instruction at the beginning of the method body, and inserts an explicit unlock instruction at the end of the method body.
    Type: Application
    Filed: June 6, 2003
    Publication date: January 8, 2004
    Inventors: Nicholas Shaylor, Douglas N. Simon
  • Publication number: 20040001010
    Abstract: One embodiment of the present invention provides a system for implementing a string object defined in a programming language. Upon receiving characters to be embedded in the string object, the system allocates space for the string object that includes a header, which is appended to a character array of the string object. Next, the system copies the characters into the character array of the string object. The system also initializes the header by initializing a class pointer in the header to point to a class for the string object, and by initializing a length field in the header to specify a length for the string object. In this way, the string object remains compatible with previous implementations of the string object that use a character array that is separate from the string object.
    Type: Application
    Filed: January 24, 2003
    Publication date: January 1, 2004
    Inventors: Nicholas Shaylor, Douglas N. Simon
  • Publication number: 20020184520
    Abstract: A method is provided for providing security. The method involves separating classes into a trusted class and an untrusted class, associating privilege information with the trusted class, and controlling access to the trusted class by the untrusted class based upon the privilege information associated with the trusted class. The untrusted class may be granted a privilege used to control access to the trusted class. Granting the privilege may be based upon one or more permissive attributes of the privilege information. Based upon this privilege, access to the trusted class may be permitted or refused.
    Type: Application
    Filed: October 10, 2001
    Publication date: December 5, 2002
    Inventors: William R. Bush, Anthony P.C. Ng, Douglas N. Simon