skip to main content
10.1145/3136014.3136034acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Robust projectional editing

Published: 23 October 2017 Publication History

Abstract

While contemporary projectional editors make sure that the edited programs conform to the programming language's metamodel, they do not enforce that they are also well-formed, that is, that they obey the well-formedness rules defined for the language. We show how, based on a constraint-based capture of well-formedness, projectional editors can be empowered to enforce well-formedness in much the same way they enforce conformance with the metamodel. The resulting robust edits may be more complex than ordinary, well-formedness breaking edits, and hence may require more user involvement; yet, maintaining well-formedness at all times ensures that necessary corrections of a program are linked to the edit that necessitated them, and that the projectional editor's services are never compromised by inconsistent programs. Robust projectional editing is not a straitjacket, however: If a programmer prefers to work without it, its constraint-based capture of well-formedness will still catch all introduced errors - unlike many other editor services, well-formedness checking and robust editing are based on the same implementation, and are hence guaranteed to behave consistently.

Supplementary Material

Auxiliary Archive (sle17-sle17main56-aux.zip)

References

[1]
Thorsten Berger, Markus Völter, Hans Peter Jensen, Taweesap Dangprasert, and Janet Siegmund. 2016. Efficiency of projectional editing: A controlled experiment. In Proc. of FSE. ACM, 763–774.
[2]
Leonardo Mendonça de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Proc. of TACAS. 337–340.
[3]
Rina Dechter. 1992. From Local to Global Consistency. Artif. Intell. 55, 1 (May 1992), 87–107.
[4]
Alexander Egyed. 2006. Instant consistency checking for the UML. In Proc. of ICSE. 381–390.
[5]
Pascal Van Hentenryck. 1989. Constraint satisfaction in logic programming. MIT Press.
[6]
Pascal Van Hentenryck, Vijay A. Saraswat, and Yves Deville. 1998. Design, Implementation, and Evaluation of the Constraint Language cc(FD). J. Log. Program. 37, 1-3 (1998), 139–164.
[7]
R. Lämmel. 2017. Software languages: Syntax, semantics, and metaprogramming. Springer. To appear. http://www.softlang.org/book .
[8]
Olivier Lhomme. 2003. An Efficient Filtering Algorithm for Disjunction of Constraints. In Proc. of CP. 904–908.
[9]
Alan K. Mackworth. 1977. On Reading Sketch Maps. In Proc. of IJCAI, Vol. 2. Morgan Kaufmann Publishers Inc., 598–606.
[10]
Pierre Neron, Andrew P. Tolmach, Eelco Visser, and Guido Wachsmuth. 2015. A Theory of Name Resolution. In Proc. of ESOP. 205–231.
[11]
Object Management Group. 2014. Object Constraint Language Version 2.4. Object Management Group.
[12]
Cyrus Omar, Ian Voysey, Michael Hilton, Joshua Sunshine, Claire Le Goues, Jonathan Aldrich, and Matthew A. Hammer. 2017. Toward Semantic Foundations for Program Editors. In Proc. of SNAPL. 11:1–12.
[13]
Jens Palsberg and Michael I. Schwartzbach. 1994. Object-oriented type systems. Wiley.
[14]
Nils Przigoda, Robert Wille, and Rolf Drechsler. 2016. Ground setting properties for an efficient translation of OCL in SMT-based model finding. In Proc. of MoDELS . ACM, 261–271.
[15]
Veselin Raychev, Martin T. Vechev, and Eran Yahav. 2014. Code completion with statistical language models. In Proc. of PLDI. 419–428.
[16]
Alexander Reder and Alexander Egyed. 2012. Computing repair trees for resolving inconsistencies in design models. In Proc. of ASE. 220– 229.
[17]
Alexander Reder and Alexander Egyed. 2012. Incremental Consistency Checking for Complex Design Rules and Larger Model Changes. In Proc. of MoDELS. 202–218.
[18]
Friedrich Steimann. 2015. From well-formedness to meaning preservation: model refactoring for almost free. Software & System Modeling 14, 1 (2015), 307–320.
[19]
Friedrich Steimann. 2015. None, One, Many - What’s the Difference, Anyhow?. In Proc. of SNAPL. 294–308.
[20]
Friedrich Steimann. 2017. Constraint-Based Refactoring. ACM Trans. Program. Lang. Syst. (2017). to appear.
[21]
Friedrich Steimann. 2017. Refactoring Tools and Their Kin. In Tutorial Lectures of GTTSE 2015 (Springer LNCS), Vol. 10223. 179–214.
[22]
Friedrich Steimann, Jörg Hagemann, and Bastian Ulke. 2016. Computing repair alternatives for malformed programs using constraint attribute grammars. In Proc. of OOPSLA. 711–730.
[23]
Friedrich Steimann, Christian Kollee, and Jens von Pilgrim. 2011. A Refactoring Constraint Language and Its Application to Eiffel. In Proc. of ECOOP. 255–280.
[24]
Friedrich Steimann and Bastian Ulke. 2013. Generic Model Assist. In Proc. of MoDELS. 18–34.
[25]
Friedrich Steimann and Jens von Pilgrim. 2012. Refactorings without names. In Proc. of ASE. 290–293.
[26]
Frank Tip, Robert M. Fuhrer, Adam Kiezun, Michael D. Ernst, Ittai Balaban, and Bjorn De Sutter. 2011. Refactoring using type constraints. ACM Trans. Program. Lang. Syst. 33, 3 (2011), 9.
[27]
Edward P. K. Tsang. 1993. Foundations of Constraint Satisfaction. Academic Press.
[28]
Bastian Ulke, Friedrich Steimann, and Ralf Lämmel. 2017. Partial Evaluation of OCL Expressions. In Proc. of MoDELS. To appear.
[29]
Hendrik van Antwerpen, Pierre Neron, Andrew P. Tolmach, Eelco Visser, and Guido Wachsmuth. 2016. A constraint language for static semantic analysis based on scope graphs. In Proc. of PEPM. 49–60.
[30]
Markus Völter, Sebastian Benz, Christian Dietrich, Birgit Engelmann, Mats Helander, Lennart CL Kats, Eelco Visser, and Guido Wachsmuth. 2013. DSL engineering: Designing, implementing and using domainspecific languages. dslbook.org
[31]
Markus Völter, Bernd Kolb, Tamás Szabó, Daniel Ratiu, and Arie van Deursen. 2017. Lessons learned from developing mbeddr: a case study in language engineering with MPS. SoSyM (2017), 1–46.
[32]
Markus Völter and Sascha Lisson. 2014. Supporting Diverse Notations in MPS’ Projectional Editor. In Proc. of GEMOC@MoDELS. 7–16.
[33]
Markus Völter, Janet Siegmund, Thorsten Berger, and Bernd Kolb. 2014. Towards user-friendly projectional editors. In Proc. of SLE. 41–61.
[34]
Markus Völter, Jos Warmer, and Bernd Kolb. 2015. Projecting a modular future. IEEE Software 32, 5 (2015), 46–52.

Cited By

View all
  • (2023)A text-based syntax completion method using LR parsing and its evaluationScience of Computer Programming10.1016/j.scico.2023.102957228:COnline publication date: 5-Jun-2023
  • (2022)Language-parametric static semantic code completionProceedings of the ACM on Programming Languages10.1145/35273296:OOPSLA1(1-30)Online publication date: 29-Apr-2022
  • (2021)A text-based syntax completion method using LR parsingProceedings of the 2021 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation10.1145/3441296.3441395(32-43)Online publication date: 18-Jan-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SLE 2017: Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering
October 2017
267 pages
ISBN:9781450355254
DOI:10.1145/3136014
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 23 October 2017

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. constraint propagation
  2. editors
  3. projectional editing
  4. static semantics
  5. well-formedness

Qualifiers

  • Research-article

Conference

SPLASH '17
Sponsor:

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 24 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)A text-based syntax completion method using LR parsing and its evaluationScience of Computer Programming10.1016/j.scico.2023.102957228:COnline publication date: 5-Jun-2023
  • (2022)Language-parametric static semantic code completionProceedings of the ACM on Programming Languages10.1145/35273296:OOPSLA1(1-30)Online publication date: 29-Apr-2022
  • (2021)A text-based syntax completion method using LR parsingProceedings of the 2021 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation10.1145/3441296.3441395(32-43)Online publication date: 18-Jan-2021
  • (2020)Enhancing development and consistency of UML models and model executions with USE studioProceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3417990.3422011(1-5)Online publication date: 16-Oct-2020
  • (2020)An approach to generate text-based IDEs for syntax completion based on syntax specificationProceedings of the 2020 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation10.1145/3372884.3373158(38-44)Online publication date: 20-Jan-2020
  • (2019)Transactional editing: giving ACID to programmersProceedings of the 12th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3357766.3359536(202-215)Online publication date: 20-Oct-2019
  • (2019)Constructing Optimized Validity-Preserving Application Conditions for Graph Transformation RulesGraph Transformation10.1007/978-3-030-23611-3_11(177-194)Online publication date: 25-Jun-2019

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media