Typechecking of Pei expressions

  • Eric Violard
Workshop 05+06: Programming Languages and Concurrent Object-Oriented Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1300)


Pei was introduced to express and transform parallel programs. In this paper, we recall its main features and focus on the notion of data field in the language. We define the type of such objects and present an algorithm to infer types.


Parallel computation Semantics of programming languages Type inference Data Parallelism and automatic parallelization 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Luca Cardelli. Basic polymorphic typechecking. Science of Computer Programming, 8:2, April 1987. AT&T Bell Laboratories.Google Scholar
  2. 2.
    M. Chen, Y. Choo, and J. Li. Parallel Functional Languages and Compilers. Frontier Series. ACM Press, 1991. Chapter 7.Google Scholar
  3. 3.
    Stéphane Genaud, Eric Violard, and Guy-René Perrin. Transformations techniques in Pei. EUROPAR'95, LNCS, 966:131–142, August 1995.Google Scholar
  4. 4.
    P. Hammarlund and B. Lisper. On the relation between functional and data parallel programming languages. FPCA93, ACM Press, pages 210–222, 1993.Google Scholar
  5. 5.
    Wayne Kelly, Vadim Maslov, William Pugh, Evan Rosser, Tatiana Shpeisman, and David Wonnacott. The Omega Library — Version 1.00, April 1996. Interface Guide.Google Scholar
  6. 6.
    L. Lamport. The parallel execution of DO loops. Communications of the ACM, 17(2):83–93, February 1974.Google Scholar
  7. 7.
    C. Lengauer. Loop parallelization in the polytope model. Parallel Processing Letters, 4(3), 1994.Google Scholar
  8. 8.
    C. Mauras. Alpha: un langage équationnel pour la conception et la programmation d'architectures parallèles synchrones. PhD thesis, U. Rennes, 1989.Google Scholar
  9. 9.
    C. Mongenet, P. Clauss, and G.-R. Perrin. Geometrical tools to map systems of affine recurrence equations on regular arrays. Acta Informatica, 31:137–160, 1994.Google Scholar
  10. 10.
    C. Morgan. Programming from specifications. C.A.R. Home. Prentice Hall Ed., Endlewood Cliffs, N.J., 1990.Google Scholar
  11. 11.
    William Pugh. The omega test: a fast and practical integer programming algorithm for dependence analysis. Communications of the ACM, August 1992.Google Scholar
  12. 12.
    P. Quinton and V. Van Dongen. The mapping of linear recurrence equations on regular arrays. Journal of VLSI Signal Processing, 1, 1989.Google Scholar
  13. 13.
    R.D. Tennent. Semantics of Programming Languages. C.A.R. Hoare. Prentice Hall Ed., Endlewood Cliffs, N.J., 1991.Google Scholar
  14. 14.
    E. Violard and G.-R. Perrin. Pei: a language and its refinement calculus for parallel programming. Parallel Computing, 18:1167–1184, 1992.Google Scholar
  15. 15.
    E. Violard and G.-R. Perrin. Pei: a single unifying model to design parallel programs. PARLE'93, LNCS, 694:500–516, June 1993.Google Scholar
  16. 16.
    Eric Violard, Stéphane Genaud, and Guy-René Perrin. Refinement of data parallel programs in Pei. IFIP TC2 Workshop on Algorithmic Languages and Calculi, Chapman & Hall, February 1997.Google Scholar
  17. 17.
    Pierre Weis and Xavier Leroy. Le langage Caml. Interéditions — iia, 1993. *** DIRECT SUPPORT *** A0008C42 00018Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Eric Violard
    • 1
  1. 1.ICPS, Université Louis PasteurIllkirch

Personalised recommendations