The Generalized Intensional Compiler (GIC)

GIC is a compiler from a subset of Haskell to dataflow, using the generalized intensional transformation technique.

Check out the latest version on GitHub: https://github.com/gfour/gic

Read about it in the following papers:

  • G. Fourtounis. The Intensional Transformation for Implementing Functional Programming Languages. PhD thesis, 2014. (slides) (thesis in Greek) (English translation pending)
  • G. Fourtounis and N. Papaspyrou. An Efficient Representation for Lazy Constructors Using 64-bit Pointers. In Proceedings of the 3rd ACM SIGPLAN Workshop on Functional High-Performance Computing (FHPC’14), 2014. (pdf)
  • G. Fourtounis, N. Papaspyrou, and P. Theofilopoulos. Modular Polymorphic Defunctionalization. In Computer Science and Information Systems 11(4), pp. 1417–1434, 2014. (pdf)
  • P. Theofilopoulos. An Efficient Implementation of Lazy Functional Programming Languages Based on the Generalized Intensional Transformation. M.Sc. thesis. National and Kapodistrian University of Athens, 2014. (pdf)
  • G. Fourtounis and N. Papaspyrou. Supporting Separate Compilation in a Defunctionalizing Compiler. In Proceedings of the 2nd International Symposium on Languages, Applications and Technologies, 2013. (pdf) (slides)
  • G. Fourtounis, N. Papaspyrou, P. Rondogiannis. The Generalized Intensional Transformation for Implementing Lazy Functional Languages. In Proceedings of the Fifteenth International Symposium on Practical Aspects of Declarative Languages, 2013. (pdf) (slides)
  • G. Fourtounis, P. C. Ölveczky, N. Papaspyrou. Formally Specifying and Analyzing a Parallel Virtual Machine for Lazy Functional Languages Using Maude. In Proceedings of the Fifth International Workshop on High-level Parallel Programming and Applications, 2011. (download page) (slides) doi: 10.1145/2034751.2034758
  • G. Fourtounis, N. Papaspyrou, and P. Rondogiannis. The Intensional Transformation for Functional Languages with User-Defined Data Types. In Proceedings of the 8th Panhellenic Logic Symposium, 2011. (pdf)

Publications about the original intensional transformation:

  • A. Charalambidis, A. Grivas, N. Papaspyrou and P. Rondogiannis. Efficient Intensional Implementation for Lazy Functional Languages. Mathematics in Computer Science (special issue in honor of W. W. Wadge), 2(1): 123-141 (2008). doi: 10.1007/s11786-008-0047-5
  • P. Rondogiannis and W. W. Wadge. Higher-Order Functional Languages and Intensional Logic. Journal of Functional Programming, vol. 9, no. 5, pp. 527-564, September 1999, Cambridge University Press. doi: 10.1017/S0956796899003445
  • P. Rondogiannis and W. W. Wadge. First-Order Functional Languages and Intensional Logic. Journal of Functional Programming, January 1997, vol. 7, no. 1, pp. 73-101, Cambridge University Press. doi: 10.1017/S0956796897002633
  • P. Rondogiannis and W. W. Wadge. Compiling Higher-Order Functions for Tagged-Dataflow. In Proceedings of the IFIP WG10.3 Working Conference on Parallel Architectures and Compilation Techniques (PACT ‘94), 1994. pdf
  • P. Rondogiannis and W. W. Wadge. Higher-Order Dataflow and its Implementation on Stock Hardware. In Proceedings of the ACM Symposium on Applied Computing (SAC ‘94), 1994. doi: 10.1145/326619.326803
  • P. Rondogiannis and W. W. Wadge. A Dataflow Implementation Technique for Lazy Typed Functional Languages. In Proceedings of the International Symposium on Lucid and Intensional Programming, 1993. pdf
  • A. Yaghi. An Intensional Implementation Technique for Functional Languages. PhD thesis, University of Warwick, 1984. pdf