Patent
1997-05-19
2000-06-13
Toplu, Lucien U.
395705, 395707, G06F 945
Patent
active
060759402
ABSTRACT:
The present invention provides a verifier for use in conjunction with programs utilizing data type specific bytecodes for verifying the proper operation of the executable program prior to actual execution by a host processor. A verifier is provided which includes a virtual stack for temporarily storing stack information which parallels the typical stack operations required during the execution a bytecode program. The verifier also includes a stack snapshot storage structure having a snapshot directory and stack snapshot storage area for storing the state of the virtual stack at various points during program verification so as to assure proper stack manipulations by the source program. A two step source program verification process is provided for in which the source program is initially loaded into the verifier and a first pass source program evaluation is performed. During the first pass, the addresses of all source program target destinations resulting from conditional or un-conditional jumps are stored in sequential order in the stack snapshot directory. The source program is then reloaded and a verification of stack manipulations is performed using a virtual stack and the stack snapshot storage structure to verify proper stack manipulations by the source program. Upon completion, the source program may be interpreted, or compiled, or converted into another executable format as required by an individual user.
REFERENCES:
patent: 3878513 (1975-04-01), Werner
patent: 4521851 (1985-06-01), Trubisky et al.
patent: 4524416 (1985-06-01), Stanley et al.
patent: 5187799 (1993-02-01), McAuley et al.
patent: 5283878 (1994-02-01), Murray
patent: 5422992 (1995-06-01), Motoyama et al.
patent: 5446875 (1995-08-01), Ogisu et al.
patent: 5579518 (1996-11-01), Yasumatsu
patent: 5668999 (1997-09-01), Gosling
patent: 5696974 (1997-12-01), Agrawal et al.
Ken Thompson, "Regular Expression Search Algorithm," Communications of the ACM, Jun. 1968, vol. 11, No. 6, pp. 419-422.
Kin-Man Chung and Herbert Yuen, "A `Tiny` Pascal Compiler; Part 1: The P-Code Interpreter," BYTE Publications, Inc., Sep. 1978.
Kin-Man Chung and Herbert Yuen, "A `Tiny` Pascal Compiler; Part 2: The P-Compiler," BYTE Publications, Inc., Oct. 1978.
Gene McDaniel, "An Analysis of a Mesa Instruction Set," Association for Computing Machinery, May 1982.
Kenneth A. Pier, "A Retrospective on the Dorado, A High-Performance Personal Computer," IEEE Computer Society, 10th Annual Intl. Symposium on Computer Architecture, 1983, pp. 252-269.
James G. Mitchell, et al., "Mesa Language Manual", Xerox Corporation, Palo Alto Research Center.
Robert E. Strom, et al., "Extending Typestate Checking Using Conditional Liveness Analysis", IEEE Transactions on Softare Engineering, vol. 19, No. 5, May 1993.
Perrott, R.H., et al., "A Supercomputer Program Development System", Software Practice & Experience 17, No. 10, Oct. 1987, pp. 663-683.
Wright, Andrew K., et al., "A Practical Soft Type System for Scheme", LISP 94--Jun. 1994 Orlando, Florida, pp. 250-262.
Gosling, James, "Java Intermediate Bytecodes", ACM SIGPLAN Workshop on Intermediate Representations (IR '95), Jan. 1995, San Francisco, California, ACM SIGPLAN Notices, vol. 30, No. 3, Mar. 1995, pp. 111-118.
Chambers, Craig, et al., "An Efficient Implementation of SELF, a Dynamically-Typed Object-Oriented Language Based on Prototypes", OOPSLA '89 Proceedings, Oct. 1-6, 1989, ACM SIGPLAN Notices, vol. 24, No. 10, Oct. 1989, pp. 49-70.
"PostScript Language Reference Manual", Addison-Wesley Publishing Company, 1985.
Duff, Charles B., "Designing an Efficient Language", Byte, Aug. 1986, pp. 211-224.
Reznik, Assaf, "Character simulation with ScriptX, a general-purpose framework for dynamic behavior", Dr. Dobb's Journal, vol. 19, No. 13, Nov. 1994, p. 76(6).
Franks, Neville, "Adding an extension language to your software: the little language interface", Dr. Dobb's Journal, vol. 16, No. 9, Sep. 1991, p. 34(6).
Betz, David, "Your own tiny object-oriented language: C++? Smalltalk? What about Bob?", Dr. Dobb's Journal, vol. 16, No. 9, Sep. 1991, p. 26(8).
Betz, David, "Dave's Recycled OO Language: Drool over a little language that sports multiple inheritance", Dr. Dobb's Journal, vol. 18, No. 11, Oct. 1993, p. 74(4).
Betz, David, "Embedded Languages: ExTalk allows users to extend the capabilities of your application programs", BYTE, Vol. 13, No. 12, Nov. 1988, p. 419.
Kinchin, Corinna, "Postscript: P.S. it's a programming language, too!", EXE, Vol. 6, No. 1, Jun. 1991, p. 66(5).
Cardelli, Luca, "The Amber Machine", Proceedings of the Thirteenth Spring School of the LITP, May 6-10 1985, pp. 48-70.
"A PostScript backgrounder", Seybold Report on Desktop Publishing, vol. 5, No. 7, Mar. 4, 1991, p. 9(1).
Guttman, J. D., et al. "The VLISP Verified Scheme System", LISP and Symbolic Computation, vol. 8, No. 1-2, Mar. 1995, pp. 33-110.
Strom, Robert E., et al., "NIL: An Integrated Language and System for Distributed Programming", SigPlan 18th Symposium on Programming Language Issues in Software Systems, Jun. 1983, pp. 73-82.
Strom, Robert E., et al., "Hermes: A Language for Distributed Computing", Prentice Hall, 1991, pp. 67-71, 109-123.
Yellin, Dan; Rob Strom; Richard Gabriel, "Do Programmers Need Seat Belts?", ACM SIGPLAN Debates (1996), pp. 5-10.
Auerbach, J.S., et al., "High-Level Language Support for Programming Distributed Systems", 1992, IEEE, IBM T.J. Watson Research Center, pp. 320-330.
Korfhage, Willard, et al., "Hermes Language Experiences", Software-Practice and Experience, vol. 25, No. 4, Apr. 1995, pp. 389-402.
Sun Microsystems Inc.
Toplu Lucien U.
LandOfFree
System and method for pre-verification of stack usage in bytecod does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with System and method for pre-verification of stack usage in bytecod, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for pre-verification of stack usage in bytecod will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2076820