ACM Student Research Competition

Wed 4:00-6:00 pm - Broadway I,II&III
Efficient Implementation of the Plaid Language
Sarah Chasins, Swarthmore College, United States

Plaid is a language that natively supports state abstractions.  While efficient language implementation typically relies on stable object members, state change alters members at runtime. We built a JavaScript compilation target with a novel state representation, providing fast member access. The implementation will be evaluated using cross-language performance comparisons.

Misfits in Abstractions: Toward User Centered Design in Domain-Specific Languages for End-user Programming
Hiroki Nishino, NUS Graduate School for Integrative Sciences & Engineering, Singapore

We describe a user-centered design approach to analyze the misfits between the users' conceptualization and the programming language design with a focus on the abstraction layers both in conceptualization and language. Analysis of such a misfit caused by inappropriate abstraction in DSL can contribute to better usability in language design.

Coarse-Grain Speculation for Emerging Processors
Hari K. Pyla, Virginia Tech, United States

A large body of applications/algorithms are inherently hard-to-parallelize and/or sensitive to their input data and may not scale perfectly. The challenge here is to enable such applications leverage multi and many-core architectures efficiently in order to improve their performance.

Automatic Protocol-Conformance Recommendations
Ernesto Alfonso, Carnegie Mellon University, United States

Misuse of reusable components in software is common. Systems of software analysis based on formal specifications provide a mechanism for automatically detecting non-conformance to protocols. The focus of this research is to automatically generate task-specific user recommendations for correcting misuse of arbitrary protocols using results from software analysis systems.

Safira: A tool for evaluating behavior preservation
Melina Mongiovi, Federal University of Campina Grande, Brazil

We propose a tool (Safira) capable of determining if a transformation is behavior preserving through test generation for entities impacted by transformation. We use Safira to evaluate mutation testing and refactoring tools. We have detected 17 bugs in MuJava, and 27 bugs in refactorings implemented by Eclipse and JRRT.

A Demonstration-Based Approach for Designing Domain-Specific Modeling Languages
Hyun Cho, University of Alabama, United States

Domain-Specific Modeling Languages (DSMLs) have been rec-ognized as a viable solution for reducing the gap between domain abstractions and computational expression within specific domains. In several domains and contexts, DSMLs have been applied successfully to various areas (e.g., finance, combat simulation, and image manipulation) and have shown improvements to productivity and quality. However, development of a new DSML is not an easy task for either computer scientists or end-users because designing and implementing a DSML requires profound knowledge of the domain and deep experience in modeling language development. To address the challenges of DSML development, this poster abstract outlines a new approach for building DSMLs that represents a demonstration-based technique for specifying the details of a new modeling language. The approach provides an environment for describing and generating the abstract and concrete syntax of a DSML. Initial work on describing the semantics of a new DSML is also a focus of the work. The research represents an investigation into a technique that allows end-users to sketch (or demonstrate) a domain model with free-form shapes. The goal of the proposed research is to develop the underlying science and tool support to enable end-users to assist in designing a DSML for their domain, while minimizing the typical mundane tasks of DSML development involving many accidental complexities.

Exploring Developer's Tool Paths
Jelena Vlasenko, Free University of Bolzano/Bozen, Italy

Many studies have been conducted to understand how people develop software. Still, software development process is mostly unclear. In this study we propose an idea of a cycle in daily work of developers. We investigate how the developers distribute their time and navigate among tools during their daily work. This understanding would be useful for identifying effective strategies for improvement, both of the development processes and of how computers, and tools within computers, are designed and used. Data for this have been collected non-invasively from team of professional software developers and represents a time span of 10 months.