Swym(ID:3762/SWY002)


Development of Ross' AED/APT universal data structure


People:
Related languages
AED String Package => Swym   Extension of
APT III => Swym   Extension of

References:
  • Hansen, W. J. "The Impact of Storage Management on Plex Processing Language Implementation," CS113, Comp. Sci. Dept., Stanford Univ., Jul 1969. (NTIS# PB188705) view details Abstract: A plex processing system is implemented within a set of environments whose relationships are vital to the system''s time/space efficiency: Data Environment
    Stack Structures
    Data Structures
    Subroutine Environment
    Routine Linkage
    Variable Binding
    Storage Management Environment
    Memory Organization for Allocation Storage Control

    This paper discusses these environments and their relationships in detail. For each environment there is some discussion of alternative implementation techniques, the dependence of the implementation on the hardware, and the dependence of the environment on the language design. In particular, two language features are shown to affect substantially the environment design: variable length plexes and "release" of active plexes. Storage management is complicated by the requirement for variable length plexes, but they can substantially reduce memory requirements. If inactive plexes are released, a garbage collector can be avoided; but considerable tedious programming may be required to maintain the status of each plex. Many plex processing systems store numbers in strange formats and compile arithmetic operations as subroutine calls, thus handicapping the computer on the only operations it does well. Careful coordination of the system environments can permit direct numeric computation, that is, a single instruction for each arithmetic operation. This paper considers with each environment, the requirements for direct numeric computation. To explore the techniques discussed, a collection of environments called Swym was implemented. This system permits variable length plexes and compact lists. The latter is a list representation requiring less space than chained lists because pointers to the elements are stored in consecutive words. In Swym, a list can be partly compact and partly chained. The garbage collector converts chained lists into compact lists when possible. Swym has careful provision for direct numeric computation, but no compiler has been built. To illustrate Swym, an interpreter was implemented for a small language similar to LISP 1.5. Details of Swym and the langauge are in a series of appendices.
  • Hansen, Wilfred J. "Compact list representation: definition, garbage collection, and system implementation" pp499-507 view details Abstract: Compact lists are stored sequentially in memory, rather than chained with pointers. Since this is not always convenient, the Swym system permits a list to be chained, compact, or any combination of the two. A description is given of that list representation and the operators implemented (most are similar to those of LISP 1.5). The system garbage collector attempts to make all lists compact; it relocates and rearranges all of list storage using temporary storage. This unique list-compacting garbage collection algorithm is presented in detail. Several classes of the macros used to implement the system are described. Finally, consideration is given to those design factors essential to the success of a plex processing system implementation. DOI
          in [ACM] CACM 12(09) (September 1969) view details