Patents by Inventor Frank Yellin

Frank Yellin 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: 7080363
    Abstract: A program interpreter for computer programs written in a bytecode language, which uses a restricted set of data type specific bytecodes. The interpreter, prior to executing any bytecode program, executes a bytecode program verifier procedure that verifies the integrity of a specified program by identifying any bytecode instruction that would process data of the wrong type for such a bytecode and any bytecode instruction sequences in the specified program that would cause underflow or overflow of the operand stack. If the program verifier finds any instructions that violate predefined stack usage and data type usage restrictions, execution of the program by the interpreter is prevented. After pre-processing of the program by the verifier, if no program faults were found, the interpreter executes the program without performing operand stack overflow and underflow checks and without performing data type checks on operands stored in operand stack. As a result, program execution speed is greatly improved.
    Type: Grant
    Filed: November 5, 2002
    Date of Patent: July 18, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Frank Yellin, James A. Gosling
  • Publication number: 20030135844
    Abstract: A program interpreter for computer programs written in a bytecode language, which uses a restricted set of data type specific bytecodes. The interpreter, prior to executing any bytecode program, executes a bytecode program verifier procedure that verifies the integrity of a specified program by identifying any bytecode instruction that would process data of the wrong type for such a bytecode and any bytecode instruction sequences in the specified program that would cause underflow or overflow of the operand stack. If the program verifier finds any instructions that violate predefined stack usage and data type usage restrictions, execution of the program by the interpreter is prevented. After pre-processing of the program by the verifier, if no program faults were found, the interpreter executes the program without performing operand stack overflow and underflow checks and without performing data type checks on operands stored in operand stack. As a result, program execution speed is greatly improved.
    Type: Application
    Filed: November 5, 2002
    Publication date: July 17, 2003
    Applicant: Sun Microsystems, Inc.
    Inventors: Frank Yellin, James A. Gosling
  • Patent number: 6477702
    Abstract: A program interpreter for computer programs written in a bytecode language, which uses a restricted set of data type specific bytecodes. The interpreter, prior to executing any bytecode program, executes a bytecode program verifier procedure that verifies the integrity of a specified program by identifying any bytecode instruction that would process data of the wrong type for such a bytecode and any bytecode instruction sequences in the specified program that would cause underflow or overflow of the operand stack. If the program verifier finds any instructions that violate predefined stack usage and data type usage restrictions, execution of the program by the interpreter is prevented. After pre-processing of the program by the verifier, if no program faults were found, the interpreter executes the program without performing operand stack overflow and underflow checks and without performing data type checks on operands stored in operand stack. As a result, program execution speed is greatly improved.
    Type: Grant
    Filed: November 9, 2000
    Date of Patent: November 5, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: Frank Yellin, James A. Gosling
  • Patent number: 6247171
    Abstract: A program interpreter for computer programs written in a bytecode language, which uses a restricted set of data type specific bytecodes. The interpreter, prior to executing any bytecode program, executes a bytecode program verifier procedure that verifies the integrity of a specified program by identifying any bytecode instruction that would process data of the wrong type for such a bytecode and any bytecode instruction sequences in the specified program that would cause underflow or overflow of the operand stack. If the program verifier finds any instructions that violate predefined stack usage and data type usage restrictions, execution of the program by the interpreter is prevented. After pre-processing of the program by the verifier, if no program faults were found, the interpreter executes the program without performing operand stack overflow and underflow checks and without performing data type checks on operands stored in operand stack. As a result, program execution speed is greatly improved.
    Type: Grant
    Filed: December 6, 1999
    Date of Patent: June 12, 2001
    Assignee: Sun Microsystems, Inc.
    Inventors: Frank Yellin, James A. Gosling
  • Patent number: 6067575
    Abstract: A distributed computer system has a program compiling computer and a program executing computer. The program compiling computer is operated by a compiling party and includes a compiler that, when the digital signature of the originating party of an architecture neutral program has been verified, (A) compiles the architecture neutral program code of the architecture neutral program into architecture specific program code in the architecture specific language identified by the compile to information in the architecture neutral program, and (B) appends to the architecture specific program code a digital signature of the compiling party to generate an architecture specific program.
    Type: Grant
    Filed: December 8, 1995
    Date of Patent: May 23, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Charles E. McManis, Frank Yellin
  • Patent number: 6061520
    Abstract: The disclosed system represents an improvement over conventional systems for initializing static arrays by reducing the amount of code executed by the virtual machine to statically initialize an array. To realize this reduction, when consolidating class files, the preloader identifies all <clinit> methods and play executes these methods to determine the static initialization performed by them. The preloader then creates an expression indicating the static initialization performed by the <clinit> method and stores this expression in the .mclass file, replacing the <clinit> method. As such, the code of the <clinit> method, containing many instructions, is replaced by a single expression instructing the virtual machine to perform static initialization, thus saving a significant amount of memory. The virtual machine is modified to recognize this expression and perform the appropriate static initialization of an array.
    Type: Grant
    Filed: April 7, 1998
    Date of Patent: May 9, 2000
    Assignee: Sun Microsystems, Inc.
    Inventors: Frank Yellin, Richard D. Tuck
  • Patent number: 5999731
    Abstract: A program interpreter for computer programs written in a bytecode language, which uses a restricted set of data type specific bytecodes. The interpreter, prior to executing any bytecode program, executes a bytecode program verifier procedure that verifies the integrity of a specified program by identifying any bytecode instruction that would process data of the wrong type for such a bytecode and any bytecode instruction sequences in the specified program that would cause underflow or overflow of the operand stack. If the program verifier finds any instructions that violate predefined stack usage and data type usage restrictions, execution of the program by the interpreter is prevented. After pre-processing of the program by the verifier, if no program faults were found, the interpreter executes the program without performing operand stack overflow and underflow checks and without performing data type checks on operands stored in operand stack. As a result, program execution speed is greatly improved.
    Type: Grant
    Filed: March 24, 1998
    Date of Patent: December 7, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Frank Yellin, James A. Gosling
  • Patent number: 5946489
    Abstract: A method of cross-compiling computer programs includes the step of extracting constants from an inheriting computer program written in a first computer language. The extracted constants refer to a generating computer program written in a second computer language. A new program in the second computer language is then created using the constants. The new program is then compiled for a target computer to ascertain compiled constant values. The compiled constant values are then substituted into the inheriting computer program to produce a final inheriting computer program.
    Type: Grant
    Filed: December 12, 1997
    Date of Patent: August 31, 1999
    Assignee: Sun Microsystems, Inc.
    Inventors: Frank Yellin, Dean R. E. Long, Richard D. Tuck
  • Patent number: 5794044
    Abstract: A secure program interpreter performs a special check the first time it executes a method call to determine if the sole purpose of the called method is to access the value of private variable, modify the value of a private variable, or return a constant value. If this is the case, the interpreter's internal representation of the method being executed is modified so as to directly access the private variable of the called method, or to directly access the stored constant of the called method. The modified method representation uses special "privileged" load and store instructions, not available in normal source code programs, that access private variables and constants outside the method being executed without causing a security violation to be flagged.
    Type: Grant
    Filed: December 8, 1995
    Date of Patent: August 11, 1998
    Assignee: Sun Microsystems, Inc.
    Inventor: Frank Yellin
  • Patent number: 5778231
    Abstract: A program compiler identifies each symbol in a source program that references another program. For each identified symbol, the compiler determines whether the symbol is a reference to a remotely located file or to a locally stored file. If the identified symbol is a reference to a remotely located file, it constructs a file location identifier, such as a URL, for the identified symbol, performs a file location identifier based fetch of the remotely locate file, and ads at least a portion of the fetched file to a set of program code to be compiled if the fetch is successfully performed. If the identified symbol is a reference to a locally stored file, it performs a file fetch for the locally stored file, adding at least a portion of the fetched file to the set of program code to be compiled if the file fetch is successfully performed. If the fetch is unsuccessful, compilation of the source program is aborted.
    Type: Grant
    Filed: December 20, 1995
    Date of Patent: July 7, 1998
    Assignee: Sun Microsystems, Inc.
    Inventors: Arthur A. van Hoff, James A. Gosling, Frank Yellin
  • Patent number: 5761513
    Abstract: A compiler requires normal exceptions that are throwable by a method to be either explicitly declared or else "caught" by appropriate exception handlers in the method to be compiled. This ensures that all normal exceptions thrown will be handled by a programmer specified exception handler. The compiler inspects all instructions in a specified method that throw exceptions and all instructions that invoke other methods, and determines whether each type of exception throwable by those instructions and invocable methods is (A) a serious exception (i.e., not a normal exception), (B) is caught by an enclosing exception handler, or (C) is explicitly declared in the method header of the specified method. If any throwable exception cannot be so categorized, that means the throwable exception is a normal exception that is not caught by an enclosing exception and is not explicitly declared in the method header, which means that the method to be compiled is not well formed.
    Type: Grant
    Filed: July 1, 1996
    Date of Patent: June 2, 1998
    Assignee: Sun Microsystems, Inc.
    Inventors: Frank Yellin, William N. Joy, Arthur A. Van Hoff
  • Patent number: 5740441
    Abstract: A program interpreter for computer programs written in a bytecode language, which uses a restricted set of data type specific bytecodes. The interpreter, prior to executing any bytecode program, executes a bytecode program verifier procedure that verifies the integrity of a specified program by identifying any bytecode instruction that would process data of the wrong type for such a bytecode and any bytecode instruction sequences in the specified program that would cause underflow or overflow of the operand stack. If the program verifier finds any instructions that violate predefined stack usage and data type usage restrictions, execution of the program by the interpreter is prevented. After pre-processing of the program by the verifier, if no program faults were found, the interpreter executes the program without performing operand stack overflow and underflow checks and without performing data type checks on operands stored in operand stack. As a result, program execution speed is greatly improved.
    Type: Grant
    Filed: December 20, 1995
    Date of Patent: April 14, 1998
    Assignee: Sun Microsystems, Inc.
    Inventors: Frank Yellin, James A. Gosling