Abstract:Abstract. Today's challenges for language development include language extension and composition, as well as the use of diverse notations. A promising approach is projectional editing, a technique to directly manipulate the abstract syntax tree of a program, without relying on parsers. Its potential lies in the ability to combine diverse notational styles -such as text, symbols, tables, and graphics -and the support for a wide range of composition techniques. However, projectional editing is often perceived as… Show more
“…It also supports diffmerge on the level of the projected concrete syntax. The study in [57] shows that users are willing and able to work with the editor after getting used to it.…”
Section: Language Engineering With Mpsmentioning
confidence: 99%
“…Learning Curve Using MPS' projectional editor requires some getting used to and may lead to some initial frustration. As the study in [57] shows, the required time varies between a few hours and a few days. In addition, users have to learn the extensions provided by mbeddr.…”
Section: Practical Challenges and Drawbacksmentioning
We report on an industrial case study on developing the embedded software for a smart meter using the C programming language and domain-specific extensions of C such as components, physical units, state machines, registers and interrupts. We find that the extensions help significantly with managing the complexity of the software. They improve testability mainly by supporting hardware-independent testing, as illustrated by low integration efforts. The extensions also do not incur significant overhead regarding memory consumption and performance. Our case study relies on mbeddr, an extensible version of C. mbeddr, in turn, builds on the MPS language workbench which supports modular extension of languages and IDEs.
“…It also supports diffmerge on the level of the projected concrete syntax. The study in [57] shows that users are willing and able to work with the editor after getting used to it.…”
Section: Language Engineering With Mpsmentioning
confidence: 99%
“…Learning Curve Using MPS' projectional editor requires some getting used to and may lead to some initial frustration. As the study in [57] shows, the required time varies between a few hours and a few days. In addition, users have to learn the extensions provided by mbeddr.…”
Section: Practical Challenges and Drawbacksmentioning
We report on an industrial case study on developing the embedded software for a smart meter using the C programming language and domain-specific extensions of C such as components, physical units, state machines, registers and interrupts. We find that the extensions help significantly with managing the complexity of the software. They improve testability mainly by supporting hardware-independent testing, as illustrated by low integration efforts. The extensions also do not incur significant overhead regarding memory consumption and performance. Our case study relies on mbeddr, an extensible version of C. mbeddr, in turn, builds on the MPS language workbench which supports modular extension of languages and IDEs.
“…JetBrains MPS [52] is a framework/generator for creating structure editors. MPS does not have the concept of frames as first-class entities which can be picked up and manipulated, and is closer to classic structure editors than to block-based languages.…”
In introductory programming teaching, block-based editors have become very popular because they offer a number of strong advantages for beginning programmers: They avoid many syntax errors, can display all available instructions for visual selection and encourage experimentation with little requirement for recall. Among proficient programmers, however, text-based systems are strongly preferred due to several usability and productivity advantages for expert users. In this paper, we provide a comprehensive introduction to a novel editing paradigm, frame-based editing -including design, implementation, experimentation and analysis. We describe how the design of this paradigm combines many advantages of block-based and text-based systems, then we present and discuss an implementation of such a system for a new Java-like language called Stride, including the results of several evaluation studies. The resulting editing system has clear advantages for both novices and expert programmers: It improves program representation and error avoidance for beginners and can speed up program manipulation for experts. Stride can also serve as an ideal stepping stone from block-based to text-based languages in an educational context.
“…Projectional LW do not require created language grammars to be parsable, because code editor works directly with an abstract representation of the codeits abstract syntax tree (AST). The different user experience and tool interoperability issues of such editors hinder their wider adoption, but advances are being made in this direction nonetheless, as reported by Voelter et al [13].…”
Section: Utilization Of Projectional Toolsmentioning
Comprehending the code is the main activity performed by programmers during programming. Each software system implements many concerns from the problem domain, but their transformation into a source code makes them scattered and hard to find. For this reason, many tools and approaches for working with concerns were created. Evolution of Integrated Development Environments (IDEs) brought a possibility to work with the code on several levels and it became possible to alter the presentation of the code without changing the code itself. Such presentation is referred to as projection. In this paper we explore possibilities to use projections as a tool for concern management. We present our categorization of different existing approaches for concern management and of projectional tools already available in multiple IDEs. We also review research-originated tools that provide code projections. Based on this review we identify several areas where existing solutions can be improved and propose our concept of configurable projection that can further facilitate the program comprehension process.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.