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.
Keywords
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
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.
Alagić, S., and Arbib, M.A. 1978. The Design of Well-Structured and Correct Programs. Springer-Verlag, New York.
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.
Brinch Hansen, P. 1973. Operating System Principles. Prentice-Hall, Englewood Cliffs, NJ.
Brinch Hansen, P. 1985. Brinch Hansen on Pascal Compilers. Prentice-Hall, Englewood Cliffs, NJ.
Brinch Hansen, P. 1987. Joyce—A programming language for distributed systems. Software Practice and Experience 17, 1 (January), 29–50.
Brinch Hansen, P. 1991a. Parallel divide and conquer. School of Computer and Information Science, Syracuse University, Syracuse, NY.
Brinch Hansen, P. 1991b. The n-body pipeline. School of Computer and Information Science, Syracuse University, Syracuse, NY.
Brinch Hansen, P. 1992a. Primality testing. School of Computer and Information Science, Syracuse University, Syracuse, NY.
Brinch Hansen, P. 1992b. Parallel Monte Carlo trials. School of Computer and Information Science, Syracuse University, Syracuse, NY.
Brinch Hansen, P. 1993a. Model programs for computational science: A programming methodology for multicomputers. Concurrency—Practice and Experience 5, 5 (August), 407–423.
Brinch Hansen, P. 1993b. Parallel cellular automata: A model program for computational science. Concurrency—Practice and Experience 5, 5(August) 425–448.
Brinch Hansen, P. 1994a. The programming language SuperPascal. Software—Practice and Experience 24, 5 (May), 467–483.
Brinch Hansen, P. 1994b. Interference control in SuperPascal A block-structured parallel language. Computer Journal 37, 5, 399–406.
Dijkstra, E.W. 1968. Cooperating sequential processes. In Programming Languages, F. Genuys, Ed. Academic Press, New York, 43–112.
Dunham, C.B. 1982. The necessity of publishing programs. Computer Journal 25, 1, 61–62.
Forsythe, G.E. 1966. Algorithms for scientific computing. Communications of the ACM 9, 4 (April), 255–256.
Hoare, C.A.R. 1971. Procedures and parameters: an axiomatic approach. Lecture Notes in Mathematics 188, 102–171.
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.
Hoare, C.A.R. 1985. Communicating Sequential Processes. Prentice Hall, Englewood Cliffs, NJ.
IEEE 1983. IEEE Standard Pascal Computer Programming Language, Institute of Electrical and Electronics Engineers, New York.
Inmos, Ltd. 1988. occam 2 Reference Manual, Prentice Hall, Englewood Cliffs, NJ.
Kerridge, J. 1993. Using occam3 to build large parallel systems: Part 1, occam3 features. Transputer Communications 1 (to appear).
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).
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.
May, D. 1989. Discussion. In Scientific Applications of Multiprocessors, R. Elliott and C.A.R. Hoare, Eds. Prentice-Hall, Englewood Cliffs, NJ, 54.
Perlis, A.J. 1966. A new policy for algorithms? Communications of the ACM 9, 4 (April), 255.
Rabin, M.O. 1980. Probabilistic algorithms for testing primality. Journal of Number Theory 12, 128–138.
Sanz, J.L.C., Ed. 1989. Opportunities and Constraints of Parallel Computing, SpringerVerlag, New York.
Tennent, R.D. 1981. Principles of Programming Languages, Prentice-Hall, Englewood Cliffs, NJ.
Welsh, J., and McKeag, M. 1980. Structured System Programming, Prentice-Hall, Englewood Cliffs, NJ.
Wirth, N. 1971. The programming language Pascal. Acta Informatica 1, 35–63.
Wirth, N. 1973. Systematic Programming: An Introduction. Prentice-Hall, Englewood Cliffs, NJ.
Editor information
Editors and Affiliations
Rights 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