Browse Prior Art Database

Method for Data Reinitialization in Languages Supporting Data Refresh

IP.com Disclosure Number: IPCOM000115975D
Original Publication Date: 1995-Jul-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 58K

Publishing Venue

IBM

Related People

Kleon, GC: AUTHOR

Abstract

The output streams of a frontend compiler for languages supporting program nesting and data reinitialization are organized to simplify generated code and optimize runtime performance.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 55% of the total text.

Method for Data Reinitialization in Languages Supporting Data Refresh

      The output streams of a frontend compiler for languages
supporting program nesting and data reinitialization are organized to
simplify generated code and optimize runtime performance.

The process involves the steps of:
  o  identifying which fields (identifiers) require some form of
      reinitialization.
  o  grouping Wcode SYMs for these fields in a manner which reflects
      their hierarchical order in the (possibly nested) program(s)
      being compiled.
  o  generating DATA Wcodes against the above SYMs as normal.
  o  generating a "dummy" set of SYMs which mimic the "real" SYMs
      above.  These "dummy" SYMs will reflect any program nesting
shown
      by the "real" SYMs.
  o  arranging the "body" stream initialization code to contain a
    single LOD and STR Wcode sequence which makes a copy of the
    storage defined by the "real" SYMs into the storage defined by
    the "dummy" SYMs.

With "header" and "initialization" streams (containing the SYM and
DATA Wcodes respectively) generated as described above,
initialization
of all storage, a nested program's storage (along with the storage of
subordinate program(s) storage) or individual fields is accomplished
with a single LOD and STR Wcode sequence.

      In greater detail, the above solution requires the following
Wcode sequences to be passed to the backend in the header and
local/init streams:
  o  SYMs referenced in Body Stream
     SYM id=x0 dt=DT_AGGR /* level 0 & subordinate initialized SYMs
*/
       SYM
       .
       . syms for initialized static of nested level 0 program
       .
       SYM
  SYM id=x1 dt=DT_AGGR /* level...