Talk by Daco Harkes at ECOOP 2016 about the paper:

Daco Harkes, Danny M. Groenewegen, Eelco Visser. IceDust: Incremental and Eventual Computation of Derived Values in Persistent Object Graphs. In Shriram Krishnamurthi, Benjamin S. Lerner, editors, 30th European Conference on Object-Oriented Programming, ECOOP 2016, July 18-22, 2016, Rome, Italy. Volume 56 of LIPIcs, Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik, 2016.b [doi]

Abstract: Derived values are values calculated from base values. They can be expressed in object-oriented languages by means of getters calculating the derived value, and in relational or logic databases by means of (materialized) views. However, switching to a different calculation strategy (for example caching) in object-oriented programming requires invasive code changes, and the databases limit expressiveness by disallowing recursive aggregation. In this paper, we present IceDust, a data modeling language for expressing derived attribute values without committing to a calculation strategy. IceDust provides three strategies for calculating derived values in persistent object graphs: Calculate-on-Read, Calculate-on-Write, and Calculate-Eventually. We have developed a path-based abstract interpretation that provides static dependency analysis to generate code for these strategies. Benchmarks show that different strategies perform better in different scenarios. In addition we have conducted a case study that suggests that derived value calculations of systems used in practice can be expressed in IceDust.

most of tu delft pl group

An incomplete group photo of the SLDE research group at TU Delft. From left to right:

  • Hendrik van Antwerpen
  • Guido Wachsmuth
  • Martijn Dwars
  • Jeff Smits
  • Gabriël Konat
  • Casper Bach Poulsen
  • Vlad Vergu
  • Eduardo Amorim
  • Daco Harkes

Missing are

  • Elmer van Chastelet
  • Danny Groenewegen
  • Jeffrey Goderie
  • Voker Lanting
  • Daniël Pelsmaeker
  • Joey Ezechiëls

and the photographer

  • Eelco Visser

Last Thursday, Hendrik van Antwerpen defended his master’s thesis A Constraint-based Approach to Name Binding and Type Checking using Scope Graphs. On January 19, 2016 he will present the related paper at PEPM 2016.

Abstract: Recently scope graphs were introduced as a formalism to specify the name binding structure of a program and do name resolution independent of the abstract syntax tree of a program. In this thesis we show how to use a constraint language based on scope graphs to do static analysis of programs. We do this by extracting constraints from a program, that specify name binding and typing. We treat binding and typing as separate building blocks, but our approach allows language constructs – such as access of record fields – where name and type resolution are mutually dependent. By using scope graphs for name resolution, our approach supports a wide range of name binding patterns that are not easily supported in existing constraint-based approaches. We present a formal semantics for our constraint language, as well as a solver algorithm, for which we discuss soundness, termination and completeness of the solver. We evaluate our approach by expressing the static semantics of PCF and Featherweight Java with our constraints, and we implemented the solver algorithm, as well as static analysis for both languages, in the Spoofax language workbench.

SERG is looking to strengthen its Programming Languages research program under the leadership of Prof. Dr. Eelco Visser. We aim at a broad program connecting logic, programming languages, and software engineering in order to improve the correctness, reliability, and security of software by using high-level, domain-specific formal specifications supported by tools such as certified compilers, model checkers, SMT solvers, and/or proof assistants. To that end, we are looking for an assistant professor to complement our current research strengths in language engineering and domain-specific languages with expertise in one or more of the following topics

  • Software verification
  • Language-based security
  • Semantics engineering
  • Software synthesis
  • Program analysis
  • Type systems
  • Execution engines
  • Performance engineering

We welcome researchers with an interest in programming language research inspired by applications to data science (Delft Data Science), cyber security (3TU Cyber Security master specialization), online learning, and/or quantum computing.

Read more