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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Allan, V.H., Jones, R.B., Lee, R.M., Allan, S.J.: Software pipelining. ACM Comput. Surv. 27(3), 367–432 (1995)
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
Coccia, M., Gadducci, F., Corradini, A.: GS-Λ Theories: A Syntax for Higher-Order Graphs. Program Construction 69(18) (1979)
Corradini, A., Gadducci, F.: An Algebraic Presentation of Term Graphs, via GS-Monoidal Categories. Applied Categorical Structures 7(4), 299–331 (1999)
Corradini, A., Gadducci, F.: Functorial Semantics for Multi-Algebras and Partial Algebras, with Applications to Syntax. Theoretical Computer Science 286(2), 293–322 (2002)
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)
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)
Kahl, W.: Refactoring Heterogeneous Relation Algebras around Ordered Categories and Converse. J. Relational Methods in Comp. Sci. 1, 277–313 (2004)
Kozen, D.: Typed Kleene Algebra. Technical Report 98-1669, Computer Science Department, Cornell University (1998)
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)
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)
Sleep, M., Plasmeijer, M., van Eekelen, M. (eds.): Term Graph Rewriting: Theory and Practice. Wiley, Chichester (1993)
Ş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)
Ştefănescu, G.: Network Algebra. Springer, London (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)