Modelling and Solving Design Decisions in Programming Language Development – Philipp Riemer (University of Leipzig)
When proposing changes to programming languages, keeping track of all decisions and concerns connected to them can become a difficult task. This is especially true for more established languages and larger proposals. We developed a method for expressing design alternatives and their corresponding concerns: a tailored domain-specific language allows visualizing and experimenting with designs in an interactive manner. To build on this, we introduced an automated method for decision-making based on severity assignments for all concerns given by the user. This was achieved by translating the model into a binary linear programming problem and solving it with the SCIP optimizer. As a case study, we used our toolset to investigate the design space of the “Records and Tuples” proposal for the ECMAScript (JavaScript) programming language. Our approach can also be used to assist with design decisions in a more general context, outside of the domain of programming language design.