MPS 3.4 Tutorials
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
An MPS Implementation for Simplic
An MPS implementation for SimpliC Raphaël Castanier D11, Lund University, Sweden [email protected] Abstract a structure that allows better flexibility for language design, The goal of this study was to evaluate JetBrains language including extension and visualisation [9]. editor provided as an Open Source project called MPS (Meta- MPS represents programs in tree models stored in XML Programming System). One way to evaluate MPS perfor- files. The tree represents the structure of program and each mances for designing simple language compiler was to imple- node is called concept. Each concept can have hierarchical ment the SimpliC language in MPS through its projectional inheritance and specific rules, allowing complex structure editor. We will present in this paper what a projectional constructions. Thus, the program can be represented in the editor is and its opportunities for language design. Then editor, i.e. projected, into different views, using editor aspects. we will introduce basic concepts of language design in MPS For instance, the same program can be projected into textual through our SimpliC implementation, and discuss the lessons notation, diagram editor or symbolic editor [7]. Moreover, we learned from this. We also discuss an evaluation of this constraints and behaviours add rules to construct program process and present related academic work. structure. Finally, previous aspects of language contruction enable MPS to perform a lot of static analysis such as type 1 Introduction checking, name analysis and code generation. For educational purpose, we used a C-like language called Designing compilers is a complex task, requiring different SimpliC. SimpliC is a reduced-concepts language with most steps. -
Alembicue: a Projectional Editor & IDE for Container Application Architecture
Computer Science 18COC251 B627091 Alembicue: A projectional editor & IDE for container application architecture George Garside Supervisor: Dr. Daniel Reidenbach Loughborough University Summer 2019 Abstract The lack of a competent integrated development environment for Docker is a detriment to the field of containerisation and cloud computing. This project documents the development of Alembicue, a projectional and productive Docker IDE, implementing a more formally specified language definition, representative of what is necessary to create imagesfor use with a containerisation platform. Alembicue guarantees syntactic correctness with a projectional editor mutating an abstract syntax tree, incorporating contextual intentions and quick fixes to suggest and automatically apply standards and best practices. Alembicue’s launch has been a success, being received well by the community with tens of thousands of interested visitors to the project page, and elated testimonials from those having used the application and the innovative concepts portrayed within. Acknowledgements I would like to thank my supervisor, Dr. Daniel Reidenbach, for his consistent support and valuable feedback on my work. I would also like to thank my family and friends for their support in my studies. ii alembicate, v. 1627. transitive. Chiefly figurative: to produce, refine, or transform (an idea, emotion, etc.) as if in an alembic. Cf. alembicated adj. cue, n.2 1553. 1c. A stimulus or signal to perception, articulation, or other physiological response. Oxford English Dictionary (1989). alembicue, n. 2019. Chiefly emblematic: the juncture of the production of imagery and the container articulation process founded on the aforesaid. With apologies to linguists. iii Contents I Foundation 1 1 Introduction 2 1.1 Overview . -
Deep, Seamless, Multi-Format, Multi-Notation Definition and Use of Domain-Specific Languages
Deep, Seamless, Multi-format, Multi-notation Definition and Use of Domain-specific Languages Inauguraldissertation zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaften der Universität Mannheim vorgelegt von Diplom-Wirtschaftsinformatiker Ralph Gerbig aus Worms Mannheim, 2017 Dekan: Professor Dr. Heinz Jürgen Müller, Unversität Mannheim Referent: Professor Dr. Colin Atkinson, Unversität Mannheim Korreferent: Professor Dr. Juan de Lara, Universidad Autónoma de Madrid Tag der mündlichen Prüfung: 24. Februar 2017 To Valerie. Acknowledgments I thank Colin Atkinson for the supervision and the support he provided during the last six exciting years. We had a lot of open minded and fruitful discussi- ons and he gave invaluable guidance and feedback on this dissertation and the Melanee tool. I also thank Juan de Lara, my second supervisor, for his input to this dis- sertation and the joint research. Especially, I want to thank him for hosting one of my students at the Universidad Autónoma de Madrid and the support he gave to this student during his master thesis. I thank all the students who contributed towards the success of this dis- sertation in the form of seminars and bachelor/master theses and as student assistants. Especially, I want to thank Nicole Wesemeyer, Katharina Markert, Daniel Gritzner and Dominik Kantner for their outstanding contributions to the Melanee tool. I thank Bastian Kennel, for supervising my diploma (cf. master) thesis on the topic of deep modeling. This built the foundation for all following research leading to the Melanee tool as it is today and the approach described in the dissertation. I thank Mathias Fritzsche for the opportunity to join him for an internship at SAP Research in Belfast where I had my first taste of research, model-driven development and Eclipse Plug-in development. -
Jetbrains MPS As a Tool for Extending Java
JetBrains MPS as a Tool for Extending Java Vaclav Pech Alex Shatalin Markus Voelter JetBrains JetBrains independent/Itemis [email protected] [email protected] [email protected] Abstract bench [8], MetaEdit+1, Eclipse Xtext 2 and Spoofax 3 (for a JetBrains MPS is an integrated environment for language brief comparison of some of these tools see Related Work in Section 4). For a general overview of language workbenches, engineering. It allows language designers to define new pro- 4 gramming languages, both general-purpose and domain- please refer to the Language Workbench Competition . specific, either as standalone entities or as modular exten- Real-world use of MPS As a real-world proof of MPS, sions of already existing ones. Since MPS leverages the con- JetBrains has built YouTrack 5, a web-based bug tracking cept of projectional editing, non-textual and non-parseable application. It heavily relies on an MPS-based set of lan- syntactic forms are possible, including tables or mathemat- guages for web application development and database map- ical symbols. This tool paper introduces MPS and shows ping { Webr-DNQ. In less than three years YouTrack became how its novel approach can be applied to Java development. an important part of JetBrains' product portfolio, validating Special attention will be paid to the ability to modularize the LOP idea as well as its implementation in MPS. More and compose languages. on how YouTrack benefits from LOP can be found in [9]. Categories and Subject Descriptors D.2.6 [Software The MPS team cooperated with several universities to Engineering]: Programming Environments - Programmer help them adopt MPS as a tool for language design research.