Abstract
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.
Preliminary presentation at ESF-AutoMathA Workshop on Developments and New Tracks in Trace Theory, Cremona 2008.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Aho, A.V., Lam, M.S., Sethi, R., Ullman, J.D. (eds.): Compilers: principles, techniques, and tools, 2nd edn. Pearson/Addison Wesley, Boston (2007)
Appel, A.W., Palsberg, J.: Modern compiler implementation in Java, 2nd edn. Cambridge University Press, Cambridge (2002)
Berstel, J., Pin, J.-E.: Local languages and the Berry-Sethi algorithm. Theor. Comput. Sci. 155(2), 439–446 (1996)
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)
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)
Diekert, V., Métivier, Y.: Partial commutation and traces. In: Rozenberg, G., Salomaa, A. (eds.) Handbook on Formal Languages, vol. III (1997)
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)
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)
Muchnick, S.S.: Advanced compiler design and implementation. Morgan Kaufmann Publishers Inc., San Francisco (1997)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Campanoni, S., Crespi Reghizzi, S. (2009). Traces of Control-Flow Graphs. In: Diekert, V., Nowotka, D. (eds) Developments in Language Theory. DLT 2009. Lecture Notes in Computer Science, vol 5583. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02737-6_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-02737-6_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02736-9
Online ISBN: 978-3-642-02737-6
eBook Packages: Computer ScienceComputer Science (R0)