252 papers · page 7 of 13
Robert Biddle
Research and publication have a long history together, with models that date back millennia. Our experience in Computer Science has much in common with other areas of scholarship, but also some distinctive characteristics. One issue discussed and explored extensively involves the…
Roger D. Chamberlain
The design of new programming languages has primarily been guided by the preferences of a few (the authors of the language), rather than systematic study of the various options available. This is in part due to the fact that user studies to effectively test usability or understan…
Juliana Franco, Martin Hagelin, Tobias Wrigstad, Sophia Drossopoulou, Susan Eisenbach
On current architectures, the optimisation of an application's performance often involves data being stored according to access affinity --- what is accessed together should be stored together, rather than logical affinity --- what belongs together logically stays together. Such …
Christopher Hall, Trevor Standley, Tobias Höllerer
We present Infra, a new baseline medium for representing data. With Infra, arbitrarily-complex structured data can be encoded, viewed, edited, and processed, all while remaining in an efficient non-textual form. It is suitable for the full range of information modalities, from fr…
Abhinav Jangda, Greta Yorsh
Our aim is to enable software to take full advantage of the capabilities of emerging microprocessor designs without modifying the compiler.
Antti-Juhani Kaijanaho
Programming language research is becoming method conscious. Rigorous mathematical or empirical evaluation is often demanded, which is a good thing. However, I argue in this essay that concept analysis is a legitimate research approach in programming languages, with important limi…
Stephen Kell
The C language leads a double life: as an application programming language of yesteryear, perpetuated by circumstance; and as a systems programming language which remains a weapon of choice decades after its creation. This essay is a C programmer's reaction to the call to abandon…
Christoph M. Kirsch
Imagine a world in which virtually everyone at least intuitively understands the fundamental principles of information and computation. However, computer science, in research and in education, is still a young field compared to others and lacks maturity despite the enormous deman…
Edmund S. L. Lam, Peilun Zhang, Bor-Yuh Evan Chang
We consider the problem of generating relevant execution traces to test rich interactive applications. Rich interactive applications, such as apps on mobile platforms, are complex stateful and often distributed systems where sufficiently exercising the app with user-interaction (…
Julie L. Newcomb, Satish Chandra, Jean-Baptiste Jeannin, Cole Schlesinger, Manu Sridharan
Programmatically controllable home devices are proliferating, ranging from lights, locks, and motion sensors to smart refrigerators, televisions, and cameras, giving end users unprecedented control over their environment. New domain-specific languages are emerging to supplant gen…
Aleksandar Prokopec
Distributed systems are often built from the simplest building blocks such as message sends and RPCs. Since many communication patterns have to be reinvented every time a distributed system is created, implementing a high-level system is usually expensive. The recently proposed r…
Andrew Sorensen, Henry J. Gardner
Live programs can be modified while the program is executing in order to provide a more reactive experience for the programmer. In demanding applications, such programs traditionally utilise pre-defined function calls to compiled libraries. We present a system that enables demand…
Friedrich Steimann
For decades, the design and implementation of programming languages has been based on phrase structure grammars, which divide a program recursively into phrases (represented by nonterminals), leaving the words of the program (the terminals) as the atoms of this division. By contr…
Mandana Vaziri, Louis Mandel, Avraham Shinnar, Jérôme Siméon, Martin Hirzel
Companies want to offer chat bots to their customers and employees which can answer questions, enable self-service, and showcase their products and services. Implementing and maintaining chat bots by hand costs time and money. Companies typically have web APIs for their services,…
Raoul L. Veroy, Samuel Z. Guyer
In this paper we present a study of how Java programs dispose of objects. Unlike prior work on object demographics and lifetime patterns, our goal is to precisely characterize the actions that cause objects to become unreachable. We use a recently-developed tracing tool, called E…
Preston Tunnell Wilson, Justin Pombrio, Shriram Krishnamurthi
Most programming languages have been designed by committees or individuals. What happens if, instead, we throw open the design process and let lots of programmers weigh in on semantic choices? Will they avoid well-known mistakes like dynamic scope? What do they expect of aliasing…
John Wrenn, Shriram Krishnamurthi
This paper presents a lightweight process to guide error report authoring. We take the perspective that error reports are really classifiers of program information. They should therefore be subjected to the same measures as other classifiers (e.g., precision and recall). We forma…
Mehrdad Afshari, Zhendong Su
Abstractions make building complex systems possible. Many facilities provided by a modern programming language are directly designed to build a certain style of abstraction. Abstractions also aim to enhance code reusability, thus enhancing programmer productivity and effectivenes…
Nicolás Cardozo
Services are normally composed following a structured model, or based on a particular goal that needs to be fulfilled. Such model is problematic for pervasive environments, since service components deployed in the environment are unknown beforehand. As a result, services may neve…
Andrei Chis, Tudor Gîrba, Juraj Kubelka, Oscar Nierstrasz, Stefan Reichhart, Aliaksei Syrel
Software systems involve many different kinds of domain-specific and interrelated software entities. A common strategy employed by developers to deal with this reality is to perform exploratory investigations by means of searching. Nevertheless, most integrated development enviro…