Open and Original Problems in Software Language Engineering

OOPSLE

Third International Workshop on Open and Original Problems in Software Language Engineering

6 March 2015, Montréal, Canada

Co-located with SANER’15 (formerly CSMR and WCRE)

Workshop programme and abstracts

9:00 – 9:15 Opening and welcome of OOPSLE’15

Anya Helene Bagge (BLDL, Uni. Bergen), Vadim Zaytsev (SE, Uni. Amsterdam)

We will briefly reintroduce the workshop and summarise its goals and topics discussed at previous two editions (OOPSLE’14 & OOPSLE’13).

9:15 – 10:30 Keynote: Source Transformation on Boolean Grammars: Advantages and Challenges (slides)

James R. Cordy (Queen’s)

Boolean grammars offer an extension to context-free grammar notation that adds conjunction (and, &) and anti-conjunction (and not, &!) to traditional disjunctive alternative (or, |) production rules. “And” simply means that a matched input string must conform to both of two grammatical forms, and “and not” means that it must conform to the first, but not the second. In the language theory community, Alex Okhotin has shown that Boolean grammars can recognize a significantly larger set of languages than context-free, while retaining reasonably efficient (polynomial) parse complexity.

In this talk I will outline our experience in implementing a practical Boolean parser for TXL, a popular production source transformation system, both to support a larger set of input languages, and to allow for direct implementation of the notion of "agile parsing”, using Boolean productions to specify multiple simultaneous parse “views” of the same input in order to facilitate different transformation tasks. Along the way we will discover that source transformation in the presence of Boolean grammars is not nearly so straightforward an extension of transformation rules as it is for grammar rules.

11:00 – 11:45 Engineering Iron Man’s JARVIS (slides)

Emily Hill (Drew)

The purpose of programming languages is to facilitate communication between the programmer and the machine, i.e., to allow a human to tell a computer what to do. With each new language paradigm, we inch ever closer to natural expressiveness, making our programs readable as well as runnable. But the question remains: how close should programming language design strive to mimic the naturalness of human expression? In the science fiction movie Iron Man, Tony Stark speaks to his computer, JARVIS (Just A Rather Very Intelligent System), like he would to a friend. They banter sarcastically while JARVIS executes Tony’s high level number crunching tasks. Does this example from science fiction represent the holy grail of software language engineering, namely, that a human need only specify a high-level task to have a computer execute it?

11:45 – 12:30 Sociology of Model Management: Why Model Mappings are to Be the First-class Citizens in MDE

Zinovy Diskin (McMaster/Waterloo)

The importance of intermodel mappings for model management (MMt) is generally recognized, but they are normally considered as auxiliary objects useful for traceability and matching . We will consider several examples showing that mappings play several fundamental rather than technological roles: they are crucial for specifying a proper semantics of MMt operations, and for correct chaining of these operations into a workflow as well. Moreover, the most important model transforrmations — source-to-target model translations — can be compactly encoded by mappings as well, and then be algebraically manipulated as holistic objects. In a sense, MMt is all about inter-model mappings and their interaction, and thus is about sociology of models rather than individual models as such.

Mappings are two-sided objects. On the one hand, they are directed and can be sequentially composed. On the other hand, mappings are sets of links and hence carry Boolean operations of intersection, union, and difference. Due to this “schizophrenic” nature of mappings, their management needs a special conceptual and terminological framework, a convenient notation, and special reasoning techniques. All this is provided by mathematical Category Theory (CT), whose subject is sometimes called a sociology of mathematical structures based on their mappings. Not surprisingly, sociological specificational and reasoning patterns of CT make a good match with the sociological problems of MMt.

14:00 – 14:45 Software Languages: Designing for Humans? (slides)

Alexander Serebrenik (TU/e)

The idea would be to start with a rather obvious observation that the users of software languages, as any users of any systems, are different. Indeed, differences between the users might be beneficial [e.g., our CHI 2015]. Moreover, those users have special needs that must be taken account of [Norman, 1983]—we have seen that the current design, for instance, of StackOverflow is unsuccessful in retaining women [IWC 2014] and complaints are being heard of the poor reward system and poor pedagogy. Then I can talk a little bit about the existing design strategies aiming at including women and problems with those strategies. Finally, I would like to ask the audience whether they recognise those challenges as being relevant to design of software languages.

14:45 – 15:30 Domain-Specific Languages for Program Analysis (PDF, slides)

Mark Hills (ECU)

Program analysis is an important aspect of many software language engineering tools. As part of our work on creating program analysis tools and frameworks in Rascal, we are looking at creating domain-specific languages to support different program analysis tasks, reducing the effort to develop new analysis tools and providing effective notations and libraries. We have created a language for defining control flow for the purpose of building control flow graphs, and are looking at languages for other analysis tasks, such as generating function summaries for library functions based on program documentation.

16:00 – 16:45 Uncertainty-Aware Programming (PDF)

Naoyasu Ubayashi (Kyushu)

Uncertainty is one of the crucial research topics in software engineering, because all of the requirements or design concerns cannot be captured at the early development phase. This presentation introduces an idea of uncertainty-aware programming and discusses the problems to be tackled.

16:45 – 17:15 Discussion

19:00 Dinner