Except where noted, all publications are international, refereed.

Edited Volumes

  • Hage, J. (2021): Haskell 2021: Proceedings of the 14th ACM SIGPLAN International Symposium on Haskell, Virtual Event, Korea, August 26-27. ACM.
  • Hage, J. (2020): Proceedings Eighth and Ninth International Workshop on Trends in Functional Programming in Education [go there]
  • Hage, J. & McCarthy, J. (2018): Special Issue Trends in Functional Programming 2013/14 Computer Languages, Systems & Structures [go there]
  • Serrano, M. & Hage, J. (2016): Trends in Functional Programming 16th International Symposium, TFP 2015, Revised Selected Papers Sophia Antipolis, France, June 3-5, 2015. [go there]
  • Chin, W.-N. & Hage, J. (2015): Selected and extended papers from Partial Evaluation and Program Manipulation 2014, Science of Computer Programming, Volume 112, Part 2, Pages 119-194 (15 November 2015).
  • Hage, J. & McCarthy, J. (2015): The 15th International Symposium on Trends in Functional Programming, TFP 2014, selected revised papers, Lecture Notes in Computer Science (LNCS), volume 8843 May 26-28, 2014, Soesterberg, The Netherlands. [go there]
  • Chin, W.-N., Hage, J. (2014): Proceedings of the ACM SIGPLAN 2014 workshop on Partial evaluation and program manipulation, PEPM 2014, January 20-21, 2014, San Diego, California, USA. ACM 2014, ISBN 978-1-4503-2619-3 [go there]
  • (Non-refereed) Hage, J & Dijkstra, A. (May 30th, 2013) Een Lawine van Ontwortelde Bomen. Liber Amicorum for S. Doaitse Swierstra, in celebration of his retirement. 328 pages. Published by the Department of Information and Computing Sciences, Utrecht University, Utrecht, The Netherlands. [pdf]
  • Gill, A. & Hage, J. (2012). 23rd International Symposium, IFL 2011, Lawrence, Kansas, Revised Selected Papers. Lecture Notes in Computer Science (LNCS), volume 7257. [go there]
  • Hage, J. & Morazán, M. T. (2011). 22nd International Symposium, IFL 2010, Alphen aan den Rijn, The Netherlands, September 1-3, 2010, Revised Selected Papers. Lecture Notes in Computer Science (LNCS), volume 6647. [go there]

International Journals

  • Serrano, A., Hage, J., Peyton Jones, S., & Vytiniotis, D. (2020) A Quick Look at Impredicativity, Proceedings of the ACM on Programming Languages, ** Recipient Distinguished Paper Award ** [go there].
  • Saeidi, A., Hage, J., Khadka, R., & Jansen S.(2019) Applications of Multi-view Learning Approaches for Software Comprehension. Programming Journal (Vol 3 Issue #3), paper 14 (36 pages) [go there]
  • Serrano Mena, A. & Hage, J. (2019). A Compiler Architecture for Domain-specific Type Error Diagnosis Open Computer Science, 9(1), pp. 33-51 [go there]
  • Eremondi, J., Swierstra, W. & Hage, J. (2019). A Framework for Improving Error Messages in Dependently-typed Languages. Open Computer Science, 9(1), pp. 1-32 [go there]
  • Serrano, A., Hage, J., Vytiniotis, D. & Peyton Jones, S. (2018). Guarded Impredicative Polymorphism. Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2018, Philadelphia, PA, USA, June 18-22, p. 783-796.
  • Jagroep, E., Van der Ent, A., Van der Werf, J.M.E.M., Hage, J. Blom, L., Van Vliet, R. & Brinkkemper, S. (2018). The Hunt for the Guzzler: Architecture-based Energy Profiling Using Stubs. Information and Software Technology, Volume 95: 165-176, [go there].
  • Saeidi, A., Hage, J., Khadka, R., & Jansen S.(2018) On the Effect of Semantically Enriched Context Models on Software Modularization. Programming Journal (Vol 2 Issue #1), paper 2 (39 pages) [go there]
  • Serrano Mena, A. & Hage, J. (2017). Constraint Handling Rules with Binders, Patterns and Generic Quantification. TPLP 17(5-6): 992-1009 (2017)
  • Van Hees, R. & Hage, J. (2017). Stable and predictable Voronoi treemaps for software quality monitoring. Information and Software Technology. [go there] [Web application] [JackRabbit dataset]
  • Weijers, J., Hage, J, & Holdermans, S. (2014). Security Type Error Diagnosis for Higher-Order Polymorphic Languages. Science of Computer Programming, 95 part 2 (0), 200-218 [go there] [prototype implementation]
  • Hage, J. (2012). Subgroup Switching of Skew Gain Graphs. Fundamenta Informaticae, 116(1-4), 111-122, IOS Press.
  • Bodlaender, H. & Hage, J. (2012). On switching classes, NLC-width, cliquewidth and treewidth. Theoretical Computer Science, 429(0), 30-35, Science Direct [go there].
  • Holdermans, S. & Hage, J. (2011). Making ``Stricterness’’ More Relevant, extended version of the PEPM ‘10 paper, Higher Order Symbolic Computation, 23(3), 315-335, Springer
  • Boustani, N. el & Hage, J. (2011). Improving Type Error Messages for Generic Java, extended version of the PEPM ‘09 paper, Higher Order Symbolic Computation, Volume 24, Issue 1, 3-39, Springer. [go there] [extended JastAdd implementation]
  • Hage, J., & Heeren, B.J. (2009). Strategies for Solving Constraints in Type and Effect Systems. Electronic Notes in Theoretical Computer Science, 236, 163-183. Journal version of the Proceedings of 3rd Views On Designing Complex Architectures (VODCA ‘08).
  • Hage, J. & Harju, T. (2007). Towards a characterization of bipartite switching classes by means of forbidden subgraphs. Discussiones Mathematicae Graph Theory, 27(3), 471-483.
  • Ehrenfeucht, A., Hage, J., Harju, T., & Rozenberg, G. (2006). The embedding problem for switching classes of graphs. Fundamenta Informaticae, 74, 1-17.
  • Hage, J., & Harju, T. (2004). A characterization of acyclic switching classes using forbidden subgraphs. SIAM Journal on Discrete Mathematics, 18, 159-176.
  • Hage, J. (2003). Enumerating submultisets of multisets. Information Processing Letters, 85, 221-226.
  • Hage, J., Harju, T., & Welzl, E. (2003). Euler graphs, triangle-free graphs and bipartite graphs in swithing classes. Fundamenta Informaticae, 58, 23-37.
  • Ehrenfeucht, A., Hage, J., Harju, T., & Rozenberg, G. (2000). Pancyclicity in switching classes. Information Processing Letters, 73, 153-156.
  • Hage, J., & Harju, T. (2000). The size of switching classes with skew gains. Discrete Math., 215, 81-92.
  • Hage, J. (1999). The membership problem for switching classes with skew gains. Fundamenta Informaticae, 39, 375-387.
  • Hage, J., & Harju, T. (1998). Acyclicity of switching classes. European J. Combin., 19, 321-327.

International conferences and workshops with published proceedings

  • Burgers, J., Hage, J. and Serrano, A. (2020), Heuristics-based Type Error Diagnosis for Haskell: The case of GADTs and local reasoning, Proceedings of the 32nd Symposium on the Implementation and Application of Functional Programming Languages, IFL 2020, Canterbury, UK, p. 33-43.
  • Thorand, F. & Hage, J. (2020), Higher-Ranked Annotation Polymorphic Dependency Analysis, European Symposium on Programming (ESOP) [go there].
  • Elyasov, A., Prasetya, W., Hage, J. (2018). Search-Based Test Data Generation for JavaScript Functions that Interact with the DOM. International Symposium on Software Reliability Engineering, ISSRE ‘18, Memphis, USA.
  • Eilers, R., Hage, J., Prasetya, W., & Bosman, J. (2018). Fine-Grained Model Slicing for Rebel. 18th International Working Conference on Source Code Analysis and Manipulation, SCAM 2018, Madrid, Spain, p. 235-244.
  • Bent, E. van der, Hage, J., Visser, J. & Gousios, G. (2018). How good is your Puppet? An empirically defined and validated quality model for Puppet. 25th International Conference on Software Analysis, Evolution and Reengineering, SANER 2018, Campobasso, Italy, March 20-23, p. 164-174.
  • Serrano, A. & Hage, J. (2017). Type Error Customization in GHC: Controlling expression-level type errors by type-level programming. Proceedings of the 29th Symposium on the Implementation and Application of Functional Programming Languages, IFL 2017, Bristol, UK, p. 2:1 - 2:15
  • Heres, D. & Hage, J. (2017). A Quantitative Comparison of Program Plagiarism Detection Tools. Proceedings of the 6th Computer Science Education Research Conference (CSERC ‘17), 73–82, Helsinki, Finland.
  • Serrano Mena, A. & Hage, J. (2017). Lightweight soundness for towers of language extensions. Proceedings of the 2017 Workshop on Partial Evaluation and Program Manipulation (PEPM 2017), 23-34, Paris, France.
  • Fritz, L. & Hage, J. (2017). Cost versus precision for approximate typing for Python. Proceedings of the 2017 Workshop on Partial Evaluation and Program Manipulation (PEPM 2017), 89-98, Paris, France.
  • Klinik, M., Hage, J., Jansen, J. M. & Plasmeijer, R. (2017). Predicting resource consumption of higher-order workflows. Proceedings of the 2017 Workshop on Partial Evaluation and Program Manipulation (PEPM 2017), 99-110, Paris, France.
  • De Wolff, I. G. & Hage, J. (2017). Refining types using type guards in TypeScript. Proceedings of the 2017 Workshop on Partial Evaluation and Program Manipulation (PEPM 2017), 111-122, Paris, France.
  • Serrano Mena, A., & Hage, J. (2016). Type error diagnosis for embedded DSLs by two-stage specialized type rules. ESOP 2016, Eindhoven, the Netherlands.
  • Peters, J., Van der Werf, J.M.E.M., & Hage, J. (2016). Architectural Pattern Definition for Semantically Rich Modular Architectures. 13th Working IEEE/IFIP Conference on Software Architecture (WICSA 2016), 256 – 261, Venice, Italy, April 5-8, 2016.
  • Serrano Mena, A., & Hage, J. (2016). Generic Matching of Tree Regular Expressions over Haskell Data Types. Practical Aspects of Declarative Languages (PADL 2016), 83 - 98, St. Petersburg, Florida, USA.
  • Peijnenburg, F., Hage, J. & Serrano Mena, A. (2016). Type Directives and Type Graphs in Elm. IFL 2016: 2:1-2:12
  • Prasetya, W., Hage, J, & Elyasov, A. (2015). Exploiting Annotations to Test Break-off Branches, Proceedings - 22nd Asia-Pacific Software Engineering Conference, APSEC 2015. IEEE Computer Society Press, Vol. 2016-May, p. 80-87.
  • Serrano Mena, A., Hage, J. & Bahr, P. (2015). Type Families with Class, Type Classes with Family. Proceedings of the 8th ACM SIGPLAN Symposium on Haskell (Haskell 2015), 129–140, Vancouver, Canada.
  • Khadka, R., Shrestha, P., Klein, B., Saeidi, A., Hage, J., Jansen, S., Van Dis, E. & Bruntink, M. (2015). Does Software Modernization Deliver What It Aimed for? A Post Modernization Analysis of Five Software Modernization Case Studies. ICSME 2015, Bremen, Germany.
  • Van Hees, R. & Hage, J. (2015). Stable Voronoi-based Visualizations for Software Quality Monitoring. VISSOFT 2015, Bremen, Germany. [Web application] [JackRabbit dataset]
  • Elyasov, A., Prasetya, W., Hage, J., Rueda, U., Vos, T.E.J. & Condori-Fernéndez, N. (2015). AB=ᗺA: execution equivalence as a new type of testing oracle. SAC 2015: 1559-1566
  • Kreuzer, R., Hage, J. & Feelders, A. (2015). A Quantitative Comparison of Semantic Web Page Segmentation Approaches. Proceedings of the International Conference on Web Engineering (ICWE 2015), Rotterdam, The Netherlands pages 374-391.
  • Saeidi, A., Hage, J., Khadka, R., & Jansen S. (2015) ITMViz: Interactive Topic Modeling for Source Code Analysis Proceedings of the 23rd International Conference on Program Comprehension (ICPC ‘15), Florence, Italy.
  • Saeidi, A., Hage, J., Khadka, R., & Jansen S. (2015) A Search-based Approach to Multi-View Clustering of Software Systems Proceedings of the 22nd IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER ‘15), Montreal, Canada.
  • Van der Hoek, H. E. & Hage, J. (2015) Object-sensitive Type Analysis of PHP Proceedings of the 2015 Workshop on Partial Evaluation and Program Manipulation (PEPM 2015), Mumbai, India, pages 9-20.
  • Koot, R. & Hage, J. (2015) Type-based Exception Analysis for Non-strict Higher-order Functional Languages with Imprecise Exception Semantics Proceedings of the 2015 Workshop on Partial Evaluation and Program Manipulation (PEPM 2015), Mumbai, India, pages 127-138.
  • Verstoep, H. & Hage, J. (2015) Polyvariant Cardinality Analysis for Non-strict Higher-order Functional Languages: Brief Announcement Proceedings of the 2015 Workshop on Partial Evaluation and Program Manipulation (PEPM 2015), Mumbai, India, pages 139-142. [prototype implementation] [appendix with a worked out example]
  • Elyasov, A., Prasetya, W., Hage, J., & Nikas, A. (2014) Reduce first, debug later AST 2014, pages 57-63.
  • Khadka, R., Batlajery, B.V., Saeidi, A., Jansen, S., & Hage, J. (2014) How Do Professionals perceive Legacy systems & Software Modernization? ICSE 2014, Hyderabad, pages 36-47.
  • Kruse, P.M., Prasetya, I.S.W.B., Hage, J. & Elyasov, A. (2013) Logging to Facilitate Combinatorial System Testing accepted for FITTEST Workshop 2013, Istanbul.
  • Prasetya, I.S.W.B., Sturala, A., Middelkoop, A., Hage, J., Elyasov, A. (2013) Compact Traceable Logging. Fifth International Conference on Advances in System Testing and Validation Lifecycle (VALID 2013).
  • Elyasov, A., Prasetya, W. & Hage, J. (2013) Guided Algebraic Specification Mining for Failure Simplification. 25th IFIP WG 6.1 International Conference onTesting Software and Systems (ICTSS 2013), Istanbul, Turkey, November 13-15, 2013, pages 223-238.
  • Khadka, R., Saeidi, A., Jansen, S., Hage, J. & Haas, G.P. (2013) Migrating a Large Scale Legacy Application to SOA: Challenges and Lessons Learned . 20th Working Conference on Reverse Engineering (WCRE 2013), Koblenz, Germany, October 14-17, 2013, pages 425-432, IEEE.
  • Khadka, R., Saeidi, A., Jansen, S. and Hage, J. (2013). A Structured Legacy to SOA Migration Process and its Evaluation in Practice. Accepted for MESOCA 2013, Eindhoven.
  • Saeidi, A., Hage, J., Khadka, R., & Jansen S. (2013) Gelato: GEneric LAnguage TOols for Model-Driven Analysis of Legacy Software Systems (tool demo). Tool Demo Track of the 20th Working Conference on Reverse Engineering (WCRE 2013), Koblenz, Germany, October 14-17, 2013, pages 81-82, IEEE.
  • Hage, J., Vermeer, B. & Verburg, G. (2013). Plagiarism Detection for Haskell with Holmes. Proceedings of Computer Science Education Research Conference (CSERC ‘13), Arnhem, the Netherlands, pages 19 - 30 ACM Digital Library.
  • Polychniatis, T., Bouwers, E., Visser, J., Hage, J. & Jansen, S. (2013). Detecting Cross-language Dependencies Generically. ERA Track Proceedings of the 17th European Conference on Software Maintenance and Reengineering (CSMR ‘13), Genova, Italy, pages 349-352.
  • Weijers, J., Hage, J, & Holdermans, S. (2013). Security Type Error Diagnosis for Higher-Order Polymorphic Languages. Proceedings of the ACM SIGPLAN 2013 Workshop on Partial Evaluation and Program Manipulation (PEPM ‘13), Rome, Italy, pages 3 - 12. Recipient Best Paper Award [prototype implementation]
  • Khadka, R., Reijnders, G., Saeidi, A., Jansen, S., & Hage, J. (2011). A method engineering based legacy to SOA migration method. Proceedings of the 27th IEEE International Conference on Software Maintenance (ICSM’11), Williamsburg, USA, pages 163-172.
  • Khadka, R., Jansen, S., Saeidi, A., Hage, J. & Helms, R. (2011). An Evaluation of Service Frameworks for the Management of Service Eco Systems. Proceedings of the 15th Pacific Asia Conference on Information System (PACIS’11), Brisbane, Australia.
  • Alves, T., Hage, J. & Rademaker, P. (2011). A Comparative Study of Code Query Technologies. 11th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM), Williamsburg, USA, pages 145-154.
  • Hage, J., Rademaker, P. & Van Vugt, N. (2011). Plagiarism detection for Java: a tool comparison. In Marko van Eekelen, Peter Sloep and Gerrit van der Veer, editors, Proceedings of the 1st Computer Science Education Research Conference, CSERC ‘11, Heerlen, The Netherlands, April 7-8, pages 33-46, ACM Digital Library, 2011.
  • Holdermans, S. & Hage, J. (2010). Polyvariant flow analysis with higher-ranked polymorphic types and higher-order effect operators. In Paul Hudak and Stephanie Weirich, editors, Proceedings of the 15th ACM SIGPLAN International Conference on Functional Programming, ICFP 2010, Baltimore, Maryland, USA, September 27-29, 2010, pages 63-74. ACM Press, 2010. [pdf]
  • Holdermans, S. & Hage, J. (2010). On the Rele of Minimal Typing Derivations in Type-driven Program Transformation, In Claus Braband and Pierre-Etienne Moreau, editors, Proceedings of the Tenth Workshop on Language Descriptions, Tools and Applications, LDTA 2010, Paphos, Cyprus, March 27-28, 2010. ACM Press, 2010.
  • Boustani, N. el & Hage, J. (2010). Corrective Hints for Type Incorrect Generic Java Programs, Proceedings of the ACM SIGPLAN 2010 Workshop on Partial Evaluation and Program Manipulation (PEPM ‘10), (pp. 5-14). ACM Press. [extended JastAdd implementation]
  • Holdermans, S. & Hage, J. (2010). Making ``Stricterness’’ More Relevant. Proceedings of the ACM SIGPLAN 2010 Workshop on Partial Evaluation and Program Manipulation (PEPM ‘10), (pp. 121-130). ACM Press.
  • Boustani, N. el & Hage, J. (2009). Improving Type Error Messages for Generic Java, Proceedings of the ACM SIGPLAN 2009 Workshop on Partial Evaluation and Program Manipulation (PEPM ‘09), (pp. 131-140). ACM Press. [extended JastAdd implementation]
  • Hage, J, & Keeken, P. van (2009). Neon: a Library for Language Usage Analysis, Proceedings of the 1st Conference on Software Language Engineering (SLE ‘08), (pp. 35–53). Lecture Notes in Computer Science volume 5452. Spring Verlag. [Neon library with a small example collection of loggings to mine]
  • Dolstra, E., Hage, J., Heeren, B., Holdermans, S., Jeuring, J., Löh, A., Löh, C., Middelkoop, A., Rodriguez, A., & Van Schie, J. (2008). Report on the tenth ICFP programming contest. Proceedings of the 13th ACM SIGPLAN international conference on Functional programming (ICFP ‘08), (pp. 397-408). ACM Press.
  • Hage, J., & Holdermans, S. (2008). Heap recycling for lazy languages. Proceedings of the ACM SIGPLAN 2008 Workshop on Partial Evaluation and Program Manipulation (PEPM ‘08), (pp. 189-198). ACM Press.
  • Hage, J., Holdermans, S., & Middelkoop, A. (2007). A generic usage analysis with subeffect qualifiers. In R. Hinze & N. Ramsey (Eds.), Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming (ICFP ‘07), (pp. 235-246). ACM Press.
  • Hage, J., & Heeren, B.J. (2007). Heuristics for type error discovery and recovery. In Z. Horvéth, V. Zsók & A. Butterfield (Eds.), Proceedings of Implementation of Functional Languages (IFL ‘06), LNCS 4449 (pp. 199-216). Heidelberg: Springer-Verlag.
  • Heeren, B.J., & Hage, J. (2005). Type class directives. In M. Hermenegildo & D. Cabeza (Eds.), Proceedings of the 7th International Symposium on Practical Aspects of Declarative Languages (PADL ‘05), LNCS 3350 (pp. 253-267). Berlin: Springer-Verlag.
  • Ehrenfeucht, A., Hage, J., Harju, T., & Rozenberg, G. (2004). Embedding in switching classes with skew gains. In H. Ehrig, G. Engels, F. Parisi-Presicce, & G. Rozenberg (Eds.), Graph Transformations, Second International Conference (ICGT ‘04), LNCS 3256 (pp. 257-270). Springer-Verlag.
  • Heeren, B.J., Hage, J., & Swierstra, S.D. (2003). Constraint based type inferencing in Helium. In M.-C. Silaghi & M. Zanker (Eds.), Workshop Proceedings of Immediate Applications of Constraint Programming (pp. 59-80). Cork.
  • Heeren, B.J., Hage, J., & Swierstra, S.D. (2003). Scripting the type inference process. In Eighth ACM Sigplan International Conference on Functional Programming (ICFP ‘03) (pp. 3-13). New York: ACM Press.
  • Hage, J., Harju, T., & Welzl, E. (2002). Euler graphs, triangle-free graphs and bipartite graphs in swithing classes. In A. Corradini, H. Ehrig, H-J. Kreowski & G. Rozenberg (Eds.), First International Conferrence on Graph Transformation (ICGT ‘02) LNCS 2505, (pp. 148-160). Berlin: Springer Verlag.
  • Ehrenfeucht, A., Hage, J., Harju, T., & Rozenberg, G. (2000). Complexity issues in switching of graphs. In H. Ehrig, G. Engels, H.-J. Kreowski, & G. Rozenberg (Eds.), Theory And Application Of Graph Transformations (TAGT ‘98), LNCS 1764 (pp. 59-70). Berlin: Springer Verlag.

Book chapters

  • Khadka, R., Saeidi, A., Hage, J., Jansen, S. & Idu, A. (2012). Legacy to SOA Evolution: A Systematic Literature Review, accepted for the book Migrating to SOA and Cloud Environments: Challenges in Service Oriented Architecture and Cloud Computing Environments, A. D. Ionita, G. Lewis & M. Litoiu (editors).
  • Hage, J. & Harju, T. (2009). On Involutions Arising From Graphs. In A. Condon, D. Harel, J. Kok, A. Salomaa & E. Winfree (Eds.), Algorithmic Bioprocesses (pp. 632-630). Berlin: Springer Verlag.

Other refereed papers

  • Hage, J. (2007, April). Programmeerplagiaatdetectie met Marble. TINFON Tijdschrijft voor Informaticaonderwijs, 16(1) pp. 4-8.

Theses and dissertations

  • Hage, J. (2001, September 26). Structural Aspects of Switching Classes. LIACS (152 pag.) (Leiden). Promotor: G. Rozenberg. (!PhD Thesis)
  • Hage, J. (1994). ARL and PR2, reversible languages. Leiden: Leiden University. (MSc Thesis)