Meeting 06/11/2020
Summary
By this meeting I had explored most of the avenues discussed during the previous meeting. The only one I had deferred for now was exploring distributed, multi-medium storage of the graphs.
I also made a list of questions/remarks that I wanted to discuss Prof. Vangheluwe:
- (How) do we properly handle the diamond problem in case of multiple inheritance?
- In case of structural typing, are associations part of the structure?
- I had difficulties finding explicitly described algorithms for both nominal and strucutural typing in scientific literature and online.
From the feedback I received and question discussions I gathered the following notes:
- Make sure that property overriding is properly implemented in case of inheritance.
- Make the morphism links thinner (2pt -> 1pt)
- Add parameter to indicate which morphisms to show as showing all of them can become quite cluttered.
- The diamond problem is not really a problem from a modelling perspective as it is from an OOP perspective.
- Associations are not part of the structure when performaing structural type checking. So associations should be checked afterwards, just like in the nominal conformance checking algorithm described here.
- There are not many explicitly described type checking algorithms indeed, so I should definitely add them to my report as this will be a good scientific contribution. Prof. Vangheluwe suggested that I additionally check C.Atkinson's Melanee and the book Principles of Compiler Design by Aho and Ullman, a.k.a. the dragon book, for type checking algorithms.
Action items
- Implement feedback listed above.
- Explore distributed, multi-medium storage of the graphs.
- Explore bootstrapping the abstract syntax of the concrete syntax.
- Look into implementing ramification, matching and model transformations.
Meeting 23/10/2020
Summary
By this meeting I was done with my basic linguistic conformance checker. I gave a small demo of its workings. Further avenues to explore were suggested by Prof. Vangheluwe and included:
- Adding support for inheritance.
- Adding other types of conformance checking, e.g. structural typing, duck typing.
- Improving visualization of morphisms and separating some draw.io elements into different smaller elements.
- Creating a library of draw.io blocks similar to Randy Paredis' block library for CBD's.
- Explore storage/usage of graphs stored in different storage mediums.
Prof. Vangheluwe also suggested that I started to think about how I was going to put my findings into a report/paper, started collecting examples, etc.
Action items
- Explore different avenues listed above.
Meeting 16/10/2020
Summary
This was a rather short meeting with some status updates from both myself and Prof. Vangheluwe. Some highlights include:
- I am pretty well underway with my implementation of the conformance checker.
- Prof. Vangheluwe suggested that I also add any morphisms that I find during the conformance check to the internal representation.
- Prof. Vangheluwe cleared up my confusion on the difference between conformance checking and type inference.
- Prof. Vangheluwe gave me an overview of the different related topics that are currently being researched in parallel with my topic.
Action items
- Continue working on conformance checker, taking into account suggestions.
Meeting 06/10/2020
Summary
During the first hour of this meeting mostly practicalities were discussed including:
- some updates regarding status of summer student job
- registration of research internship / thesis via SiSA
- creation of this personal page
- reports of our weekly meetings on this page
During the second part of the meeting Prof. Vangheluwe gave more information on the big picture my research internship and thesis will be working towards.
I will start my journey by creating a conformance checker which works with both concrete visual and textual syntax. This conformance checker will be extended further with concepts that I learn during the "Model driven engineering" course.
A small schematic overview (based on Prof. Vangheluwe's scribbles) can be found below.
Action items
- Update personal page.
- Put meeting report on personal page.
- Register research internship + thesis via SiSA
- Start working on conformance checker.