Write a Blog >>
ECOOP 2021
Sun 11 - Sat 17 July 2021 Online
co-located with ECOOP and ISSTA 2021

This program is tentative and subject to change.

Wed 14 Jul 2021 19:20 - 19:40 at ECOOP 1 - Modular Programming / Types (time band 1) Chair(s): Alexander J. Summers
Thu 15 Jul 2021 10:40 - 11:00 at ECOOP 1 - Modular Programming / Types (time band 3) Chair(s): Eelco Visser

Modularity is a key concern in programming. However, programming languages remain limited in terms of modularity and extensibility. Small canonical problems, such as the Expression Problem (EP), illustrate some of the basic issues: the dilemma between choosing one kind of extensibility over another one in most programming languages. Other problems, such as how to express dependencies in a modular way, add up to the basic issues and remain a significant challenge.

This paper presents a new statically typed modular programming style called Compositional Programming. In Compositional Programming, there is no EP: it is easy to get extensibility in multiple dimensions (i.e. it is easy to add new variants as well as new operations). Compositional Programming offers an alternative way to model data structures that differs from both algebraic datatypes in functional programming and conventional OOP class hierarchies. We introduce four key concepts for Compositional Programming: compositional interfaces, compositional traits, method patterns, and nested trait composition. Altogether these concepts allow us to naturally solve challenges such as the Expression Problem, model attribute-grammar-like programs, and generally deal with modular programs with complex dependencies. We present a language design, called CP, which is proved to be type-safe, together with several examples and three case studies.

This program is tentative and subject to change.

Conference Day
Wed 14 Jul

Displayed time zone: Brussels, Copenhagen, Madrid, Paris change

19:20 - 20:20
Modular Programming / Types (time band 1)ECOOP Technical Papers at ECOOP 1
Chair(s): Alexander J. SummersUniversity of British Columbia
19:20
20m
Talk
Compositional ProgrammingTOPLAS Journal-First
ECOOP Technical Papers
Weixin ZhangUniversity of Bristol, UK, Yaozhu SunUniversity of Hong Kong, Bruno C. d. S. OliveiraUniversity of Hong Kong
19:40
20m
Talk
Covariant Conversions (CoCo): A Design Pattern for Type-Safe Modular Software Evolution in Object-Oriented Systems
ECOOP Technical Papers
Jan BessaiTechnical University Dortmund, George HeinemanWPI, Boris DüdderUniversity of Copenhagen
20:00
20m
Talk
A Dependently Typed Calculus with Polymorphic SubtypingSCICO Journal-First
ECOOP Technical Papers
Mingqi Xue, Bruno C. d. S. OliveiraUniversity of Hong Kong
DOI

Conference Day
Thu 15 Jul

Displayed time zone: Brussels, Copenhagen, Madrid, Paris change

10:20 - 11:20
Modular Programming / Types (time band 3)ECOOP Technical Papers at ECOOP 1
Chair(s): Eelco VisserDelft University of Technology
10:20
20m
Talk
A Dependently Typed Calculus with Polymorphic SubtypingSCICO Journal-First
ECOOP Technical Papers
Mingqi Xue, Bruno C. d. S. OliveiraUniversity of Hong Kong
DOI
10:40
20m
Talk
Compositional ProgrammingTOPLAS Journal-First
ECOOP Technical Papers
Weixin ZhangUniversity of Bristol, UK, Yaozhu SunUniversity of Hong Kong, Bruno C. d. S. OliveiraUniversity of Hong Kong
11:00
20m
Talk
Covariant Conversions (CoCo): A Design Pattern for Type-Safe Modular Software Evolution in Object-Oriented Systems
ECOOP Technical Papers
Jan BessaiTechnical University Dortmund, George HeinemanWPI, Boris DüdderUniversity of Copenhagen