Semantic analysis for parallelizing C

  • Pierre David
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 634)


Automatic parallelization of C language programs is a difficult task due, for example, to side effects within expressions and access to memory via pointers. We describe a method based on semantic analysis of the language, in order to detect parallelism in complex programs using pointer arithmetic. We define semantic domains which respect the type system of the language, and use them to synthesize effect of the program through functional objects called transformations.


automatic parallelization compilation pointers side effects C language types 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Allen R., Johnson S., Compiling C for Vectorization, Parallelization, and Inline Expansion. ACM PLDI88, June 1988Google Scholar
  2. 2.
    Ammarguellat Z., Restructuration des programmes Fortran en vue de leur parallélisation. Thèse de l'Université Paris 6, Rapport MASI 90.3, 1988.Google Scholar
  3. 3.
    American National Standard Institute, Draft Proposed American National Standard for Information Systems — Programming Langage C. Draft X3J11/88-002., January 1988.Google Scholar
  4. 4.
    Bodin F., Data Structure Analysis in C Programs. Int'l Workshop on Compilers for Parallel Computers, Paris, December 1990.Google Scholar
  5. 5.
    Chase D., Wegman M., Zadeck K., Analysis of Pointers and Structures. ACM-PLDI90, June 1990.Google Scholar
  6. 6.
    David P., Analyse sémantique des programmes en langage C en vue de leur parallélisation. Thèse de l'Université Paris 6, 1991 (Rapport MASI 91.60).Google Scholar
  7. 7.
    David P., Semantic Analysis of Straight Line C Code with Pointers. Rapport MASI 92.39 June 1992Google Scholar
  8. 8.
    Horwitz S., Pfeiffer P., Reps T., Dependence Analysis for Pointer Variables. ACM-PLDI89, 1989Google Scholar
  9. 9.
    Li K., A Note on the Vector C Language. ACM Symp. on Compiler Construction, SIGPLAN Notices Vol. 21, No 1, January 1986.Google Scholar
  10. 10.
    Polychronopoulos C., Girkar M., Haghighat M., Ling Lee C., Leung B., Schouten D., Parafrase-2: An Environment for Parallelizing, Partitioning, Synchronizing, and Scheduling Programs on Multiprocessors. Int'l Conf. on Parallel Processing, 1989.Google Scholar
  11. 11.
    Thornburg J., Number Crunching in C. SIGPLAN Notices, Vol. 21, No 6, June 1986.Google Scholar
  12. 12.
    Triolet R., Irigoin F., Feautrier P., Direct Parallelization of Call Statements. ACM Symp. on Compiler Construction, SIGPLAN Notices Vol. 21, No 7, July 1986.Google Scholar
  13. 13.
    Zima H., Chapman B., Supercompilers for Parallel and Vector Computers. ACM Press, Addison Wesley, 1991.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Pierre David
    • 1
  1. 1.Laboratoire MASI-Institut Blaise Pascal Laboratoire LPTLUniversité Pierre et Marie CurieParis Cedex 05France

Personalised recommendations