A domain-specific language and editor for parallel particle methods
Publikation: Beitrag in Fachzeitschrift › Forschungsartikel › Beigetragen › Begutachtung
Beitragende
Abstract
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 DSLs is not easy, 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 comfortable for programmers. Some of these features-e.g., syntax highlighting, type inference, error reporting-are easily provided by language workbenches, which combine language engineering techniques and tools in a common ecosystem. In this article, 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, a projectional language workbench. PPME is the successor of the Parallel Particle-Mesh Language, a Fortran-based DSL that uses conventional implementation strategies. We analyze and compare both languages and demonstrate how the programmer's experience is improved using static analyses and projectional editing, i.e., code-structure editing, constrained by syntax, as opposed to free-text editing. We present an explicit domain model for particle abstractions and the first formal type system for particle methods.
Details
Originalsprache | Englisch |
---|---|
Aufsatznummer | 34 |
Fachzeitschrift | ACM Transactions on Mathematical Software |
Jahrgang | 44 |
Ausgabenummer | 3 |
Publikationsstatus | Veröffentlicht - 2018 |
Peer-Review-Status | Ja |
Externe IDs
Scopus | 85047003520 |
---|---|
ORCID | /0000-0002-5007-445X/work/141545504 |
ORCID | /0000-0003-4414-4340/work/142252131 |
Schlagworte
ASJC Scopus Sachgebiete
Schlagwörter
- Language workbenches, Mathematical software, MPS, Particle methods, Scientific computing