PREDULA(ID:5186/pre003)

Data-parallel Pascal 


for PaRallel EDUcational LAnguage

Data-parallel language Pascal (ie capable of parallel action on data as is the case with APL)

Ringstrom et al Linkoping University, Sweden 1991



Related languages
APL => PREDULA   Influence
Pascal (ISO) => PREDULA   Extension of
VCODE => PREDULA   Target language for
PREDULA => Predula Nouveau   Evolution of

References:
  • Ringstrom, J. "Predula: a multi-paradigm parallel programming environment" Linkoping, Sweden: Department of Computer and Information Science, Linkoping University, November 1990 view details
  • Johan Ringstrom, Peter Fritzson, Johan Fagerstrom. "Predula, A Multiparadigm ParallelProgramming and Debugging Environment" view details
          in Proceedings of EUROMICRO'91 conference in Vienna, IEEE Sep 1991 view details
  • Brinch Hansen, Per "Monitors and concurrent Pascal: a personal history" pp1-35 view details
          in [ACM SIGPLAN] SIGPLAN Notices 28(03) March 1993 The second ACM SIGPLAN conference on History of programming languages (HOPL II) view details
  • Ringstrom, Johan "Compiler Generation for Parallel Languages from Denotational Definitions" Licentiate thesis, spring 1993. Thesis No. 380. view details External link: Online copy Abstract: This thesis is an empirical study of compiler generation for data-parallel languages from denotational-semantics-based formal specifications. We investigate whether compiler generation from such specifications is practical, not only with respect to generation of practical compilers, but also with respect to compilation of programs into efficient code and execution of the compiled programs on massively parallel SIMD (Single Instruction Multiple Data) architectures. Efficient compilers has been generated for Predula Nouveau, a small Pascal-like data-parallel language with embedded data-parallel primitives. To demonstrate the practicality and generality of the approach, experimental studies have been made for two SIMD target architectures. Compilers can currently be generated which emit code for the MasPar MP-1, which is an architecture for large multi-user'systems, and the RVIP, which is an architecture for embedded systems. Performance studies have been made on the compiler generator system, the compilers it generates, and in particular the code generated from these compilers.

    Compiler generation systems are becoming increasingly common. Most such systems use attribute grammars as specification formalism, but systems exist which use other types of formalisms. However, few systems use denotational semantics based formalisms. Furthermore, these systems generate compilers for sequential programming languages. Compiler generator systems for parallel, and in particular data-parallel languages, are very rare. Thus, this work is one of the first case studies of generation of efficient compilers for such languages.

    The formal semantics specification approach uses two abstraction levels. The higher level uses denotational semantics, including a set of auxiliary data-parallel functions. These functions serve as an intermediate form which defines the interface to and is exported from the low-level specification. Internally, this lower level uses several specification methods, where a target-architecture-specific part uses methods which may vary between different architectures. The architecture-independent part of the lower level uses a fixed operational semantics based specification in the form of a general internal representation which includes data-parallel operations
          in [ACM SIGPLAN] SIGPLAN Notices 28(03) March 1993 The second ACM SIGPLAN conference on History of programming languages (HOPL II) view details
  • Ringstrom, Johan; Fritzson, Peter; and Mikael Pettersson "Generating an Efficient Compiler for a Data ParallelLanguage from a Denotational Specification" view details Abstract: There are very few examples of the generation of efficient compilers fromdenotational specifications. Usually such compilers generate code which is orders of magnitude slower than from hand-written ones. However, as has been demonstratedby our DML (Denotational Meta Language) compiler generation system, through appropriate single-threading analysis it is possible to obtain code of comparablequality to hand-written compilers. Another problem with denotational specifications is, because of their denotational nature, the need to introduce complicated powerdomains to model non-determinism and parallelism. In this work we have used a more practical two-level approach: use denotational specifications to model the meaning ofthe source language in terms of an abstract machine of low-level operations, including data-parallel operations. Then use operational semantics for the specification of thisabstract machine. This paper reports experience from building a prototype compiler for a small Algol-like parallel language using a version of the DML system called DML-P, which has been extended to support data-parallel operations. The final code contains calls to aportable data-parallel vector code library (VCODE CVL). The speed of generated compilers are within a factor of three from handwritten ones. Extensive benchmarksof a DML-P generated compiler are presented. Extract: Introduction
    First we briefly describe data parallel languages using a Predula Nouveau example,which is the subject language in this report. Then follows a brief introduction to denotational semantics including some excerpts of the Predula Nouveau denotational specification, afterwhich we discuss two target data-parallel abstract machines. We continue by giving a description of the implementation of the DML-P compiler generator and the CPS-graphmodule. This graph is the internal representation for compiled programs. Finally we present benchmarks for generated compilers followed by conclusions and future work.
          in [ACM SIGPLAN] SIGPLAN Notices 28(03) March 1993 The second ACM SIGPLAN conference on History of programming languages (HOPL II) view details