Browse Prior Art Database

Conversion of overlapping stack operators to flattened form using a prioritized queue.

IP.com Disclosure Number: IPCOM000014922D
Original Publication Date: 2001-Nov-08
Included in the Prior Art Database: 2003-Jun-20
Document File: 4 page(s) / 53K

Publishing Venue

IBM

Abstract

Conversion of overlapping stack operators to flattened form using a prioritized queue. FIELD: This invention provides a method for translating a layered series of scope statements descriped by operators into a form containing no operators. The advantage of using the invention is that it creates a more efficient search form as well as in some cases a more compact form of data needed to represent a time-varying field. BACKGROUND:

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 56% of the total text.

Page 1 of 4

  Conversion of overlapping stack operators to flattened form using a prioritized queue.

  Conversion of overlapping stack operators to flattened form using a prioritized queue.

FIELD:

This invention provides a method for translating a layered series of scope statements descriped by operators into a form containing no operators. The advantage of using the invention is that it creates a more efficient search form as well as in some cases a more compact form of data needed to represent a time-varying field.

BACKGROUND:

In assembler language programming a USING instruction allows the assembler programmer to specify a base register for a set of variables defined within a specific region of the program. These USING instructions can be combined with PUSH, POP, and DROP instructions to specify a variety of base registers across the life of a program. A USING instruction indicates a start point. A DROP instruction indicates an end point. A PUSH instruction indicates the creation of a duplicate copy of the current state on the stack. A POP instruction indicates destruction of the current stack frame. This form provides a very flexible method for the programmer to operate, however, this form requires significant calculations to be performed to retrieve a value at a specific instance within the program. This type of calculation would need to be performed if a debugger were used to determine the value of the variable at that specific instance.

DESCRIPTION:

In order to simplify the calculations necessary to determine the value of a variable at a specific execution point within an assembler program, the USING instructions (USING, PUSH, POP, DROP) are converted to a series of addresses and values. These addresses and values are set up in such a way that a debugger can most quickly traverse the records and determine the value of the variable. An example of such a record set would be similar to the following:

0 - 10 : register 5 + 2 10-20 : register 6 + 3 20-30 : out of scope 30-45 : register 7 + 1

This way, a debugger can traverse the records in general sequential order, as the execution point tends to flow forward. This allows the debugger to retrieve the location in the most efficient manner.

Here is a generic case (without stack operators) in a picture form: The left i...