SuperPascal - a publication language for parallel scientific computing

Parallel computers will not become widely used until scientists and engineers adopt a common programming language for publication of parallel scientific algorithms. This paper describes the publication language SuperPascal by examples. SuperPascal extends Pascal with deterministic statements for parallel processes and synchronous message communication. The language permits unrestricted combinations of recursive procedures and parallel statements. SuperPascal omits ambiguous and insecure features of Pascal. Restrictions on the use of variables enable a single-pass compiler to check that parallel processes are disjoint, even if the processes use procedures with global variables. A portable implementation of SuperPascal has been developed on a Sun workstation under Unix.

[1]  J. L. C. Sanz Opportunities and Constraints of Parallel Computing , 1989, Springer US.

[2]  Per Brinch Hansen Brinch Hansen on Pascal Compilers , 1985 .

[3]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[4]  John F. Wakerly,et al.  The programming language PASCAL , 1979, Microprocessors and microsystems.

[5]  Per Brinch Hansen,et al.  Parallel cellular automata: A model program for computational science , 1993, Concurr. Pract. Exp..

[6]  Per Brinch Hansen,et al.  Model programs for computational science: A programming methodology for multicomputers , 1993, Concurr. Pract. Exp..

[7]  Michael A. Arbib,et al.  The Design of Well-Structured and Correct Programs , 1978, Texts and Monographs in Computer Science.

[8]  S. G. van der Meulen,et al.  ALGOL 68 might-have-beens , 1977, Strathclyde ALGOL 68 Conference.

[9]  Daniel P. Miranker,et al.  On Parallel Divide-and-Conquer , 1991 .

[10]  H. Kilov Structured system programming , 1985, Proceedings of the IEEE.

[11]  Charles Antony Richard Hoare,et al.  Scientific applications of multiprocessors , 1988 .

[12]  C. A. R. Hoare,et al.  Procedures and parameters: An axiomatic approach , 1971, Symposium on Semantics of Algorithmic Languages.

[13]  Per Brinch Hansen The programming language superpascal , 1994, Softw. Pract. Exp..

[14]  Niklaus Wirth,et al.  Systematic Programming: An Introduction , 1974 .

[15]  Inmos Limited,et al.  OCCAM 2 reference manual , 1988 .

[16]  Charles B. Dunham The Necessity of Publishing Programs , 1982, Comput. J..

[17]  M. Rabin Probabilistic algorithm for testing primality , 1980 .

[18]  Alan J. Perlis A new policy for algorithms? , 1966, CACM.

[19]  J. J. Horning,et al.  Report on the programming language Euclid , 1977, SIGP.

[20]  Per Brinch Hansen Parallel Monte Carlo Trials , 1992 .

[21]  W. F. Burger,et al.  Gypsy: A language for specification and implementation of verifiable programs , 1977, Language Design for Reliable Software.

[22]  Per Brinch Hansen,et al.  The N-Body Pipeline , 1991 .

[23]  Per Brinch Hansen,et al.  Joyce—A programming language for distributed systems , 1987, Softw. Pract. Exp..

[24]  Per Brinch Hansen,et al.  Operating System Principles , 1973 .

[25]  Per Brinch Hansen Interference Control in SuperPascal - A Block-Structured Parallel Language , 1994, Comput. J..

[26]  Leonard M. Adleman,et al.  Primality Testing , 1981, CRYPTO.