No abstract available.
Proceeding Downloads
Interpreter Register Autolocalisation: Improving the Performance of Efficient Interpreters
Language interpreters are generally slower than (JIT) compiled implementation because they trade off simplicity for performance and portability. They are nevertheless still important in modern Virtual Machines (VMs): e.g.,, not all code is hot and ...
Toward Just-in-Time and Language-Agnostic Mutation Testing
Mutation Testing is a popular approach to determine the quality of a suite of unit tests. It is based on the idea that introducing faults into a system under test (SUT) should cause tests to fail, otherwise, the test suite might be of insufficient ...
Programming in an fMRI Scanner: A Report from the Field
A preliminary study is reported in which six human subjects were scanned while performing a simple form of computer programming. Functional magnetic resonance imaging typically precludes the use of ordinary computing equipment due to safety concerns ...
Calling Cards: Concrete Visual End-User Programming
Creating a program that performs even a simple task and shows the result is unapproachable to most people, and even trained programmers face a burden to create a new program. In this paper, we introduce a prototype system and model for live visual ...
A Live Environment to Improve the Refactoring Experience
Refactoring helps improve the design of software systems, making them more understandable, readable, maintainable, cleaner, and self-explanatory. Many refactoring tools allow developers to select and execute the best refactorings for their code. However, ...
Toward Understanding Task Complexity in Maintenance-Based Studies of Programming Tools
Researchers conducting studies on programming tools often make use of maintenance tasks. The complexity of these tasks can influence the behavior of participants significantly. At the same time, the complexity of tasks is difficult to pinpoint due to ...
An Experiment in Live Collaborative Programming on the Croquet Shared Experience Platform
This paper describes our experiences in building a live collaborative programming environment on top of the JavaScript version of the Croquet shared experience platform.
Croquet provides a clean substrate for building real-time collaborative ...
CodeMap: A Graphical Note-Taking Tool Cooperating with an Integrated Development Environment
Program comprehension is an important yet difficult activity in a software development process. One of the main causes of the difficulty is its cognitive overhead for maintaining the mental models, which consist of roles of program elements and ...
Example Mining: Assisting Example Creation to Enhance Code Comprehension
Programmers often use examples with concrete values to better understand code. Code by itself is abstract, which empowers it to be used for a variety of uses, but can be difficult to grasp by developers. Babylonian Programming addresses this by allowing ...
Creating New Programming Experiences Inspired by Boxer to Develop Computationally Literate Society
Boxer suggests a medium that might be used by a computationally literate society. We do not have a computationally literate society, but we do have one where computation is pervasive. Reaching computational literacy will require us to invent media that ...
Automatic Programming and Education
Automatic programming, as supported by recent language-model based AI systems, potentially allows a new approach to making computation a useful tool for learning, a goal of the Boxer project. This paper shows that the Codex system can be used to support ...
Enhancing DrRacket with Dodona for Learning Scheme
Learning how to program in a typical setting is challenging because feedback can often not be given immediately. Tracking the work of a student is also challenging for teachers, as the work of a student is not readily accessible. Therefore, digital ...