PPL(ID:7383/ppl003)

portable systems language 


for Portable Programming Language

System independent systems language from Bath UK


References:
  • Wallis, Peter J. L. "The Design of a Portable Programming Language" pp157-167 view details
          in Acta Informatica 10(2) September 7, 1978 view details
  • Berry, D. M. review of Wallis 1978 view details Abstract: This paper considers "the design of a strongly-typed language," PPL (Portable Programming Language), "with user-defined types in which it is arranged that, given that a type is available, it is immaterial to the user whether it is a user-defined type or one of the 'primitive' types with representations selected by the implementor." The author proposes to define those types (e.g., integer and real) whose choice of representations can impact the user of the type (e.g., in precision) with an abstract type-defining module similar to the CLU cluster. The cluster of the proposed PPL defines and hides a representation, a literal conversion routine, the operators, and the procedures of a type. Supposedly, to port the language to another machine and/or system, it suffices to change only the innards of the clusters defining the "primitive" types.

    The paper discusses the language design issues of the choice of the "primitive" types, and of interfacing defined types with the underlying vector indexing type. It also discusses the responsibilities of the implementor in planning a new implementation.

    While the paper reads well, it glosses over an issue which seems to impact on the ability of the proposed PPL to meet the stated goal of making it immaterial to the user whether a given type is user-defined or "primitive," namely, the issue of literals. The literate of a cluster-defined type must be enclosed in apostrophes and preceded by the type name. The examples show that this is not the case for integers, which makes a clear distinction between the integer type and other cluster-defined types. This whole issue is fudged over--Footnote 2 actually should be part of the text since it amounts to an admission of this problem in achieving the stated goal. Also, are we to understand from the discussion of primitive literals in Section 5 that each integer literal is defined explicitly in the integer cluster?

    Despite this, the paper is useful, since it does expose the problems standing in the way of achieving its stated portability goals.


          in ACM Computing Reviews 21(03) March 1980 view details