Abstract
Abramsky's Geometry of Interaction interpretation (GoI) is a logical-directed way to reconcile the process and functional views of computation, and can lead to a dataflow-style semantics of programming languages that is both operational (i.e. effective) and denotational (i.e. inductive on the language syntax). The key idea of Ghica's Geometry of Synthesis (GoS) approach is that for certain programming languages (namely Reynolds's affine Syntactic Control of Interference - SCI) the GoI processes-like interpretation of the language can be given a finitary representation, for both internal state and tokens. A physical realisation of this representation becomes a semantics-directed compiler for SCI into hardware. In this paper we examine the issue of compiling affine recursive programs into hardware using the GoS method. We give syntax and compilation techniques for unfolding recursive computation in space or in time and we illustrate it with simple benchmark-style examples. We examine the performance of the benchmarks against conventional CPU-based execution models.
Supplemental Material
- Sandra Alves, Maribel Fernández, Mário Florido, and Ian Mackie. The power of closed reduction strategies. Electr. Notes Theor. Comput. Sci., 174(10):57--74, 2007. Google Scholar
Digital Library
- Sandra Alves, Maribel Fernández, Mário Florido, and Ian Mackie. Gödel's system tau revisited. Theor. Comput. Sci., 411(11-13):1484--1500, 2010. Google Scholar
Digital Library
- Samson Abramsky and Radha Jagadeesan. New foundations for the Geometry of Interaction. In IEEE Symposium on Logic in Computer Science (LICS), pages 211--222, 1992.Google Scholar
Cross Ref
- Kenneth E. Batcher. Sorting networks and their applications. In AFIPS Spring Joint Computing Conference, pages 307--314, 1968. Google Scholar
Digital Library
- D. Bailey, P. Borwein, and S. Plouffe. On the rapid computation of various polylogarithmic constants. Mathematics of Computation, 66(218):903--914, 1997. Google Scholar
Digital Library
- Per Bjesse, Koen Claessen, Mary Sheeran, and Satnam Singh. Lava: Hardware design in Haskell. In The International Conference on Functional Programming (ICFP), New York, NY, USA, 1998. ACM. Google Scholar
Digital Library
- P. Bellows and B. Hutchings. JHDL: an HDL for reconfigurable systems. In IEEE Symposium on FPGAs for Custom Computing Machines, Apr 1998. Google Scholar
Digital Library
- Martin H. Escardo. Computing with real numbers represented as infinite sequences of digits in haskell. In Computability and complexity analysis, Ljubljana, Slovenia, 2009. (code available at the author's web page).Google Scholar
- George Ferizis and Hossam El Gindy. Mapping recursive functions to reconfigurable hardware. In Field Programmable Logic and Applications, 2006. FPL '06. International Conference on, pages 1--6, 2006.Google Scholar
Cross Ref
- Dan R. Ghica. Geometry of Synthesis: a structured approach to VLSI design. In ACM Symposium on Principles of Programming Languages (POPL), pages 363--375, 2007. Google Scholar
Digital Library
- Dan R. Ghica. Applications of game semantics: From software analysis to hardware synthesis. In IEEE Symposium on Logic in Computer Science (LICS), pages 17--26, 2009. Google Scholar
Digital Library
- Dan R. Ghica. Functions interface models for hardware compilation. In ACM/IEEE Ninth International Conference on Formal Methods and Models for Codesign (MEMOCODE), 2011. (forthcoming)Google Scholar
Digital Library
- Dan R. Ghica and Guy McCusker. Reasoning about Idealized Algol using regular languages. In The International Colloquium on Automata, Languages and Programming (ICALP), pages 103--115, 2000. Google Scholar
Digital Library
- Dan R. Ghica and Mohamed N. Menaa. On the compositionality of round abstraction. In The International Conference on Concurrency Theory (CONCUR), pages 417--431, 2010. Google Scholar
Digital Library
- Dan R. Ghica and Mohamed N. Menaa. Synchronous game semantics via round abstraction. In The International Conference on Foundations of Software Science and Computation Structures (FoSSaCS), pages 350--364, 2011. Google Scholar
Digital Library
- Dan R. Ghica and Alex Smith. Geometry of Synthesis II: From games to delay-insensitive circuits. Electr. Notes Theor. Comput. Sci., 265:301--324, 2010. Google Scholar
Digital Library
- Dan R. Ghica and Alex Smith. Geometry of Synthesis III: Resource management through type inference. In ACM Symposium on Principles of Programming Languages (POPL), pages 345--356, 2011. Google Scholar
Digital Library
- Scott Hauck and André DeHon, editors. Reconfigurable Computing, chapter Specifying Circuit Layout in FPGAs. Systems on Silicon. Morgan Kaufmann Publishers, 2008.Google Scholar
- André Joyal, Ross Street, and Dominic Verity. Traced monoidal categories. Mathematical Proceedings of Cambridge Philosophical Society, 119:447--468, 1996.Google Scholar
Cross Ref
- G. M. Kelly and M. L. Laplaza. Coherence for compact closed categories. Journal of Pure and Applied Algebra, 19:193--213, 1980.Google Scholar
Cross Ref
- Ian Mackie. The Geometry of Implementation. PhD thesis, Imperial College, University of London, 1994.Google Scholar
- Ian Mackie. The geometry of Interaction machine. In ACM Symposium on Principles of Programming Languages (POPL), pages 198--208, 1995. Google Scholar
Digital Library
- Guy McCusker. A fully abstract relational model of Syntactic Control of Interference. In The Conference on Computer Science Logic (CSL), pages 247--261, 2002. Google Scholar
Digital Library
- Guy McCusker. Categorical models of syntactic control of interference revisited, revisited. LMS Journal of Computation and Mathematics, 10:176--216, 2007.Google Scholar
Cross Ref
- Guy McCusker. A graph model for imperative computation. Logical Methods in Computer Science, 6(1), 2010.Google Scholar
- Tsutomu Maruyama, Masaaki Takagi, and Tsutomu Hoshino. Hardware implementation techniques for recursive calls and loops. In The International Conference on Field Programmable Logic and Applications (FPL), pages 450--455, 1999. Google Scholar
Digital Library
- Rishiyur Nikhil. Bluespec SystemVerilog: Efficient, correct RTL from high-level specifications. Formal Methods and Models for Co-Design (MEMOCODE), 2004.Google Scholar
- Peter W. O'Hearn, John Power, Makoto Takeyama, and Robert D. Tennent. Syntactic control of interference revisited. Theor. Comput. Sci., 228(1-2):211--252, 1999. Google Scholar
Digital Library
- Peter O'Hearn and Robert D. Tennent. Algol-like languages. Birkhauser, Boston, 1981.Google Scholar
- Uday S. Reddy. Global state considered unnecessary: An introduction to object-based semantics. Lisp and Symbolic Computation, 9(1):7--76, 1996.Google Scholar
Cross Ref
- John C. Reynolds. Syntactic control of interference. In ACM Symposium on Principles of Programming Languages (POPL), pages 39--46, 1978. Google Scholar
Digital Library
- John C. Reynolds. The essence of Algol. In Proceedings of the 1981 International Symposium on Algorithmic Languages, pages 345--372. North-Holland, 1981.Google Scholar
- John C. Reynolds. Syntactic control of inference, part 2. In The International Colloquium on Automata, Languages and Programming (ICALP), pages 704--722, 1989. Google Scholar
Digital Library
- Peter Selinger. New Structures for Physiscs, chapter A survey of graphical languages for monoidal categories. Springer Lecture Notes in Physics, 2009.Google Scholar
- Valery Sklyarov. FPGA-based implementation of recursive algorithms. Microprocessors and Microsystems, 28(5-6):197--211, 2004. Special Issue on FPGAs: Applications and Designs.Google Scholar
Cross Ref
- D. B. Thomas and W. Luk. A domain specific language for reconfigurable path-based monte carlo simulations. In International Conference on Field-Programmable Technology (ICFPT), pages 97--104, 2007.Google Scholar
Cross Ref
- Matthew Wall. Games for Syntactic Control of Interference. PhD thesis, University of Sussex, 2004.Google Scholar
Index Terms
Geometry of synthesis iv: compiling affine recursion into static hardware
Recommendations
Geometry of synthesis iv: compiling affine recursion into static hardware
ICFP '11: Proceedings of the 16th ACM SIGPLAN international conference on Functional programmingAbramsky's Geometry of Interaction interpretation (GoI) is a logical-directed way to reconcile the process and functional views of computation, and can lead to a dataflow-style semantics of programming languages that is both operational (i.e. effective) ...
The geometry of synthesis: how to make hardware out of software (abstract)
MPC'12: Proceedings of the 11th international conference on Mathematics of Program ConstructionHigh-level synthesis or "hardware compilation" is a behavioural synthesis method in which circuits are specified using conventional programming languages. Such languages are generally recognised as more accessible than hardware description languages, ...
Unchecked Exceptions Can Be Strictly More Powerful Than Call/CC
We demonstrate that in the context of statically-typed purely-functional lambda calculi without recursion, unchecked exceptions (e.g., SML exceptions) can be strictly more powerful than call/cc. More precisely, we prove that a natural extension of the ...







Comments