Claims
- 1. A method for program verification, the method comprising:
receiving a program unit; determining data types used by said program unit; creating a first mapping for said data types; and using said first mapping to represent type information in verification information for said program unit, said verification information comprising the data type of at least one entry on an operand stack or in a register file during simulated execution of said program unit.
- 2. The method of claim 1 wherein said first mapping comprises a bitmap, each bit in bitmap representing a data type used by said program unit.
- 3. The method of claim 1 wherein said first mapping represents all data types used by said program unit.
- 4. The method of claim 1 wherein said first mapping represents a subset of data types used by said program unit.
- 5. The method of claim 1 wherein said first mapping represents the most-used data types of said program unit.
- 6. The method of claim 1 wherein said first mapping is exclusive of data types represented by second mapping representing data types used by a higher-level program unit.
- 7. The method of claim 1 wherein said program comprises a Java™ program.
- 8. The method of claim 7 wherein said program unit comprises one of a package, a class, a method, an instance variable and a class variable.
- 9. A method for program verification, the method comprising:
step for receiving a program unit; step for determining data types used by said program unit; step for creating a first mapping for said data types; and step for using said first mapping to represent type information in verification information for said program unit, said verification information comprising the data type of at least one entry on an operand stack or in a register file during simulated execution of said program unit.
- 10. The method of claim 9 wherein said first mapping comprises a bitmap, each bit in bitmap representing a data type used by said program unit.
- 11. The method of claim 9 wherein said first mapping represents all data types used by said program unit.
- 12. The method of claim 9 wherein said first mapping represents a subset of data types used by said program unit.
- 13. The method of claim 9 wherein said first mapping represents the most-used data types of said program unit.
- 14. The method of claim 9 wherein said first mapping is exclusive of data types represented by second mapping representing data types used by a higher-level program unit.
- 15. The method of claim 9 wherein said program comprises a Java™ program.
- 16. The method of claim 15 wherein said program unit comprises one of a package, a class, a method, an instance variable and a class variable.
- 17. A program storage device readable by a machine, embodying a program of instructions executable by the machine to perform a method for program verification, the method comprising:
receiving a program unit; determining data types used by said program unit; creating a first mapping for said data types; and using said first mapping to represent type information in verification information for said program unit, said verification information comprising the data type of at least one entry on an operand stack or in a register file during simulated execution of said program unit.
- 18. The program storage device of claim 17 wherein said first mapping comprises a bitmap, each bit in bitmap representing a data type used by said program unit.
- 19. The program storage device of claim 17 wherein said first mapping represents all data types used by said program unit.
- 20. The program storage device of claim 17 wherein said first mapping represents a subset of data types used by said program unit.
- 21. The program storage device of claim 17 wherein said first mapping represents the most-used data types of said program unit.
- 22. The program storage device of claim 17 wherein said first mapping is exclusive of data types represented by second mapping representing data types used by a higher-level program unit.
- 23. The program storage device of claim 17 wherein said program comprises a Java™ program.
- 24. The program storage device of claim 23 wherein said program unit comprises one of a package, a class, a method, an instance variable and a class variable.
- 25. An apparatus for program verification, the apparatus comprising: means for receiving a program unit;
means for determining data types used by said program unit; means for creating a first mapping for said data types; and means for using said first mapping to represent type information in verification information for said program unit, said verification information comprising the data type of at least one entry on an operand stack or in a register file during simulated execution of said program unit.
- 26. The apparatus of claim 25 wherein said first mapping comprises a bitmap, each bit in bitmap representing a data type used by said program unit.
- 27. The apparatus of claim 25 wherein said first mapping represents all data types used by said program unit.
- 28. The apparatus of claim 25 wherein said first mapping represents a subset of data types used by said program unit.
- 29. The apparatus of claim 25 wherein said first mapping represents the most-used data types of said program unit.
- 30. The apparatus of claim 25 wherein said first mapping is exclusive of data types represented by second mapping representing data types used by a higher-level program unit.
- 31. The apparatus of claim 25 wherein said program comprises a Java™ program.
- 32. The apparatus of claim 31 wherein said program unit comprises one of a package, a class, a method, an instance variable and a class variable.
- 33. An apparatus for communicating program verification, comprising:
a memory for storing a program comprising a plurality of program units; and a processor configured to:
receive a program unit; determine data types used by said program unit; create a first mapping for said data types; and use said first mapping to represent type information in verification information for said program unit, said verification information comprising the data type of at least one entry on an operand stack or in a register file during simulated execution of said program unit.
- 34. The apparatus of claim 33 wherein said first mapping comprises a bitmap, each bit in bitmap representing a data type used by said program unit.
- 35. The apparatus of claim 33 wherein said first mapping represents all data types used by said program unit.
- 36. The apparatus of claim 33 wherein said first mapping represents a subset of data types used by said program unit.
- 37. The apparatus of claim 33 wherein said first mapping represents the most-used data types of said program unit.
- 38. The apparatus of claim 33 wherein said first mapping is exclusive of data types represented by second mapping representing data types used by a higher-level program unit.
- 39. The apparatus of claim 33 wherein said program comprises a Java™ program.
- 40. The apparatus of claim 39 wherein said program unit comprises one of a package, a class, a method, an instance variable and a class variable.
- 41. A memory for storing data for access by an application program being executed on a data processing system, comprising:
a data structure stored in said memory, said data structure including information used by said program to verify a program unit, said data structure comprising a type mapped representation of data types used by said program unit.
- 42. The memory of claim 41 wherein said type map comprises a bitmap, each bit in bitmap representing a data type used by said program unit.
- 43. The memory of claim 41 wherein said representation represents all data types used by said program unit.
- 44. The memory of claim 41 wherein said representation represents a subset of data types used by said program unit.
- 45. The memory of claim 41 wherein said representation represents the most-used data types of said program unit.
- 46. The memory of claim 41 wherein said representation is exclusive of data types represented by another type mapped representation representing data types used by a higher-level program unit.
- 47. The memory of claim 41 wherein said program comprises a Java™ program.
- 48. The memory of claim 47 wherein said program unit comprises one of a package, a class, a method, an instance variable and a class variable.
Parent Case Info
[0001] This application is related to the following:
[0002] U.S. patent application Ser. No. ______ , filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “System for Communicating Program Data Between a First Device and a Second Device”, Attorney Docket No. SUN-P7013, commonly assigned herewith.
[0003] U.S. patent application Ser. No. ______ , filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “Signing Program Data Payload Sequence in Program Loading”, Attorney Docket No. SUN-P8713, commonly assigned herewith.
[0004] U.S. patent application Ser. No. ______, filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “Using a Digital Fingerprint to Commit Loaded Data in a Device”, Attorney Docket No. SUN-P8714, commonly assigned herewith.
[0005] U.S. patent application Ser. No. ______, filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “Ordering Program Data for Loading on a Device”, Attorney Docket No. SUN-P8715, commonly assigned herewith.
[0006] U.S. patent application Ser. No. ______, filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “Run Time Code Integrity Checks”, Attorney Docket No. SUN-P8717, commonly assigned herewith.
[0007] U.S. patent application Ser. No. ______, filed Jan. 16, 2003 in the name of inventor Eduard de Jong, entitled “Linking of Virtual Methods”, Attorney Docket No. SUN-P8718, commonly assigned herewith.