Skip to main content

SuperPascal: A Publication Language for Parallel Scientific Computing

  • Chapter
The Origin of Concurrent Programming
  • 591 Accesses

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 139.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Aho, A.V., Hoperoft, J.E., and Ullman, J.D. 1983. Data Structures and Algorithms. Addison-Wesley, Reading, MA.

    MATH  Google Scholar 

  • Alagić, S., and Arbib, M.A. 1978. The Design of Well-Structured and Correct Programs. Springer-Verlag, New York.

    Book  MATH  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Brinch Hansen, P. 1973. Operating System Principles. Prentice-Hall, Englewood Cliffs, NJ.

    MATH  Google Scholar 

  • Brinch Hansen, P. 1985. Brinch Hansen on Pascal Compilers. Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Brinch Hansen, P. 1987. Joyce—A programming language for distributed systems. Software Practice and Experience 17, 1 (January), 29–50.

    Article  MATH  Google Scholar 

  • Brinch Hansen, P. 1991a. Parallel divide and conquer. School of Computer and Information Science, Syracuse University, Syracuse, NY.

    Google Scholar 

  • Brinch Hansen, P. 1991b. The n-body pipeline. School of Computer and Information Science, Syracuse University, Syracuse, NY.

    Google Scholar 

  • Brinch Hansen, P. 1992a. Primality testing. School of Computer and Information Science, Syracuse University, Syracuse, NY.

    Google Scholar 

  • Brinch Hansen, P. 1992b. Parallel Monte Carlo trials. School of Computer and Information Science, Syracuse University, Syracuse, NY.

    Google Scholar 

  • Brinch Hansen, P. 1993a. Model programs for computational science: A programming methodology for multicomputers. Concurrency—Practice and Experience 5, 5 (August), 407–423.

    Article  Google Scholar 

  • Brinch Hansen, P. 1993b. Parallel cellular automata: A model program for computational science. Concurrency—Practice and Experience 5, 5(August) 425–448.

    Article  Google Scholar 

  • Brinch Hansen, P. 1994a. The programming language SuperPascal. Software—Practice and Experience 24, 5 (May), 467–483.

    Article  Google Scholar 

  • Brinch Hansen, P. 1994b. Interference control in SuperPascal A block-structured parallel language. Computer Journal 37, 5, 399–406.

    Article  Google Scholar 

  • Dijkstra, E.W. 1968. Cooperating sequential processes. In Programming Languages, F. Genuys, Ed. Academic Press, New York, 43–112.

    Google Scholar 

  • Dunham, C.B. 1982. The necessity of publishing programs. Computer Journal 25, 1, 61–62.

    Article  MathSciNet  Google Scholar 

  • Forsythe, G.E. 1966. Algorithms for scientific computing. Communications of the ACM 9, 4 (April), 255–256.

    Article  Google Scholar 

  • Hoare, C.A.R. 1971. Procedures and parameters: an axiomatic approach. Lecture Notes in Mathematics 188, 102–171.

    Google Scholar 

  • 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 

  • Hoare, C.A.R. 1985. Communicating Sequential Processes. Prentice Hall, Englewood Cliffs, NJ.

    MATH  Google Scholar 

  • IEEE 1983. IEEE Standard Pascal Computer Programming Language, Institute of Electrical and Electronics Engineers, New York.

    Google Scholar 

  • Inmos, Ltd. 1988. occam 2 Reference Manual, Prentice Hall, Englewood Cliffs, NJ.

    Google Scholar 

  • Kerridge, J. 1993. Using occam3 to build large parallel systems: Part 1, occam3 features. Transputer Communications 1 (to appear).

    Google Scholar 

  • 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 

  • 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 

  • 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 

  • Perlis, A.J. 1966. A new policy for algorithms? Communications of the ACM 9, 4 (April), 255.

    Article  Google Scholar 

  • Rabin, M.O. 1980. Probabilistic algorithms for testing primality. Journal of Number Theory 12, 128–138.

    Article  MathSciNet  MATH  Google Scholar 

  • Sanz, J.L.C., Ed. 1989. Opportunities and Constraints of Parallel Computing, SpringerVerlag, New York.

    MATH  Google Scholar 

  • Tennent, R.D. 1981. Principles of Programming Languages, Prentice-Hall, Englewood Cliffs, NJ.

    MATH  Google Scholar 

  • Welsh, J., and McKeag, M. 1980. Structured System Programming, Prentice-Hall, Englewood Cliffs, NJ.

    MATH  Google Scholar 

  • Wirth, N. 1971. The programming language Pascal. Acta Informatica 1, 35–63.

    Article  MATH  Google Scholar 

  • Wirth, N. 1973. Systematic Programming: An Introduction. Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

Download references

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer Fachmedien Wiesbaden

About this chapter

Cite this chapter

Hansen, P.B. (1994). SuperPascal: A Publication Language for Parallel Scientific Computing. In: Hansen, P.B. (eds) The Origin of Concurrent Programming. Springer, New York, NY. https://doi.org/10.1007/978-1-4757-3472-0_19

Download citation

  • DOI: https://doi.org/10.1007/978-1-4757-3472-0_19

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-1-4419-2986-0

  • Online ISBN: 978-1-4757-3472-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics