Patent
1994-04-21
1997-07-01
Beausoliel, Jr., Robert W.
39518508, 395411, 395481, G06F 1100
Patent
active
056447094
ABSTRACT:
A method for detecting memory access errors which occur while executing a computer program. Spatial and temporal attributes are provided for a data object and these attributes are associated with each pointer to that data object. On a dereference to a pointer, a memory access check is performed which determines (a) whether the dereference falls outside the address range within which valid accesses may be made to the data object, and (b) whether the dereference falls outside the time period within which valid accesses may be made to the data object. If the dereference falls outside the valid address range, a spatial error is flagged. If the dereference falls outside the valid time period, a temporal error is flagged. In addition, a method is described for converting a preexisting source-language program file into a safe program and a method is described for optimizing memory-access checks.
REFERENCES:
patent: 4903194 (1990-02-01), Houdek et al.
patent: 5193180 (1993-03-01), Hastings
patent: 5335344 (1994-08-01), Hastings
patent: 5388254 (1995-02-01), Betz et al.
Austin et al., "Efficient Detection of All Pointer and Array Access Errors", Sigplan 94, vol. 29, No.5, pp.290-301. Jun. 1994.
Andrew Ginter, "Design Alternatives for a Cooperative Garbage Collector for the C++ Programming Language," Research Report No. 91/417/1, Department of Computer Science, University of Calgary, Jan. 1991.
A.V. Aho, et al. Compilers: Principles, Techniques and Tools, Sec. 5.4, pp. 296-297, Addison-Wesley, Reading, MA 1986.
Jonathan M. Asuru, "Optimization of Array Subscript Range Checks," pp. 109-118, ACM Letters on Programming Languages and Systems, Jun., 1992.
Bowen Alpern, et al., "Detecting Equality of Variables in Programs," In Conference Record of the 15th Annual ACM Symposium on Principles of Programming Languages, pp. 1-11, San Diego, CA, Jan. 1988.
Hans-Juergen Boehm, "Space Efficient Conservation Garbage Collection," Proceedings of the ACM SIGPLAN '93 Conference on Programming Language Design and Implementation, 28(6):197-204, Jun., 1993.
Hans-Juergen Boehm, et al., "Garbage Collection in an Uncooperative Environment" Software-Pracitce and Experience, 18(9):807-820, Sep., 1988.
MIPS Computer Corporation. MIPS Fortrann 77 Compiler (f77) User's Guide, 1987.
John R. Ellis, et al. "Safe, Efficient Garbage Collection for C++," Report 102, DEC Systems Research Center, Jun., 1993.
D.R. Edelson, et al. "Smart Pointers: They're Smart, but They're Not Pointers," Proceedings of the 1991 Usenix C+ Conference, Apr., 1991.
Anthony J. Field, et al., "Memoization," Functional Programming, Chapter 19, pp. 505-506, Addison-Wesley Publishing Company, 1988.
Charles N. Fischer, et al., "The Implementation of Run-Time Diagnostics in Pascal," IEEE Transactions on Software Engineering, SE-6(4):313-319, 1980.
Andrew Ginter, Abstract, "Design Alternatives for a Cooperative Garbage Collector for the C++ Programming Language," Technical Report 91/417/01, Dept. of Computer Science, University of Calgary, 1992.
Rajiv Gupta, "A Fresh Look at Optimization Array Bound Checking," Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pp. 272-282, Jun., 1990.
William H. Harrison, "Compiler Analysis of the Value Ranges for Variables," IEEE Transactions on Software Engineering, 3:(3):243-250, 1977.
Reed Hastings, et al. "Purify:Fast Detection of Memory Leaks and Access Errors," Proceedings of the Winter Usenix Conference, 1992.
Stephen Kaufer, et al., "Saber-C: An Interpreter-based Programming Environment for the C Language," Proceedings of the Summer Usenix Conference, pp.161-171, 1988.
James R. Larus, "Efficient Program Tracing," IEEE Computer, 26(5):52-61, May, 1993.
Peter A. Steenkiste, "The Impliementation of Tags and Run-Time Checking," Topics in Advanced Language Implementation, The MIT Press, Cambridge, MA 1991.
Barton P. Miller, et al., "An Empirical Study of the Reliability of UNIX Utilities," Communications of the ACM, 33(12):32-44, Dec., 1990.
Graham Ross, "Integral C--A Practical Environment for C Programming," Proceedings of the ACM SIG-Sof/SIGPLAN Software Engineering Symposium on Practical Software Development Environments(SIGPLAN Notices), pp. 42-48, Association for Computing Machinery, Jan., 1987.
Barry K. Rosen, et al., "Global Value Numbers and Redundant Computations," Conference Record of the 15th Annual ACM Symposium on Practical Software Development Environments (SIGPLAN Notices), pp. 12-27, San Diego, CA, Jan. 1988.
Mark Sullivan, et al., "Software Defects and Their Impact on System Availability--A Study of Field Failures in Operating Systems," Digest of the 21st International Symposium on Fault Tolerant Computing, pp. 2-9, Jun. 1991.
Joseph L. Steffen, "Adding Run-time Checking to the Portable C Compiler," Software--Practice and Experience, 22(4):305-316, 1992.
Benjamin Zorn, et al., "A Memory Allocation Profile for C and Lisp Programs," Proceedings of the Summer Usenix Conference, pp. 223-237, 1988.
Samuel C. Kendall, "Bcc: Runtime Checking for C Programs," USENIX Software Tools.
Beausoliel, Jr. Robert W.
Palys Joseph E.
Wisconsin Alumni Research Foundation
LandOfFree
Method for detecting computer memory access errors does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Method for detecting computer memory access errors, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method for detecting computer memory access errors will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-605035