Traces of Control-Flow Graphs

Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5583)


This is a new applied development of trace theory to compilation. Trace theory allows to commute independent program instructions, but overlooks the differences between control and data dependencies. Control(C)-dependences, unlike data-dependences, are determined by the Control Flow Graph, modelled as a local DFA. To ensure semantic equivalence, partial commutation must preserve C-dependences. New properties are proved for C-dependences and corresponding traces. Any local language is star-connected with respect to C-dependences, hence this trace language family is recognizable. Local languages unambiguously represent traces. Within the family of local languages with the same C-dependences, we construct the language such that instructions are maximally anticipated. This language differs from the Foata-Cartier normal form. Future directions for application of trace theory to program optimization are outlined.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D. (eds.): Compilers: principles, techniques, and tools, 2nd edn. Pearson/Addison Wesley, Boston (2007)zbMATHGoogle Scholar
  2. 2.
    Appel, A.W., Palsberg, J.: Modern compiler implementation in Java, 2nd edn. Cambridge University Press, Cambridge (2002)CrossRefGoogle Scholar
  3. 3.
    Berstel, J., Pin, J.-E.: Local languages and the Berry-Sethi algorithm. Theor. Comput. Sci. 155(2), 439–446 (1996)MathSciNetCrossRefzbMATHGoogle Scholar
  4. 4.
    Bertoni, A., Goldwurm, M., Mauri, G., Sabadini, N.: Counting techniques for inclusion, equivalence and membership problems. In: Diekert, V., Rozenberg, G. (eds.) Counting techniques for inclusion, equivalence and membership problems. The Book of Traces, ch. 5, pp. 131–163. World Scientific, Singapore (1995)Google Scholar
  5. 5.
    Breveglieri, L., Crespi Reghizzi, S., Savelli, A.: Efficient word recognition of certain locally defined trace languages. In: 5th Int. Conf. on Words (WORDS 2005), Montreal, Canada (2005)Google Scholar
  6. 6.
    Diekert, V., Métivier, Y.: Partial commutation and traces. In: Rozenberg, G., Salomaa, A. (eds.) Handbook on Formal Languages, vol. III (1997)Google Scholar
  7. 7.
    Ferrante, J., Ottenstein, K.J., Warren, J.D.: The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst. 9(3), 319–349 (1987)CrossRefzbMATHGoogle Scholar
  8. 8.
    Klarlund, N., Mukund, M., Sohoni, M.: Determinizing asynchronous automata. In: Shamir, E., Abiteboul, S. (eds.) ICALP 1994. LNCS, vol. 820, pp. 130–141. Springer, Heidelberg (1994)CrossRefGoogle Scholar
  9. 9.
    Muchnick, S.S.: Advanced compiler design and implementation. Morgan Kaufmann Publishers Inc., San Francisco (1997)Google Scholar
  10. 10.
    Pingali, K., Bilardi, G.: Optimal control dependence computation and the Roman chariots problem. ACM Transactions on Programming Languages and Systems 19(3), 462–491 (1997)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  1. 1.Dipartimento Elettronica e Informazione - DEIPolitecnico di MilanoMilanoItaly

Personalised recommendations