Claims Analysis
Total Claims: 12
Claim 1
Independent Claim
288 words
A computer system, comprising: memory for storing a plurality of objects and a plurality of procedures, each said object comprising an instance of an associated object class and each said procedure belonging to a respective object class, said plurality of procedures including simple procedures wherein the entire function performed by each said simple procedure is selected from the group consisting of: (A) returning a private variable's value, where said private variable is stored in and is private to an object of the object class to which said simple procedure belongs, (B) storing a specified value into said private variable, and (C) returning a constant value; and a secure program interpreter for executing selected ones of said procedures, said interpreter providing private variable security to restrict access to said private variable, said interpreter including a load subprocedure for generating a working representation of a first one of said procedures to be executed, and an optimization subprocedure for optimizing execution of said simple procedures when called by other ones of said procedures, said optimization subprocedure determining, when said interpreter is processing a procedure call in said first procedure to a second one of said procedures, whether said second procedure is one of said simple procedures, and if said determination is positive, replacing said procedure call in said working representation of said first procedure with a direct access instruction that does not violate the private variable security provided by the secure program interpreter, wherein said direct access instruction is selected from the group consisting of (A) a first instruction that directly returns said private variable's value, (B) a second instruction that directly stores a specified value into said private variable, and (C) a third instruction that directly returns said constant value.
Claim 2
Dependent Claim
288 words
A computer system, comprising: memory for storing a plurality of objects and a plurality of procedures, each said object comprising an instance of an associated object class and each said procedure belonging to a respective object class, said plurality of procedures including simple procedures wherein the entire function performed by each said simple procedure is selected from the group consisting of: (A) returning a private variable's value, where said private variable is stored in and is private to an object of the object class to which said simple procedure belongs, (B) storing a specified value into said private variable, and (C) returning a constant value; and a secure program interpreter for executing selected ones of said procedures, said interpreter providing private variable security to restrict access to said private variable, said interpreter including a load subprocedure for generating a working representation of a first one of said procedures to be executed, and an optimization subprocedure for optimizing execution of said simple procedures when called by other ones of said procedures, said optimization subprocedure determining, when said interpreter is processing a procedure call in said first procedure to a second one of said procedures, whether said second procedure is one of said simple procedures, and if said determination is positive, replacing said procedure call in said working representation of said first procedure with a direct access instruction that does not violate the private variable security provided by the secure program interpreter, wherein said direct access instruction is selected from the group consisting of (A) a first instruction that directly returns said private variable's value, (B) a second instruction that directly stores a specified value into said private variable, and (C) a third instruction that directly returns said constant value.
Claim 3
Dependent Claim
103 words
The computer system of claim 1, wherein said interpreter includes security instructions for preventing standard instructions that load a variable's value into an operand stack and that store a value on the operand stack into a variable from accessing any private variable that is not stored in an object of the object class for the procedure in which said standard instructions reside; and said first and second instructions are special purpose instructions that access said private variable without causing a security violation to be flagged by said security instructions even if said first procedure and second procedure belong to different respective object classes.
Claim 4
Dependent Claim
51 words
The computer system of claim 2, wherein said interpreter includes instructions for flushing said working representation of said first procedure from said procedure interpreter when execution of said first procedure terminates, such that when said first procedure is executed again said interpreter generates a new working representation of said first procedure.
Claim 5
Independent Claim
286 words
A method of operating a computer system, comprising the steps of: storing a plurality of objects and a plurality of procedures in a computer memory, each said object comprising an instance of an associated object class and each said procedure belonging to a respective object class, said plurality of procedures including simple procedures wherein the entire function performed by each said simple procedure is selected from the group consisting of: (A) returning a private variable's value, where said private variable is private to an object of the object class to which said simple procedure belongs, (B) storing a specified value into said private variable, and (C) returning a constant value; under the control of a secure program interpreter, said interpreter providing private variable security to restrict access to said private variable, executing selected ones of said procedures, including generating a working representation of a first one of said procedures to be executed, and optimizing execution of any of said simple procedures when called by said first procedure, said optimizing step including determining, when said interpreter is processing a procedure call in said first procedure to a second one of said procedures, whether said second procedure is one of said simple procedures, and if said determination is positive, replacing said procedure call in said working representation of said first procedure with a direct access instruction that does not violate the private variable security provided by the secure program interpreter, wherein said direct access instruction is selected from the group consisting of (A) a first instruction that directly returns said private variable's value, (B) a second instruction that directly stores a specified value into said private variable, and (C) a third instruction that directly returns said constant value.
Claim 6
Independent Claim
286 words
A method of operating a computer system, comprising the steps of: storing a plurality of objects and a plurality of procedures in a computer memory, each said object comprising an instance of an associated object class and each said procedure belonging to a respective object class, said plurality of procedures including simple procedures wherein the entire function performed by each said simple procedure is selected from the group consisting of: (A) returning a private variable's value, where said private variable is private to an object of the object class to which said simple procedure belongs, (B) storing a specified value into said private variable, and (C) returning a constant value; under the control of a secure program interpreter, said interpreter providing private variable security to restrict access to said private variable, executing selected ones of said procedures, including generating a working representation of a first one of said procedures to be executed, and optimizing execution of any of said simple procedures when called by said first procedure, said optimizing step including determining, when said interpreter is processing a procedure call in said first procedure to a second one of said procedures, whether said second procedure is one of said simple procedures, and if said determination is positive, replacing said procedure call in said working representation of said first procedure with a direct access instruction that does not violate the private variable security provided by the secure program interpreter, wherein said direct access instruction is selected from the group consisting of (A) a first instruction that directly returns said private variable's value, (B) a second instruction that directly stores a specified value into said private variable, and (C) a third instruction that directly returns said constant value.
Claim 7
Dependent Claim
130 words
The method of claim 4, wherein said first and second instructions are special purpose instructions, said method including the steps of: preventing standard instructions for loading a variable's value into an operand stack and for storing a value on the operand stack into a variable from accessing any private variable outside the procedure in which said standard instructions reside, and flagging a security violation when execution of any standard instruction would require accessing any private variable that is not stored in an object of the object class for the procedure in which said standard instructions reside; and enabling said first and second instructions to access said private variable without causing a security violation to be flagged even if said first procedure and second procedure belong to different respective object classes.
Claim 8
Dependent Claim
44 words
The method of claim 5, including: flushing said working representation of said first procedure from said interpreter when execution of said first procedure terminates, such that when said first procedure is executed again said interpreter generates a new working representation of said first procedure.
Claim 9
Dependent Claim
308 words
A memory for storing data for access by programs being executed on a data processing system, said memory comprising: a plurality of objects and a plurality of procedures stored in said memory, each said object comprising an instance of an associated object class and each said procedure belonging to a respective object class, said plurality of procedures including simple procedures wherein the entire function performed by each said simple procedure is selected from the group consisting of: (A) returning a private variable's value, where said private variable is stored in and is private to an object of the object class to which said simple procedure belongs, (B) storing a specified value into said private variable, and (C) returning a constant value; and a secure program interpreter, stored in said memory, for executing selected ones of said procedures, said interpreter providing private variable security to restrict access to said private variable, said interpreter including a load subprocedure for generating a working representation of a first one of said procedures to be executed, and an optimization subprocedure for optimizing execution of said simple procedures when called by other ones of said procedures, said optimization subprocedure determining, when said interpreter is processing a procedure call in said first procedure to a second one of said procedures, whether said second procedure is one of said simple procedures, and if said determination is positive, replacing said procedure call in said working representation of said first procedure with a direct access instruction that does not violate the private variable security provided by the secure program interpreter, wherein said direct access instruction is selected from the group consisting of (A) a first instruction that directly returns said private variable's value, (B) a second instruction that directly stores a specified value into said private variable, and (C) a third instruction that directly returns said constant value.
Claim 10
Dependent Claim
308 words
A memory for storing data for access by programs being executed on a data processing system, said memory comprising: a plurality of objects and a plurality of procedures stored in said memory, each said object comprising an instance of an associated object class and each said procedure belonging to a respective object class, said plurality of procedures including simple procedures wherein the entire function performed by each said simple procedure is selected from the group consisting of: (A) returning a private variable's value, where said private variable is stored in and is private to an object of the object class to which said simple procedure belongs, (B) storing a specified value into said private variable, and (C) returning a constant value; and a secure program interpreter, stored in said memory, for executing selected ones of said procedures, said interpreter providing private variable security to restrict access to said private variable, said interpreter including a load subprocedure for generating a working representation of a first one of said procedures to be executed, and an optimization subprocedure for optimizing execution of said simple procedures when called by other ones of said procedures, said optimization subprocedure determining, when said interpreter is processing a procedure call in said first procedure to a second one of said procedures, whether said second procedure is one of said simple procedures, and if said determination is positive, replacing said procedure call in said working representation of said first procedure with a direct access instruction that does not violate the private variable security provided by the secure program interpreter, wherein said direct access instruction is selected from the group consisting of (A) a first instruction that directly returns said private variable's value, (B) a second instruction that directly stores a specified value into said private variable, and (C) a third instruction that directly returns said constant value.
Claim 11
Dependent Claim
103 words
The memory of claim 7, wherein said interpreter includes security instructions for preventing standard instructions that load a variable's value into an operand stack and that store a value on the operand stack into a variable from accessing any private variable that is not stored in an object of the object class for the procedure in which said standard instructions reside; and said first and second instructions are special purpose instructions that can access said private variable without causing a security violation to be flagged by said security instructions even if said first procedure and second procedure belong to different respective object classes.
Claim 12
Dependent Claim
50 words
The memory of claim 8, wherein said interpreter includes instructions for flushing said working representation of said first procedure from said procedure interpreter when execution of said first procedure terminates, such that when said first procedure is executed again said interpreter generates a new working representation of said first procedure.