Write a Blog >>
ICSE 2023
Sun 14 - Sat 20 May 2023 Melbourne, Australia
Thu 18 May 2023 14:30 - 14:45 at Meeting Room 103 - Programming languages Chair(s): Jean-Guy Schneider

Semantics of programming languages are generally laid out in one of three popular styles: operational, denotational and axiomatic. Most popular texts cover only one of these topics, and the treatment is completely theoretical. We believe that it is important to provide exposure to multiple styles, comparing and contrasting them, so that the students can judiciously choose a style guided by the task at hand. Secondly, a completely theoretical treatment of this topic restricts the understanding and appreciation for this formalism as the students are not able to experiment. Some recent courses attempt to remedy the situation by allowing the students to build these semantics in popular languages like OCaml or Haskel; though an encouraging direction, regular programming languages are restrictive as they do not allow the students to prove properties about the language description—which is the primary purpose of formalizing the semantics of a language.

In this paper, we propose that proof assistants are an interesting tool for teaching and learning programming language semantics. We support our proposal by providing a complete encoding of the semantics of the W HILE language in operational, denotational, and axiomatic semantics in the F* proof assistant.

We show that once the program and its semantics are encoded, modern proof assistants are quite capable of proving interesting properties about the language features with minimal human assistance. In summary, we believe that proof assistants not only provide a more concrete understanding of the topic but also prepares programming language researchers to use theorem provers as basic tools in their research and not as an afterthought.

Thu 18 May

Displayed time zone: Hobart change

13:45 - 15:15
13:45
15m
Talk
Demystifying Issues, Challenges, and Solutions for Multilingual Software Development
Technical Track
Haoran Yang Washington State University, Weile Lian Washington State University, Shaowei Wang University of Manitoba, Haipeng Cai Washington State University
Pre-print
14:00
15m
Talk
Testability Refactoring in Pull Requests: Patterns and Trends
Technical Track
Pavel Reich University of Hamburg, Walid Maalej University of Hamburg
Pre-print
14:15
15m
Talk
Usability-Oriented Design of Liquid Types for Java
Technical Track
Catarina Gamboa CMU and LASIGE, Paulo Canelas Carnegie Mellon University, Christopher Steven Timperley Carnegie Mellon University, Alcides Fonseca University of Lisbon
DOI
14:30
15m
Talk
A Theorem Proving Approach to Programming Language Semantics
SEET - Software Engineering Education and Training
Subhajit Roy IIT Kanpur
14:45
7m
Talk
RIdiom: Automatically Refactoring Non-idiomatic Python Code with Pythonic Idioms
DEMO - Demonstrations
zejun zhang Australian National University, Zhenchang Xing CSIRO’s Data61; Australian National University, Xiwei (Sherry) Xu CSIRO’s Data61, Liming Zhu CSIRO’s Data61
14:52
7m
Talk
An Empirical Study of Data Constraint Implementations in Java
Journal-First Papers
Juan Manuel Florez CQSE America, Laura Moreno CQSE America, Zenong Zhang The University of Texas at Dallas, Shiyi Wei University of Texas at Dallas, Andrian Marcus University of Texas at Dallas
14:59
7m
Talk
Learning To Predict User-Defined Types
Journal-First Papers
Kevin Jesse University of California at Davis, USA, Prem Devanbu University of California at Davis, Anand Ashok Sawant University of California, Davis