Skip to main content

Control-Flow Semantics for Assembly-Level Data-Flow Graphs

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3929))

Abstract

As part of a larger project, we have built a declarative assembly language that enables us to specify multiple code paths to compute particular quantities, giving the instruction scheduler more flexibility in balancing execution resources for superscalar execution.

Since the key design points for this language are to only describe data flow, have built-in facilities for redundancies, and still have code that looks like assembler, by virtue of consisting mainly of assembly instructions, we are basing the theoretical foundations on data-flow graph theory, and have to accommodate also relational aspects.

Using functorial semantics into a Kleene category of “hyper-paths”, we formally capture the data-flow-with-choice aspects of this language and its implementation, providing also the framework for the necessary correctness proofs.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Allan, V.H., Jones, R.B., Lee, R.M., Allan, S.J.: Software pipelining. ACM Comput. Surv. 27(3), 367–432 (1995)

    Article  Google Scholar 

  2. Anand, C.K., Carette, J., Kahl, W., Gibbard, C., Lortie, R.: Declarative Assembler. SQRL Report 20, Software Quality Research Laboratory, McMaster University (2004), available from: http://sqrl.mcmaster.ca/sqrl_reports.html

  3. Coccia, M., Gadducci, F., Corradini, A.: GS-Λ Theories: A Syntax for Higher-Order Graphs. Program Construction 69(18) (1979)

    Google Scholar 

  4. Corradini, A., Gadducci, F.: An Algebraic Presentation of Term Graphs, via GS-Monoidal Categories. Applied Categorical Structures 7(4), 299–331 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  5. Corradini, A., Gadducci, F.: Functorial Semantics for Multi-Algebras and Partial Algebras, with Applications to Syntax. Theoretical Computer Science 286(2), 293–322 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  6. Granlund, T., Kenner, R.: Eliminating Branches Using a Superoptimizer and the GNU C Compiler. In: Programming Language Design and Implementation, PLDI 1992, pp. 341–352. ACM, New York (1992)

    Chapter  Google Scholar 

  7. Hoffmann, B., Plump, D.: Jungle Evaluation for Efficient Term Rewriting. In: Grabowski, J., Lescanne, P., Wechler, W. (eds.) Algebraic and Logic Programming, ALP 1988, Mathematical Research, vol. 49, pp. 191–203. Akademie-Verlag (1989)

    Google Scholar 

  8. Kahl, W.: Refactoring Heterogeneous Relation Algebras around Ordered Categories and Converse. J. Relational Methods in Comp. Sci. 1, 277–313 (2004)

    Google Scholar 

  9. Kozen, D.: Typed Kleene Algebra. Technical Report 98-1669, Computer Science Department, Cornell University (1998)

    Google Scholar 

  10. Massalin, H.: Superoptimizer: A Look at the Smallest Program. In: ASPLOS-II: Proceedings of the Second International Conference on Architectual Support for Programming Languages and Operating Systems, pp. 122–126. IEEE Computer Society Press, Los Alamitos (1987)

    Google Scholar 

  11. Plump, D.: Term Graph Rewriting. In: Ehrig, H., Engels, G., Kreowski, H.-J., Rozenberg, G. (eds.) Handbook of Graph Grammars and Computing by Graph Transformation, vol. 2, pp. 3–61. World Scientific, Singapore (1999)

    Chapter  Google Scholar 

  12. Sleep, M., Plasmeijer, M., van Eekelen, M. (eds.): Term Graph Rewriting: Theory and Practice. Wiley, Chichester (1993)

    MATH  Google Scholar 

  13. Ştefănescu, G.: Algebra of Flownomials — Part 1: Binary Flownomials; Basic Theory. Technical Report TUM-I9437, Technische Universität München, Institut für Informatik (1994)

    Google Scholar 

  14. Ştefănescu, G.: Network Algebra. Springer, London (2000)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kahl, W., Anand, C.K., Carette, J. (2006). Control-Flow Semantics for Assembly-Level Data-Flow Graphs. In: MacCaull, W., Winter, M., Düntsch, I. (eds) Relational Methods in Computer Science. RelMiCS 2005. Lecture Notes in Computer Science, vol 3929. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11734673_12

Download citation

  • DOI: https://doi.org/10.1007/11734673_12

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-33339-5

  • Online ISBN: 978-3-540-33340-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics