+ All Categories
Home > Documents > Bridging the chasm between MDE and the world of compilation Nondini Das 1.

Bridging the chasm between MDE and the world of compilation Nondini Das 1.

Date post: 16-Jan-2016
Category:
Upload: mervin-lucas
View: 216 times
Download: 0 times
Share this document with a friend
Popular Tags:
31
Bridging the chasm between MDE and the world of compilation Nondini Das 1
Transcript
Page 1: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

1

Bridging the chasm between MDE and the world of compilation

Nondini Das

Page 2: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

2

Introduction

• Model Driven Engineering• Compiler Technology

Page 3: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

3

Compilation

Source: http://www.strchr.com/future_of_compilers Source: http://worldcomputerarticle.blogspot.ca/2010_04_01_archive.html

https://scs.senecac.on.ca/~ipc144/pages/content/compi.html

Page 4: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

4

Research in compilation

• Major advances include– Efficient parsing and parser generation– Advanced grammar formalisms– Source transformation systems– Languages such as DMS, Rascal, Stratego or TXL

• Contributions in program and dataflow analysis include– Type checking– Abstract interpretation– Alias and shape analysis and whole program analysis

• Code generation side– Address the variety and complexity of modern processors

• Maximal efficiency– Code level and meta-level

Page 5: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

5

Model driven Engineering

Source: http://www.theenterprisearchitect.eu/blog/2009/08/05/a-metaphor-for-model-driven-engineering/

Source: http://www.slideshare.net/fraterna/web-technologies-model-driven-engineering

Page 6: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

6

Research in MDE

• MDE was used widely enough to address separation of concerns (SoC) issues, by breaking down complex systems into as many models as needed to make all the relevant concerns understandable. • Models have long been used as descriptive

artifacts, which was already extremely useful. • The idea of MDE is to make it possible to perform

computations on models. • Well-defined syntax and semantics.

Page 7: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

7

Goal

To explore how research in MDE and research in compilation could cross fertilize and might even converge on software language engineering

Page 8: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

8

Compilation

• One of the oldest areas of research in computer science.• Modern industrial strength compilers are

extremely complex pieces of software.• Designing a compiler is a very challenging task.

Page 9: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

9

Compiler flow

Page 10: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

10

What could compiler research bring to MDE?

Some experiences from compilation that could benefit MDE are:– Parsers– Sophisticated algorithms– Program transformation paradigms– Program analysis paradigms– Efficiency, scalability– Platform description model

Page 11: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

11

Model Driven Engineering

Model-driven engineering is the result of a long evolution in software engineering to handle the increasing complexity of software development.

Page 12: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

12

Page 13: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

13

What could MDE research bring to compilation?

Some best practices of MDE that could benefit compilation are: – Complex data representation– Separation of concerns– A uniform model-driven approach for software

and language engineering– Design-by-contract

Page 14: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

14

Convergence into SLE

• The compiler research community proposed some solutions relating to several of the problems faced by MDE.• This is also true the other way round.

Cross-fertilization of these two worlds hence leads to an engineering of software languages that addresses both the representation of data and the analysis and transformation of this data.

Page 15: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

15

Page 16: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

16

The road already covered in cross-fertilizing

• One of the goals of SLE is to provide accessible tools and methods addressing all the stages of the software language lifecycles, from design and implementation to use and evolution.• The cross-fertilization of MDE and compilation

can bring the experience of both communities to SLE. • Tools like XText and EMFText provide concrete

textual syntax

Page 17: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

17

The road already covered in cross-fertilizing

• The LL(*) ANTLR parser generator workbench offer understandable representation of the abstract syntax and fast, flexible parsing. • The TopCased project, an open source MDE

toolkit for the design of safety critical applications and systems.

Page 18: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

18

Page 19: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

19

Challenges

• Domain experts need to manipulate concepts relative to their domain only.

• Language designers also need to make sure that the tools they use enforce some properties and that they do not seriously modify the nature of their work.

• Some of these needs have been addressed in different contexts by other fields of computer science, particularly in programming languages semantics and theory, and formal methods.

• The expertise developed in these domains must also to be incorporated into SLE, along with many other results from other fields and/or communities of computer science.

Page 20: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

20

Challenges

• Methods enabling the construction of a language from other existing languages, and for the reuse of different tools between such languages, are still lacking.• These languages are most often still created from

scratch even though they could benefit from concepts and structures defined in already existing languages.

Page 21: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

21

Page 22: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

22

Challenges

• Manipulations written for the new languages are most often implemented from scratch whereas at least a part of them is already implemented for several other languages and could therefore be reused. • DCE is a classical optimization in a vast majority

of compilers for imperative languages. • A similar optimization can be done on a hardware

circuit description to eliminate useless hardware components or in functional languages. • The basis of DCE is a reachability analysis

processed on a control-flow graph (CFG).

Page 23: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

23

Page 24: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

24

Page 25: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

25

Fig: Capitalization of model manipulations in the GeCoS research-oriented compilerinfrastructure using model typing

Page 26: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

26

Inter-language reasoning

• Increasing need for globally reasoning on a system through different viewpoints.• To reason about such a system, a tool would need

to be able to browse the links (implicit or explicit) between the languages in which viewpoints are defined.• DeRemer and Kron, worked in the context of

programming-in-the-large versus programming-in-the-small. • They introduce the notion of modules written in a

language and linked by another language, dedicated to this goal.

Page 27: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

27

Verification and validation

• V&V tools often face intractable or even undecidable problems.• DSLs can be engineered to be less expressive

than general-purpose programming languages, using a reduced number of domain-specific concepts. • DSLs by definition do not have such a wide user

base, implying the need to formally assess the DSL tooling, and to automate the V&V tasks. • V&V of transformations to ensure preservation of

properties have been explored by the CompCert project.

Page 28: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

28

Verification and validation

• Automated testing of model transformations is another way to ensure property preservation for transformations. • Baudry et al. have identified barriers to such an

automated testing, namely the inherent complexity of the graph structures manipulated by the transformations, the lack of maturity of model management environment and the heterogeneity of transformation languages and techniques.

Page 29: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

29

Conclusion

While SLE is becoming a key concern in software engineering, some challenges should be tackled by relying on MDE and compilation expertise.

Page 30: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

30

Observations

• Table that shows solution to shortcomings from the two communities• Described some covered area• Mentioned challenges • New terms, e.g. Mogram

Page 31: Bridging the chasm between MDE and the world of compilation Nondini Das 1.

31

Thanks!


Recommended