Formal Techniques for Java-like ProgramsFTfJP 2020
22nd Workshop on Formal Techniques for Java-like Programs
Due to COVID-19, FTfJP was held virtually on 23 July 2020 (details below).
The workshop program is available here.
Formal techniques can help analyse programs, precisely describe program behaviour, and verify program properties. Modern programming languages 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 (PL) research challenges.
Work on formal techniques and tools and on the formal underpinnings of programming languages themselves naturally complement each other. FTfJP is an established workshop which has run annually since 1999 alongside ECOOP, with the goal of bringing together people working in both fields.
The workshop has a broad PL theme; the most important criterion is that submissions will generate interesting discussions within this community. The term “Java-like” is somewhat historic and should be interpreted broadly: FTfJP solicits and welcomes submission relating to programming languages in general, beyond Java, C#, Scala, etc.
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
- Pearls (programs or proofs)
FTfJP welcomes submissions on technical contributions, case studies, experience reports, challenge proposals, and position papers.
Call for Papers
Contributions are sought in two categories:
Full Papers (6 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 (2 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.
Submissions should be made via EasyChair https://easychair.org/conferences/?conf=ftfjp2020. There is no need to indicate the paper category (long/short).
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, there is no need to anonymize submissions.
The format of the workshop encourages interaction. FTfJP is a forum in which a wide range of people share their expertise, from experienced researchers to beginning PhD students.
- Submission deadline: June 5th 2020 (AoE)
- Notification: July 3th 2020
- Workshop (virtual): July 23th 2020
FTfJP 2020 will happen as a virtual workshop.
Formatting and Publication
Submissions should be in acmart/sigplan style, 10pt font. Formatting requirements are detailed on the SIGPLAN Author Information page (https://www.sigplan.org/Resources/Author).
Accepted papers will be published in the ACM Digital Library by default, though authors will be able to opt out of this publication, if desired. At least one author of an accepted paper must attend the workshop to present the work and participate in the discussions.
Not scheduled yet
Below is the program for Thursday 23 July. Times are displayed in GMT+02:00 (Amsterdam) time.
FTfJP shall be on Zoom, and can be joined with meeting ID: 945 1730 7570.
10:00 – 11:00: History-based Specification and Verification of Java Collections in KeY (invited presentation)
11:00 – 11:30: Dalarna: A Simplistic Capability-Based Dynamic Language Design For Data Race Freedom (full paper)
11:30 – 11:50: ConSysT: Tunable, Safe Consistency meets Object-Oriented Programming (short paper)
13:15 – 13:45: Salsa: Static Analysis of Serialization Features (full paper)
13:45 – 14:05: Towards Verified Construction of Correct and Optimised GPU Software (short paper)
14:05 – 14:35: An inductive abstract semantics for coFJ (full paper)
14:35 – 15:05: A Separation Logic to Verify Termination of Busy-Waiting for Abrupt Program Exit (full paper)
15:30 – 16:30: Prusti – Deductive Verification for Rust (invited tutorial)
16:30 – 17:30: Discourje: Runtime Verification of Communication Protocols in Clojure (invited presentation)
Prusti Tutorial Setup
In case you’d like to try out Prusti locally on your machine and work on the examples live during the tutorial, you need to do the following:
- Download Visual Studio Code (free, open-source, all major platforms)
- Set up the Prusti Extension by following the instructions here (be careful to install the dependencies listed at the bottom of the page): https://marketplace.visualstudio.com/items?itemName=viper-admin.prusti-assistant
The examples used during the tutorial are here: http://www.cs.ubc.ca/~alexsumm/prusti-tutorial-examples.zip