Claims Analysis
Total Claims: 18
Claim 1
Independent Claim
161 words
A method of operating a computer system, the steps of the method comprising: (A) storing a program in a memory, the program including a sequence of bytecodes, where each of a multiplicity of said bytecodes each represents an operation on data of a specific data type; said each bytecode having associated data type restrictions on the data type of data to be manipulated by said each bytecode; (B) prior to execution of said program, preprocessing said program by determining whether execution of any bytecode in said program would violate said data type restrictions for that bytecode and generating a program fault signal when execution of any bytecode in said program would violate the data type restrictions for that bytecode; (C) when said preprocessing of said program results in the generation of no program fault signals, enabling execution of said program; and (D) when said preprocessing of said program results in the generation of a program fault, preventing execution of said program.
Claim 2
Dependent Claim
98 words
The method of claim 1, said preprocessing step including: (B1) determining the state of a virtual stack associated with said program before and after execution of each said bytecode in the program, said virtual stack state storing data type values for operands that would be stored in an operand stack during execution of said program; and (B2) determining whether execution of any bytecode in said program would violate said data type restrictions for that bytecode and generating a program fault signal when execution of any bytecode in said program would violate the data type restrictions for that bytecode.
Claim 3
Dependent Claim
70 words
The method of claim 2, said bytecode program including at least one execution loop; said preprocessing step including (B3) determining whether execution of any loop in said program would result in a net addition or deletion of operands to said operand stack, and for generating a program fault signal when execution of any loop in said program would produce a net addition or deletion of operands to said operand stack.
Claim 4
Dependent Claim
33 words
The method of claim 3, including when execution of said bytecode program has been enabled, executing said bytecode program without performing operand stack underflow and overflow checks during execution of said bytecode program.
Claim 5
Dependent Claim
40 words
The method of claim 1,2, 3 or 4, including: when execution of said bytecode program has been enabled, executing said bytecode program without performing data type checks on operands stored in said operand stack during execution of said bytecode program.
Claim 6
Dependent Claim
115 words
The method of claim 1, said bytecode program including at least one execution loop; said step (B) including determining the state of a virtual stack associated with said program before and after execution of each said bytecode in the program, said virtual stack state storing data type values for operands that would be stored in an operand stack during execution of said program; and determining whether execution of any loop in said program would result in a net addition or deletion of operands to said operand stack, and for generating a program fault signal when execution of any loop in said program would produce a net addition or deletion of operands to said operand stack.
Claim 7
Dependent Claim
33 words
The method of claim 6, including when execution of said bytecode program has been enabled, executing said bytecode program without performing operand stack underflow and overflow checks during execution of said bytecode program.
Claim 8
Dependent Claim
58 words
The method of claim 1, said step (B) including determining, whenever two or more bytecodes in said program comprise jumps/branches to an identical location in said program, whether the states of the virtual stack prior to execution of each of said jump/branches are inconsistent, and for generating a program fault signal if said virtual stack states are inconsistent.
Claim 9
Dependent Claim
30 words
The method of claim 8, when execution of said bytecode program has been enabled, executing said bytecode program without performing operand stack status checks during execution of said bytecode program.
Claim 10
Dependent Claim
166 words
A computer system, comprising: memory for storing a bytecode program, the bytecode program including a sequence of bytecodes, where each of a multiplicity of said bytecodes each represents an operation on data of a specific data type; said each bytecode having associated data type restrictions on the data type of data to be manipulated by said each bytecode; a data processing unit for executing programs stored in said memory; a bytecode program verifier, stored in said memory, said bytecode program verifier including data type testing instructions for determining whether execution of any bytecode in said program would violate said data type restrictions for that bytecode and generating a program fault signal when execution of any bytecode in said program would violate the data type restrictions for that bytecode; and a bytecode program interpreter, coupled to said bytecode program verifier, that executes said bytecode program after processing of said bytecode program by said bytecode program verifier only when said bytecode program verifier generates no program fault signals.
Claim 11
Dependent Claim
108 words
The computer system of claim 10, said bytecode program verifier including stack status tracking instructions for determining the state of a virtual stack associated with said program before and after execution of each said bytecode in the program, said virtual stack state storing data type values for operands that would be stored in an operand stack during execution of said program; and data type checking instructions for determining whether execution of any bytecode in said program would violate said data type restrictions for that bytecode and generating a program fault signal when execution of any bytecode in said program would violate the data type restrictions for that bytecode.
Claim 12
Dependent Claim
52 words
The computer system of claim 10, said bytecode program verifier further including: stack overflow/underflow testing instructions for determining whether execution of said program would result in an operand stack underflow or overflow and generating a program fault signal when execution of said program would result in an operand stack underflow or overflow.
Claim 13
Dependent Claim
31 words
The computer system of claim 12, said bytecode program interpreter including instructions for executing said bytecode program without performing operand stack underflow and overflow checks during execution of said bytecode program.
Claim 14
Dependent Claim
33 words
The computer system of claim 10, 11, 12, or 13 said bytecode program interpreter including instructions for executing said bytecode program without performing data type checks on operands used by said bytecode program.
Claim 15
Dependent Claim
103 words
The computer system of claim 10, said bytecode program verifier including stack status tracking instructions for determining the state of a virtual stack associated with said program before and after execution of each said bytecode in the program, said virtual stack state storing data type values for operands that would be stored in an operand stack during execution of said program; and stack overflow/underflow testing instructions for determining whether execution of said program would result in an operand stack underflow or overflow and for generating a program fault signal when execution of said program would result in an operand stack underflow or overflow.
Claim 16
Dependent Claim
31 words
The computer system of claim 10, said bytecode program interpreter including means for executing said bytecode program without performing operand stack underflow and overflow checks during execution of said bytecode program.
Claim 17
Dependent Claim
64 words
The computer system of claim 10, said bytecode program verifier including jump/branch inspection instructions for determining, whenever two or more bytecodes in said program comprise jumps/branches to an identical location in said program, whether the states of the virtual stack prior to execution of each of said jump/branches are inconsistent, and for generating a program fault signal if said virtual stack states are inconsistent.
Claim 18
Dependent Claim
29 words
The computer system of claim 17, said bytecode program interpreter including means for executing said bytecode program without performing operand stack status checks during execution of said bytecode program.