252 papers · page 9 of 13
Jürgen Cito, Philipp Leitner, Harald C. Gall, Aryan Dadashi, Anne Keller, Andreas Roth
A unifying theme of many ongoing trends in software engineering is a blurring of the boundaries between building and operating software products. In this paper, we explore what we consider to be the logical next step in this succession: integrating runtime monitoring data from pr…
Sylvia Grewe, Sebastian Erdweg, Pascal Wittmann, Mira Mezini
The correct definition and implementation of non-trivial type systems is difficult and requires expert knowledge, which is not available to developers of domain-specific languages (DSLs) in practice. We propose Veritas, a workbench that simplifies the development of sound type sy…
Ethan Holder, Eli Tilevich, Amy Gillick
In the Western classical tradition, musicians play music from notated sheet music, called a score. When playing music from a score, a musician translates its visual symbols into sequences of instrument-specific physical motions. Hence, a music score's overall complexity represent…
Daniel Jackson
Concepts are the building blocks of software systems. They are not just subjective mental constructs, but are objective features of a system's design: increments of functionality that were consciously introduced by a designer to serve particular purposes. This essay argues for vi…
Stephen Kell
Programmers face much complexity from the co-existence of "native" (Unix-like) and virtual machine (VM) "managed" run-time environments. Rather than having VMs replace Unix processes, we investigate whether it makes sense for the latter to "become VMs", by evolving Unix's user-le…
Junsong Li, Justin Pombrio, Joe Gibbs Politz, Shriram Krishnamurthi
Splitting a language into a core language and a desugaring function makes it possible to produce tractable semantics for real-world languages. It does so by pushing much of the language's complexity into desugaring. This, however, produces large and unwieldy core programs, which …
David H. Lorenz, Boaz Rosenan
We challenge the widely accepted practice that web applications must be trusted with user data. We present an alternative model based on logic programming, where users and applications are equal peers in a shared cloud environment. User data is represented as a set of facts. The …
Toni Mattis, Johannes Henning, Patrick Rein, Robert Hirschfeld, Malte Appeltauer
Growing volumes of data increase the demand to use it in analytical applications to make informed decisions. Unfortunately, object-oriented runtimes experience performance problems when dealing with large data volumes. Similar problems have been addressed by column-oriented in-me…
Long Tien Nguyen, Alan C. Kay
We discuss the problem of running today's software decades, centuries, or even millennia into the future.
Tomas Petricek
What is the definition of 'type'? Having a clear and precise answer to this question would avoid many misunderstandings and prevent meaningless discussions that arise from them. But having such clear and precise answer to this question would also hurt science, "hamper the growth …
Guillermo Polito, Stéphane Ducasse, Noury Bouraqadi, Luc Fabresse
Bootstrapping is well known in the context of compilers, where a bootstrapped compiler can compile its own source code. Bootstrapping is a beneficial engineering practice because it raises the level of abstraction of a program making it easier to understand, optimize, evolve, etc…
Guillermo Polito, Stéphane Ducasse, Noury Bouraqadi, Luc Fabresse, Max Mattone
Dynamically updating language runtime and core libraries such as collections and threading is challenging since the update mechanism uses such libraries at the same time that it modifies them. To tackle this challenge, we present Dy- namic Core Library Update (DCU) as an extensio…
Aleksandar Prokopec, Martin Odersky
The actor model has been a model of choice for building reliable distributed systems. On one hand, it ensures that message-processing is serialized within each actor, preserving the familiar sequential programming model. On the other hand, programs written in the actor model are …
Hesam Samimi, Alessandro Warth, Mahdi Eslamimehr, Alan Borning
Imperative programming has great merits. As the ubiquitous style, it is familiar, and its linear and step by step nature is favored by the human mind. Experienced programmers, however, are aware of its major flaw: it is easy for meanings to get lost in piles of code, making softw…
Mattias De Wael, Stefan Marr, Joeri De Koster, Jennifer B. Sartor, Wolfgang De Meuter
Today, software engineering practices focus on finding the single ``right'' data representation for a program. The ``right'' data representation, however, might not exist: changing the representation of an object during program execution can be better in terms of performance. To …
David M. West
Presented as a work of fiction, this essay is about software development— how it has come to be what it is and what it might have been. The concept and metaphor of culture is used to frame the discussion. What might have been is presented as an approach named “Living System Desig…
Mathieu Acher, Benoît Combemale, Philippe Collet
External or internal domain-specific languages (DSLs) or (fluent) APIs' Whoever you are - a developer or a user of a DSL - you usually have to choose side; you should not! What about metamorphic DSLs that change their shape according to your needs? Our 4-years journey of providin…
Stéphane Conversy
Firm principles which can be relied on to analyze and discuss textual and graphical code representations are still missing. We propose a framework relying on ScanVis, an extension of the Semiology of Graphics that models the perception and scanning of abstract graphics, to model …
Richard P. Gabriel
Programming comes in many shapes & sizes.
Alex Groce, Mohammad Amin Alipour, Rahul Gopinath
Everyone wants to know one thing about a test suite: will it detect enough bugs? Unfortunately, in most settings that matter, answering this question directly is impractical or impossible. Software engineers and researchers therefore tend to rely on various measures of code cover…