Formal techniques can help analyse programs, precisely describe program behaviour, and verify program properties. Modern programming languages (such as C#, Java, Kotlin, Rust, or Scala) are interesting targets for formal techniques due to their ubiquity and wide user base, stable and well-defined interfaces and platforms, and powerful (but also complex) libraries. New languages and applications in this space are continually arising, resulting in new programming languages research challenges.
Work on formal techniques and tools and on the formal underpinnings of programming languages themselves naturally complement each other.
The Formal Techniques for Judicious Programming (FTfJP) workshop is an established workshop which has run annually since 1999 alongside ECOOP, with the goal of bringing together people working in both fields.
In 2002 the name of the workshop was changed slightly - from “Formal Techniques for Java Programs” to “Formal Techniques for Java-like Programs” - to include not just work on Java, but also work on related languages such as C# or Scala.
In 2024 the name of the workshop was changed from “Formal Techniques for Java-like Programs” to “Formal Techniques for Judicious Programming” to properly reflect the broader scope of the workshop.
Example topics of interest include:
- Language design and semantics
- Type systems
- Concurrency and new application domains
- Specification and verification of program properties
- Program analysis (static or dynamic)
- Program synthesis
- Security
- Applications of artificial intelligence and large language models in formal methods
- Formal methods for artificial intelligence and large language models
- Pearls (programs or proofs)
- Industrial case studies and experience reports
FTfJP welcomes submissions on technical contributions, case studies, experience reports, challenge proposals, tools, and position papers.
Keynote Speakers
Bart Jacobs (KU Leuven)

Bio: Bart Jacobs is an Associate Professor at KU Leuven. He has published on modular verification of safety and liveness of fine-grained concurrency, I/O, deadlock-freedom of programs using channels and monitors, prophecy variables, termination of object-oriented programs, safety and liveness of exception handling, and unloadable modules, among other topics. He is also the main developer of the VeriFast tool for separation-logic-based modular verification of single-threaded and multithreaded C, Java, and Rust programs.
Title: Expressive Modular Verification of Termination of Busy-Waiting Programs and Deadlock-Freedom of Primitive Blocking Programs
Abstract: I present recent work on the expressive specification and verification of termination of busy-waiting modules under a fair scheduler, as well as ongoing work on the expressive specification and verification of deadlock-freedom of programs that use blocking primitives such as futexes (under any scheduler). The specifications are expressive in that they support a wide variety of client scenarios, such as where a client acquires a lock in one thread and releases it in another, as seen in “cohort lock” implementations. I will point out the core shared idea underlying both approaches, as well as their differences.
Julien Lange (Royal Holloway, University of London)
Bio: Julien Lange is an Associate Professor at Royal Holloway, University of London. His research focuses on mathematically rigorous theories and tools for verifying concurrent programs. He has published on static verification of message-passing programs (particularly deadlock detection in Go), relationships between session types and automata theories, and verification of GPU programs using behavioural types. Before joining Royal Holloway, he was a lecturer at the University of Kent and a Research Associate at Imperial College London. He obtained his PhD from the University of Leicester (UK) and holds BSc/MSc degrees from the University of Namur, Belgium.
Title: Automated Verification of Concurrent Go Programs
Abstract: Verifying the absence of partial deadlocks in Go programs is challenging when channel operations and capacities are determined at runtime. I describe two approaches that address this challenge. The first performs bounded model checking of concurrent behaviors, handling statically unknown parameters while scaling to large programs. The second translates Go fragments to a core language encodable in off-the-shelf solvers, automatically verifying deadlock freedom or inferring preconditions when safety is conditional. I will report on our experience applying this approach on a real-world codebase containing hundreds of challenging program fragments.
This program is tentative and subject to change.
Tue 30 JunDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
09:00 - 10:30 | |||
09:00 5mDay opening | Welcome FTfJP Ákos Hajdu Meta | ||
09:05 60mKeynote | Expressive Modular Verification of Termination of Busy-Waiting Programs and Deadlock-Freedom of Primitive Blocking Programs FTfJP Bart Jacobs DistriNet, Dept. CS, KU Leuven | ||
11:00 - 12:30 | |||
11:00 30mTalk | A monadic interpreter and type-and-effect checker FTfJP Stefano Raviola Universita' del Piemonte Orientale, Paola Giannini University of Eastern Piedmont, Francesco Dagnino University of Genoa | ||
11:30 30mTalk | A Typestate Approach to Purpose-aware Programming FTfJP Joan Montas University of Massachusetts, Lowell, Samuel Dodson University of Massachusetts, Lowell, Anitha Gollamudi University of Massachusetts Lowell, Matteo Cimini University of Massachusetts Lowell | ||
12:00 30mTalk | Formal Semantics and Type System for Vega Data Transformations FTfJP | ||
12:30 - 14:00 | |||
12:30 90mLunch | Lunch Catering | ||
14:00 - 15:30 | |||
14:00 60mKeynote | Automated Verification of Concurrent Go Programs FTfJP Julien Lange Royal Holloway, University of London | ||
16:00 - 17:30 | |||
16:00 30mTalk | A New Interaction Concept for Interactive and Autoactive Program Verification FTfJP Wolfram Pfeifer Karlsruhe Institute of Technology (KIT), Mattias Ulbrich KIT, Daniel Drodt Technical University of Darmstadt Pre-print | ||
16:30 30mTalk | Evaluating LLM-Generated ACSL Annotations for Formal Verification FTfJP Arshad Beg Maynooth University, Ireland, Diarmuid O'Donoghue Maynooth University, Ireland, Rosemary Monahan National University of Ireland Pre-print | ||
Accepted Papers
Call for Papers
Paper categories
We solicit two categories of papers:
- Full Papers (12 pages, excluding references) present a technical contribution, case study, or detailed experience report. We welcome both complete and incomplete technical results; ongoing work is particularly welcome, provided it is substantial enough to stimulate interesting discussions.
- Short Papers (6 pages, excluding references) should advocate a promising research direction, or otherwise present a position likely to stimulate discussion at the workshop. We encourage e.g. established researchers to set out a personal vision, and beginning researchers to present a planned path to a PhD.
Both types of contributions will benefit from feedback received at the workshop. Submissions will be peer reviewed and will be evaluated based on their clarity and their potential to generate interesting discussions. Reviewing will be single blind, i.e, submissions need not be anonymized.
The format of the workshop encourages interaction. FTfJP is a forum in which a wide range of people share their expertise, including experienced researchers, industry practitioners, and early-stage PhD students.
Submission guidelines
Papers must be formatted according to the guidelines for ACM sigplan papers (\documentclass[sigplan,screen]{acmart}), see https://www.sigplan.org/Resources/Author/ for details. Submissions should be made via Easychair (https://easychair.org/conferences?conf=ftfjp2026). There is no need to indicate the paper category (long/short).
The accepted papers will be published in the ACM Digital Library, though authors will be able to opt out of this publication, if desired. At least one author of an accepted paper must register to the workshop by the early registration date and attend the workshop to present the work and participate in the discussions.
Lightning talks
In addition to papers, we also invite lightning talks (~10 minutes) on topics related to the workshop goals that allow participants to present preliminary work in academia and industry. Examples include but not limited to
- Proposing a research problem/challenge
- Presenting a tool/demo
- Presenting a short summary of a work already published elsewhere
Submission information will be announced closer to the workshop, but we plan it to be a lightweight process (e.g. title/abstract submission via Google Form).
Important dates
- Submission deadline: 25th February, 2026
- Notification: 1st April, 2026
- Camera ready: 30th April, 2026
- Workshop: 30th June, 2026