Home
  • Deutsch (DE-CH-AT)
  • English (United Kingdom)
  • Japanese(JP)
SML@b MACROPLUS PDF Print

ban_collage

The general Macro generator Plus processor evaluation (MACROPLUS) was developed by Reiner Dumke 1988 (Dumke: Makropogrammierung, Diss. B (Habilitationsschrift), University of Magdeburg, 1989). MACROPLUS combines the SUPERMAC principle of Peter Brown (Cambridge Uniervsity) that allows to extend any programming languages with macro facilities requires only string execution functions and separate file generation (like a preprocessor). The general software processor description was extended by the evaluation for the implementation effort (I), usability (U) and maintenance effort (M) as following

macro01

where LI describes the language input, {L} characterizes the selectable basic/output languages and LI the implementation language. The basic four MACROPLUS principles are described as following:

  • Goal 1: as basic macro technology was  chosen the SUPERMAC approach of Peter Brown that describes the essential functions for (macro based) string handling as following
supermac01

  • Goal 2: the SUPERMAC function as described above was extend by the further function pma and gnr in order to allow distributed macro calls like mname ( par1 del par2 del . . . parn ),

  • Goal 3: in order to keep an implementation of a general (PL/1) macro definition the tools of textual/string analysis and macro generation was implemented (see the DORIS tool set in our SML@b list),

  • Goal 4: in order to keep high quality implementations, the Higher Order Software (HOS) was used (see the HOS description in our SML@b list).

 

The general HOS architectures of MACROPLUS are given in the following figures.

macro06

 

with the following sub architectures described in HOS also

macro08

 

macro09

The SUPERMAC functions (SPM) as general macro generation shows the following figure

 

macro14

where means gnr - number generation, mstr - string output in macro file, pma(i) - determines the ith parameter part of syntactical macros, mna - determines the actual number of parameters and arg(j) - returns the jth parameter.

 

The MACROPLUS was implemented in any prototypes like Turbo Pascal and COBOL. The following evaluations of these solutions could be established.

 

macro10

macro11

macro12

macro13

Note, that the MACROPLUS can be simply applied to C++ and the interpreter-based languages like Java, C#, Perl etc.

 

kugel

Last Updated on Thursday, 24 January 2013 12:51