George Fourtounis

I finished my PhD in 2014, at the National Technical University of Athens (NTUA), Department of Electrical and Computer Engineering. My advisor was Nikolaos Papaspyrou. I worked on gic, a compiler from a subset of Haskell to dataflow, based on the intensional transformation technique.

Currently I am a Research Associate at the PLAST lab of the Department of Informatics and Telecommunications, University of Athens, working with Yannis Smaragdakis.

Teaching: Advanced Programming Techniques (fall 2016).

Research interests

  • functional programming languages, type theory
  • dataflow languages and intensional programming
  • defunctionalization
  • formal verification, proof assistants, rewriting logic
  • program analysis


  • G. Fourtounis and Y. Smaragdakis. Deep Static Modeling of invokedynamic. ECOOP 2019. (pdf) (artifact) (slides) (video)
  • G. Fourtounis, G. Kastrinis, and Y. Smaragdakis. Static Analysis of Java Dynamic Proxies. ISSTA 2018. (pdf) (slides)
  • N. Grech, G. Fourtounis, A. Francalanza, and Y. Smaragdakis. Shooting from the Heap: Ultra-Scalable Static Analysis with Heap Snapshots. ISSTA 2018. (pdf)
  • N. Grech, G. Fourtounis, A. Francalanza, and Y. Smaragdakis. Heaps Don’t Lie: Countering Unsoundness with Heap Snapshots. OOPSLA 2017. (pdf)
  • Y. Smaragdakis, A. Biboudis, and G. Fourtounis. Structured Program Generation Techniques. Grand Timely Topics in Software Engineering, 2015.
  • A. Biboudis, N. Palladinos, G. Fourtounis and Y. Smaragdakis. Streams à la carte: Extensible Pipelines with Object Algebras. 29th European Conference on Object-Oriented Programming (ECOOP 2015). (pdf)
  • P. Gerakios, G. Fourtounis and Y. Smaragdakis. FOO: A Minimal Modern OO Calculus. In Proceedings of the 17th Workshop on Formal Techniques for Java-like Programs (FTfJP 2015). (pdf) (slides)
  • A. Biboudis, G. Fourtounis and Y. Smaragdakis. jUCM: Universal Class Morphing (position paper). MASPEGHI’15. (arxiv)
  • 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. The Intensional Transformation for Implementing Functional Programming Languages. PhD thesis, 2014. (slides) (thesis in Greek) (English translation pending)
  • G. Fourtounis, N. Papaspyrou, and P. Theofilopoulos. Modular Polymorphic Defunctionalization. In Computer Science and Information Systems 11(4), pp. 1417–1434, 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, and 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, and 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. (ACM Author-Izer download) (slides)
  • 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)