MACRO(ID:857/mac016)


PL/I-like language with extensions for string processing.

SPERRY UNIVAC


Structures:
Related languages
PL/I => MACRO   Based on

References:
  • Greenwood, S.R. "MACRO: A Programming Language" view details Abstract: MACRO Is a programming language for performing string manipulation. It is unique among string manipulation languages in that MACRO is a procedural language whose form is much like PL/I. In addition to the standard procedures found in PL/I, the MACRO language defines another procedure-like object called a macro. Macros are the basis o.' the picture matching facility in the language.

    A large segment of the programming community uses procedure oriented
    languages such as ALGOL, FORTRAN, PASCAL and PL/I. Consequently, it is extremely reasonable to build a string manipulating language around the constructs found in these languages. Traditional string manipulation languages such as SNOBOL, COMIT and LISP have not chosen this course. COMIT and LISP differ radically from the aforementioned languages in both format and flow of control. SNOBOL is more of an outgrowth of languages like ALGOL and FORTRAN. The string manipulation features are, however, integrated at the statement level. Thus, the string manipulation facilities affect assignment statements and flow of control within the language. MACRO, on the other hand, represents the addition of pattern matching to a conventional procedure oriented language without altering the existing statements of that language. Therefore, although MACRO itself is only used by a small community, it points the way to adding string manipulation features to the languages in common use today.

    History dictated much of the form of MACRO.   Many aspects of the
    the language were originally conceived in a 1970 SHARE proposal designed to supplant the existing preprocessing facility in IBM's PL/I. The proposal's intent according to its authors was '... to permit the development of short hand notations to ease the burden of the application programmer. The proposal contained three primary goals. First, macros could be defined to extend the syntax of the PL/I language. Second, macro preprocessing could be used to transform a special purpose language based on the semantics of PL/I to PL/I. The final goal was to provide program generation features. By the use of appropriate macros, alternative sets of statements could be compiled. The original proposal seems to have (net an untimely end as the macro facility has not appeared in any of the IBM PL/I compilers.

    Some years lator a group working on the PL/I project at Sperry Univac recognized a need for a source preprocessing capability in the PL/I compiler which was under development at that time. Standard PL/I by itself provided no such facility. This group had an increasing number of requests for a macro facility in PL/I and also a need to translate IBM PL/I programs to ones that conformed to the new standard. The SHARE proposal was used as a starting point in designing such a processor Many of the concepts in the new MACRO language stem directly from this proposal. Major modifications, however, were made to remove the language's PL/I dependencies and improve its efficiency The resultant language is the topic of this paper. It represents a general string manipulation facility equally capable of supporting preprocessing requirements for many languages or being used in a stand alone mode for general text processing.
          in SIGPLAN Notices 14(09) Sep 1979 view details
  • Soong, Norman L. "An overview of an organized industrial research and development activity for language and language processors" pp62-63 view details DOI Abstract: A collection of papers is presented in this issue of SIGPLAN Notices to offer to the reader a glimpse of the research and development environment for language and language processors by a computing machine manufacturer. The research and development activities are directed by colttpany policies and marketing strategies, therefore it represents a different viewpoint from these activities under a different environment, such as in the universities. This collection serves to present a view of orqanized language and language processor developments as marketina-driven activities. To keep this collection sufficiently interesting to SIGPLAN Notices readers, the activities involving standard language and language processor developments are not included, such as FORTRAN, COBOL activities.
    The size of a company plays a crucial role in this type of effort. If it is a large company, in both physical and budgetary sense, then it becomes unfair to consider its efforts as industry representative due to its unrealistically immense monetary power. On the other hand, if it is a small company, then its futuristic outlook of language and language processors may be conjectured at best as speculative. It has been said in the past that a company must amass certain critical mass, or critical budget size, before it becomes feasible to undertake meaningful research and development activities, however limited scope it is. The size of Univac is considered appropriate that a proper representation on the subject of language and language processor can be made and be considered.as an industrial representative effort.
    This collection is broken into four parts, characterizing the major research and development efforts for language and language processors at Sperry Univac. Each part consists of multiple papers written by its key development people. All the systems described here are available now or in the near future.
          in SIGPLAN Notices 14(12) December 1979 view details