252 papers · page 11 of 13
Eric L. McCorkle
The theory and semantics of programming languages are typically formulated using abstract mathematical models that have no obvious connection to any physical theory. While this approach has a number of advantages, it does not generalize to complex nondiscrete systems, and it obsc…
Sean McDirmid
Programming today involves code editing mixed with bouts of debugging to get feedback on code execution. For programming to be more fluid, editing and debugging should occur concurrently as live programming. This paper describes how live execution feedback can be woven into the e…
Aleksandar Milicevic, Daniel Jackson, Milos Gligoric, Darko Marinov
Applications are increasingly distributed and event-driven. Advances in web frameworks have made it easier to program standalone servers and their clients, but these applications remain hard to write. A model-based programming paradigm is proposed that allows a programmer to repr…
Yoshiki Ohshima, Aran Lunzer, Bert Freudenberg, Ted Kaehler
We report on a language called KScript and a GUI framework called KSWorld. The goal of KScript and KSWorld is to try to reduce the accidental complexity in GUI framework code and application building. We aim for an understandable, concise way to specify an application's behavior …
Alexander Repenning
Our powerful computers help very little in debugging the program we have so we can change it into the program we want. We introduce Conversational Programming as a way to harness our computing power to inspect program meaning through a combination of partial program execution and…
Santiago Perez De Rosso, Daniel Jackson
It is commonly asserted that the success of a software development project, and the usability of the final product, depend on the quality of the concepts that underlie its design. Yet this hypothesis has not been systematically explored by researchers, and conceptual design has n…
Friedrich Steimann
In object-oriented programs, the relationship of an object to many objects is usually implemented using a collection. This is in contrast to a relationship to one object, which is usually realized as a direct value. However, using collections for relationships to many objects doe…
Emina Torlak, Rastislav Bodík
SAT and SMT solvers have automated a spectrum of programming tasks, including program synthesis, code checking, bug localization, program repair, and programming with oracles. In principle, we obtain all these benefits by translating the program (once) to a constraint system unde…
Hannah Quay-de la Vallee, James M. Walsh, William Zimrin, Kathi Fisler, Shriram Krishnamurthi
The privacy policies of many websites, especially those designed for sharing data, are a product of many inputs. They are defined by the program underlying the website, by user configurations (such as privacy settings), and by the interactions that interfaces enable with the site…
Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon + 1 more
Building high-performance virtual machines is a complex and expensive undertaking; many popular languages still have low-performance implementations. We describe a new approach to virtual machine (VM) construction that amortizes much of the effort in initial construction by allow…
Han Xu, Oliver Creighton, Naoufel Boulila, Ruth Barbara Demmel
Software systems can be viewed from both external and internal perspectives. They are called user model and system model respectively in the human-computer interaction community. In this paper, we employ the yin-yang principle as an analytical tool for reviewing the relationship …
Mehrdad Afshari, Earl T. Barr, Zhendong Su
Programming is the process of expressing and refining ideas in a programming language. Ideally, we want our programming language to flexibly fit our natural thought process. Language innovations, such as procedural abstraction, object and aspect orientation, have helped increase …
Engineer Bainomugisha, Jorge Vallejos, Coen De Roover, Andoni Lombide Carreton, Wolfgang De Meuter
Context-aware applications provide end-users with enhanced experiences by continuously sensing their environment and adapting their behaviour to match the current context of use. However, developing true context-aware applications remains notoriously difficult due to the unpredic…
Meurig Beynon
This essay discusses software development from the perspective of Empirical Modelling (EM) [4], an approach to computing that draws on the construals of David Gooding [52], Bruno Latour's vexing notion of construction [70] and William James's radical empiricism [63]. It argues th…
Andrew P. Black, Kim B. Bruce, Michael Homer, James Noble
We are engaged in the design of a small, simple programming language for teaching novices object-oriented programming. This turns out to be far from a small, simple task. We focus on three of the problems that we encountered, and how we believe we have solved them. The problems a…
Richard P. Gabriel
Engineering often precedes science. Incommensurability is real.
Munawar Hafiz, Paul Adamczyk, Ralph E. Johnson
Researchers and practitioners have been successfully documenting software patterns for over two decades. But the next step--building pattern languages--has proven much more difficult. This paper describes an approach for building a large pattern language for security: an approach…
Michael E. Hansen, Andrew Lumsdaine, Robert L. Goldstone
Programming language and library designers often debate the usability of particular design choices. These choices may impact many developers, yet scientific evidence for them is rarely provided. Cognitive models of program comprehension have existed for over thirty years, but the…
Christian Heinlein
Even though extensible programming languages have been around for decades, they have not received much attention so far. To obtain a more attractive solution, where extending the language is almost as easy as writing normal programs, extensibility should not be provided as a sepa…
Andrea Janes, Giancarlo Succi
We believe, that like most innovations, Agile has followed the Gartner Hype Cycle and it has now reached the Trough of Disillusionment, where it is currently stuck. Moreover, we believe this is due to a "guru phenomenon."