5,413 research outputs found
A Domain-Specific Language and Editor for Parallel Particle Methods
Domain-specific languages (DSLs) are of increasing importance in scientific
high-performance computing to reduce development costs, raise the level of
abstraction and, thus, ease scientific programming. However, designing and
implementing DSLs is not an easy task, as it requires knowledge of the
application domain and experience in language engineering and compilers.
Consequently, many DSLs follow a weak approach using macros or text generators,
which lack many of the features that make a DSL a comfortable for programmers.
Some of these features---e.g., syntax highlighting, type inference, error
reporting, and code completion---are easily provided by language workbenches,
which combine language engineering techniques and tools in a common ecosystem.
In this paper, we present the Parallel Particle-Mesh Environment (PPME), a DSL
and development environment for numerical simulations based on particle methods
and hybrid particle-mesh methods. PPME uses the meta programming system (MPS),
a projectional language workbench. PPME is the successor of the Parallel
Particle-Mesh Language (PPML), a Fortran-based DSL that used conventional
implementation strategies. We analyze and compare both languages and
demonstrate how the programmer's experience can be improved using static
analyses and projectional editing. Furthermore, we present an explicit domain
model for particle abstractions and the first formal type system for particle
methods.Comment: Submitted to ACM Transactions on Mathematical Software on Dec. 25,
201
Lightweight Call-Graph Construction for Multilingual Software Analysis
Analysis of multilingual codebases is a topic of increasing importance. In
prior work, we have proposed the MLSA (MultiLingual Software Analysis)
architecture, an approach to the lightweight analysis of multilingual
codebases, and have shown how it can be used to address the challenge of
constructing a single call graph from multilingual software with mutual calls.
This paper addresses the challenge of constructing monolingual call graphs in a
lightweight manner (consistent with the objective of MLSA) which nonetheless
yields sufficient information for resolving language interoperability calls. A
novel approach is proposed which leverages information from a
compiler-generated AST to provide the quality of call graph necessary, while
the program itself is written using an Island Grammar that parses the AST
providing the lightweight aspect necessary. Performance results are presented
for a C/C++ implementation of the approach, PAIGE (Parsing AST using Island
Grammar Call Graph Emitter) showing that despite its lightweight nature, it
outperforms Doxgen, is robust to changes in the (Clang) AST, and is not
restricted to C/C++.Comment: 10 page
Exploring Eye Tracking Data on Source Code via Dual Space Analysis
Eye tracking is a frequently used technique to collect data capturing users\u27 strategies and behaviors in processing information. Understanding how programmers navigate through a large number of classes and methods to find bugs is important to educators and practitioners in software engineering. However, the eye tracking data collected on realistic codebases is massive compared to traditional eye tracking data on one static page. The same content may appear in different areas on the screen with users scrolling in an Integrated Development Environment (IDE). Hierarchically structured content and fluid method position compose the two major challenges for visualization. We present a dual-space analysis approach to explore eye tracking data by leveraging existing software visualizations and a new graph embedding visualization. We use the graph embedding technique to quantify the distance between two arbitrary methods, which offers a more accurate visualization of distance with respect to the inherent relations, compared with the direct software structure and the call graph. The visualization offers both naturalness and readability showing time-varying eye movement data in both the content space and the embedded space, and provides new discoveries in developers\u27 eye tracking behaviors.
Adviser: Hongfeng Y
- …