SuperPascal: A Publication Language for Parallel Scientific Computing

  • Per Brinch Hansen


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.


Model Program Parallel Statement Parallel Process Global Variable Publication Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Aho, A.V., Hoperoft, J.E., and Ullman, J.D. 1983. Data Structures and Algorithms. Addison-Wesley, Reading, MA.zbMATHGoogle Scholar
  2. Alagić, S., and Arbib, M.A. 1978. The Design of Well-Structured and Correct Programs. Springer-Verlag, New York.CrossRefzbMATHGoogle Scholar
  3. Ambler, A.L., Good, D.I., Browne, J.C., Burger, W.F., Cohen, R.M., and Wells, R.E. 1977. Gypsy: a language for specification and implementation of verifiable programs. ACM SIGPLAN Notices 12, 2, 1–10.CrossRefGoogle Scholar
  4. Brinch Hansen, P. 1973. Operating System Principles. Prentice-Hall, Englewood Cliffs, NJ.zbMATHGoogle Scholar
  5. Brinch Hansen, P. 1985. Brinch Hansen on Pascal Compilers. Prentice-Hall, Englewood Cliffs, NJ.Google Scholar
  6. Brinch Hansen, P. 1987. Joyce—A programming language for distributed systems. Software Practice and Experience 17, 1 (January), 29–50.CrossRefzbMATHGoogle Scholar
  7. Brinch Hansen, P. 1991a. Parallel divide and conquer. School of Computer and Information Science, Syracuse University, Syracuse, NY.Google Scholar
  8. Brinch Hansen, P. 1991b. The n-body pipeline. School of Computer and Information Science, Syracuse University, Syracuse, NY.Google Scholar
  9. Brinch Hansen, P. 1992a. Primality testing. School of Computer and Information Science, Syracuse University, Syracuse, NY.Google Scholar
  10. Brinch Hansen, P. 1992b. Parallel Monte Carlo trials. School of Computer and Information Science, Syracuse University, Syracuse, NY.Google Scholar
  11. Brinch Hansen, P. 1993a. Model programs for computational science: A programming methodology for multicomputers. Concurrency—Practice and Experience 5, 5 (August), 407–423.CrossRefGoogle Scholar
  12. Brinch Hansen, P. 1993b. Parallel cellular automata: A model program for computational science. Concurrency—Practice and Experience 5, 5(August) 425–448.CrossRefGoogle Scholar
  13. Brinch Hansen, P. 1994a. The programming language SuperPascal. Software—Practice and Experience 24, 5 (May), 467–483.CrossRefGoogle Scholar
  14. Brinch Hansen, P. 1994b. Interference control in SuperPascal A block-structured parallel language. Computer Journal 37, 5, 399–406.CrossRefGoogle Scholar
  15. Dijkstra, E.W. 1968. Cooperating sequential processes. In Programming Languages, F. Genuys, Ed. Academic Press, New York, 43–112.Google Scholar
  16. Dunham, C.B. 1982. The necessity of publishing programs. Computer Journal 25, 1, 61–62.MathSciNetCrossRefGoogle Scholar
  17. Forsythe, G.E. 1966. Algorithms for scientific computing. Communications of the ACM 9, 4 (April), 255–256.CrossRefGoogle Scholar
  18. Hoare, C.A.R. 1971. Procedures and parameters: an axiomatic approach. Lecture Notes in Mathematics 188, 102–171.Google Scholar
  19. Hoare, C.A.R. 1972. Towards a theory of parallel programming. In Operating Systems Techniques, C.A.R. Hoare and R.H. Perrott, Eds. Academic Press, New York, 61–71.Google Scholar
  20. Hoare, C.A.R. 1985. Communicating Sequential Processes. Prentice Hall, Englewood Cliffs, NJ.zbMATHGoogle Scholar
  21. IEEE 1983. IEEE Standard Pascal Computer Programming Language, Institute of Electrical and Electronics Engineers, New York.Google Scholar
  22. Inmos, Ltd. 1988. occam 2 Reference Manual, Prentice Hall, Englewood Cliffs, NJ.Google Scholar
  23. Kerridge, J. 1993. Using occam3 to build large parallel systems: Part 1, occam3 features. Transputer Communications 1 (to appear).Google Scholar
  24. Lampson, B.W., Horning, J.J., London, R.L., Mitchell, J.G., and Popek, G.J. 1977. Report on the programming language Euclid. ACM SIGPLAN Notices 12, 2 (February).Google Scholar
  25. McDonald, N. 1991. Meiko Scientific, Ltd. In Past, Present, Parallel: A Survey of Available Parallel Computing Systems, A. Trew and G. Wilson, Eds. Springer-Verlag, New York, 165–175.Google Scholar
  26. May, D. 1989. Discussion. In Scientific Applications of Multiprocessors, R. Elliott and C.A.R. Hoare, Eds. Prentice-Hall, Englewood Cliffs, NJ, 54.Google Scholar
  27. Perlis, A.J. 1966. A new policy for algorithms? Communications of the ACM 9, 4 (April), 255.CrossRefGoogle Scholar
  28. Rabin, M.O. 1980. Probabilistic algorithms for testing primality. Journal of Number Theory 12, 128–138.MathSciNetCrossRefzbMATHGoogle Scholar
  29. Sanz, J.L.C., Ed. 1989. Opportunities and Constraints of Parallel Computing, SpringerVerlag, New York.zbMATHGoogle Scholar
  30. Tennent, R.D. 1981. Principles of Programming Languages, Prentice-Hall, Englewood Cliffs, NJ.zbMATHGoogle Scholar
  31. Welsh, J., and McKeag, M. 1980. Structured System Programming, Prentice-Hall, Englewood Cliffs, NJ.zbMATHGoogle Scholar
  32. Wirth, N. 1971. The programming language Pascal. Acta Informatica 1, 35–63.CrossRefzbMATHGoogle Scholar
  33. Wirth, N. 1973. Systematic Programming: An Introduction. Prentice-Hall, Englewood Cliffs, NJ.Google Scholar

Copyright information

© Springer Fachmedien Wiesbaden 1994

Authors and Affiliations

  • Per Brinch Hansen

There are no affiliations available

Personalised recommendations