21 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
AN ENVIRONMENT FOR ENGINEERING EXTENDED AFFIX GRAMMAR ENVIRONMENTS
Existing formalisms for the specification of programming environments are complex and
strongly biased by the problems of environment generation. It has been investigated
whether a simple two-level grammar, describing a programming language, can be used
without further modification for the generation of an environment for that language.
We believe that there is enough information in most language definitions - albeit
implicitly - to generate most of the tools used in syntax-directed editors.
This paper proposes some simple and elegant improvements in the use of place-
holders and templates, and in the unparsing mechanism. Although the improvements
are implemented in a completely newly designed prototype they can also be applied to
existing syntax-directed editors to improve their workability
Recommended from our members
SMILE/ MARVEL: Two Approaches to Knowledge-Based Programming Environments
This technical report consists of three related papers in the area of intelligent assistance for software development and maintenance. Intelligent Assistance without Artificial Intelligence describes SMILE, a software engineering environment that assists teams of programmers without using AI technology. An Architecture for Intelligent Assistance in Software Development presents an AI approach to generalizing the capabilities of SMILE. Granularity Issues in a Knowledge-Based Programming Environment briefly describes MARVEL, an intelligent assistant based on this AI approach, and compares it to SMILE
Recommended from our members
Incremental Dynamic Semantics for Language-Based Programming Environments
Attribute grammars are a formal notation for expressing the static semantics of programming languages â those properties that can be derived from inspection of the program text. Attribute grammars have become popular as a mechanism for generating language-based programming environments that incrementally perform symbol resolution, type checking, code generation and derivation of other static semantic properties as the program is modified. However, attribute grammars are not suitable for expressing dynamic semantics â those properties that reflect the history of program execution and/or user interactions with the programming environment. This article presents action equations, an extension of attribute grammars suitable for specifying the static and the dynamic semantics of programming languages. It describes how action equations can be used to generate language-based programming environments that incrementally derive static and dynamic properties as the user modifies and debugs the program
ACE: A Cliché-based Program Structure Editor
ACE extends the syntax-directed paradigm of program editing by adding support for programming clichés. A programming cliché is a standard algorithmic fragment. ACE supports the rapid construction of programs through the combination of clichés selected from a cliché library.
ACE is also innovative in the way it support the basic structure editor operations. Instead of being based directly on the grammar for a programming language, ACE is based on a modified grammar which is designed to facilitate editing. Uniformity of the user interface is achieved by encoding the modified grammar as a set of clichés.MIT Artificial Intelligence Laborator
An integrated programming environment for pseudo-code development, IPE-PC
An Integrated Programming Environment, IPE-PC, that supports pseudo-code development has been designed and implemented. This environment is based on a Pascal-like language which is designed according to the requirements of a language-based environment. The nucleus of IPE-PC is a language-based editor which represents programs as graphs internally. The same representation is used in every mode of the environment (i.e., editing, compilation, execution, debugging and translation). The system provides facilities to take advantage of both top-down and bottom-up programming. Stepwise refinement has been supported by providing comment structures that can be transformed into procedures. Bottom-up programming is supported because it is possible to create and save program segments which can be inserted to the programs at the appropriate points --Abstract, page ii
Recommended from our members
Specification of Interpreters and Debuggers Using an Extension of Attribute Grammars
Recent research in programming environments has focused on the generation of software tools from specifications. Several specification mechanisms have been proposed, and the most successful of these has been attribute grammars. Attribute grammars have been successfully applied to compile-time tools such as type checkers and code generators, which perform static analysis of the program, but have hitherto seemed unsuited to the description of run-time tools such as interpreters and debuggers that involve dynamic interaction with the user of the programming environment. This report describes an extension to attribute grammars that solves this problem. The extended attribute grammars are suitable for the specification of all semantics processing performed by single-user programming environments
Gentleman : a lightweight web-based projectional editor
Lors de la conception et la manipulation de logiciel par modĂ©lisation, il est avantageux de bĂ©nĂ©ïŹcier dâun grand degrĂ© de libertĂ© au niveau de la prĂ©sentation aïŹn de comprendre lâinformation et prendre une action en exerçant peu dâeïŹort cognitif et physique. Cette caractĂ©ristique doit aussi sâĂ©tendre aux outils que nous employons aïŹn que ceux-ci augmentent nos capacitĂ©s, plutĂŽt que les restreindre. En gĂ©nie logiciel, nous travaillons prĂ©sentement Ă rehausser encore le niveau dâabstraction aïŹn de rĂ©duire le rĂŽle central du code dĂ©crit avec un langage de programmation Ă usage gĂ©nĂ©ral. Ceci permettrait dâinclure les experts non techniques dans les activitĂ©s de dĂ©veloppement de logiciel. Cette approche, centralisĂ©e sur le domaine et lâexpert, sâinscrit dans lâingĂ©nierie dirigĂ©e par les modĂšles (IDM), oĂč un modĂšle est produit et manipulĂ© par divers experts et utilisateurs. Le modĂšle est alors dĂ©crit avec un langage crĂ©Ă© spĂ©ciïŹquement pour un domaine dâapplication ou une tache, appelĂ© langage dĂ©diĂ© (DSL). Une technique utilisĂ©e pour crĂ©er ces modĂšles et leurs DSL est le projectional editing, qui permet dâutiliser des notations diverses interchangeables et dâĂ©tendre et composer facilement un langage. Toutefois, les solutions actuelles sont lourdes, spĂ©ciïŹques Ă une plateforme, et manquent considĂ©rablement dâutilisabilitĂ©, limitant ainsi lâusage et lâexploitation de cette approche. Pour mieux reïŹĂ©ter les avantages du paradigme IDM avec le style
projectionnel, nous introduisons dans cette thĂšse Gentleman, un Ă©diteur projectionnel lĂ©ger sur le web. Avec Gentleman, le dĂ©veloppeur crĂ©e un modĂšle en combinant des concepts utilisĂ©s pour dĂ©ïŹnir la structure du modĂšle et des projections pour les manipuler dans lâĂ©diteur. Nous avons Ă©valuĂ© Gentleman Ă travers une Ă©tude basĂ©e sur un groupe dâutilisateur. LâĂ©tude
a conïŹrmĂ© sa capacitĂ© Ă crĂ©er et manipuler des modĂšles eïŹcacement. Les participants ont notĂ© quâil est facile de prendre en main Gentleman et que lâinterface est trĂšs intuitive comparativement aux Ă©diteurs existants. Nous avons aussi intĂ©grĂ© Gentleman avec succĂšs Ă une plateforme web, dĂ©montrant ainsi ses capacitĂ©s dâinteropĂ©rabilitĂ© et lâavantage dâune solution
web.In software activities and, more specifically, when modeling, the modeler should benefit from as much freedom as possible to understand the presented information and take action with minimal cognitive and mechanical effort. This characteristic should also apply to the tools used in the process so that they extend our capabilities rather than limit them. In the field of software engineering, current work aims to push the level of abstraction past general-purpose programming language into domain-specific modeling. This enables domain experts with various backgrounds to participate in software development activities. This vision is central to model-driven engineering (MDE) where, instead of code, various experts and users produce and manipulate domain-specific language (DSL). In recent years, projectional editing has proven to be a valid approach to creating and manipulating DSLs, as it supports various easily interchangeable notations and enables language extension and composition. However, current solutions are heavyweight, platform-specific, and suffer from poor usability.
To better support this paradigm and minimize the risk of accidental complexity in terms of expressiveness, in this thesis, we introduce Gentleman, a lightweight web-based projectional editor. With Gentleman, a developer creates a model by combining concepts used to define its structure and projections to interact and manipulate them in the editor. We have evaluated Gentleman through a user study. The evaluation confirmed its capacity to create and manipulate models effectively. Most participants noted that the editor is very user-friendly and intuitive compared to existing editors. We have also successfully integrated Gentleman into a web application, demonstrating its interoperability and the benefit of a web solution