Electrical computers and digital processing systems: memory – Storage accessing and control – Hierarchical memories
Reexamination Certificate
2002-06-04
2004-08-03
Kim, Matthew (Department: 2186)
Electrical computers and digital processing systems: memory
Storage accessing and control
Hierarchical memories
C711S170000
Reexamination Certificate
active
06772292
ABSTRACT:
CROSS-REFERENCE TO RELATED APPLICATIONS
Not Applicable
BACKGROUND
1. Field of Invention
The present invention relates generally to a compiler that uses stack-based memory.
2. Description of Prior Art
Currently compilers used in computer programs for high-level language compilation use a stack structure for storing registers, parameters, and local variables. The data is always kept in fixed size memory for local variables. There exist computer systems, which have multi-stack memory architectures where local variables and registers are placed in two different stacks, as in U.S. Pat. No. 6,138,210 (2000). These fixed size local variable and register areas however, do not allow for the creation of run-time variables in the stack. Existing compilers create run-time variables in separate memory locations that are referred to as the heap, as is found in the C++ language compiler.
If the size of the local variable area is known at the moment when a subprogram is to be called, the area can be created in the stack as described by Fischer and LeBlanc in “Crafting a Compiler with C”, Benjamin/Cummings Publishing Co. Inc., 1991, pp. 289-292, Redwood City, Calif., ISBN 0-8053-2166-7. However at execution time a function cannot create any additional area in the stack and the necessity of the heap remains.
Having two different locations for local variables allocated during compilation and at run-time creates additional complexities in high-level languages. This is especially true for object-oriented programming languages where large numbers of run-time variables are created. As run time variables are deleted fragmentation of the heap can occur.
SUMMARY
Accordingly, the present invention provides a mechanism to change the stack area that is given for local variables so that both compile time and run time local variables can be created in the stack. This was considered an insoluble problem. It also becomes possible to delete compile time created variables at run time. This problem had not been recognized in the prior art.
As a consequence the use of the heap is no longer necessary and fragmentation no longer occurs.
REFERENCES:
patent: 6453466 (2002-09-01), Eidt
patent: 6532531 (2003-03-01), O'Connor et al.
patent: 2002/0083416 (2002-06-01), Click et al.
Bassen Gordon Stuart
Garber Isaak
Kim Matthew
Thomas Shane M
LandOfFree
Two area stack does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Two area stack, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Two area stack will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3298779