Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
research:plomo2 [2014/11/05 13:46] – [2014] jfabry | research:plomo2 [2016/10/14 13:19] (current) – [Achievements] mdenker | ||
---|---|---|---|
Line 51: | Line 51: | ||
===== Achievements ===== | ===== Achievements ===== | ||
- | ==== 2014 ==== | ||
=== Scientific Results === | === Scientific Results === | ||
- | == WP 1 == | + | == WP 1: Reflective Foundations |
- | Progress on a new iteration on the reflective layer and metaobject protocol for Pharo: We have implemented the Slots Mechanism in Pharo, which resulted in a first-class reification of instance variables and their accessing through assignment and reading. This allows us to hook into reading and writing of instance variables and perform meta-level operations on them, e.g. adding breakpoints to the reading of a specific instance var, or a transparent notification mechanism for when a specific instance variable is written. The latter can be used, e.g. in WP3 to dynamically update a visualization of the object that contains the instance variable whenever the variable changes. | + | Progress on a new iteration on the reflective layer and metaobject protocol for Pharo: We have implemented the Slots Mechanism in Pharo, which resulted in a first-class reification of instance variables and their accessing through assignment and reading. This allows us to hook into reading and writing of instance variables and perform meta-level operations on them, e.g., adding breakpoints to the reading of a specific instance var, or a transparent notification mechanism for when a specific instance variable is written. The latter can be used, e.g., in WP3 to dynamically update a visualization of the object that contains the instance variable whenever the variable changes. |
+ | Reflective operations in the form of meta-links can be added to any expression tree. All variables can now be annotated with meta data. Reflectivity has been improved to allow Meta- Links to be put on First Class Variables. All work has been integrated in Pharo5 development and is used already by other projects of RMOD and a research project of the University of Lugano/ | ||
+ | The object layout functionality of Pharo allowed us to work on supporting C-Types. The Opal Compiler was extended with primitive types and to emit new low-level bytecode instructions. Combined, this allows performance for use-cases like 2D and 3D frameworks to be speed up by 50-400% [13]. | ||
- | == WP 2 == | ||
- | Interaction | + | == WP 2: Visualizations Engines == |
+ | Two complementaries axes were investigated. Roassal 2D is a visualization engine to render data. Roassal 2D is employed to visualize any arbitrary set of data, including software-related data [5, 9] (e.g., source code, module dependencies), | ||
+ | The second axis is the visualization in 3D. For that purpose, we have improved the FFI support of Pharo to use external libraries. With that, we created | ||
- | Visual | + | == WP 3: Tools for Analyzing Dynamic Information == |
+ | Live Robot Programming (LRP) [10] as a case for the first two points of WP3: Visualization to navigate and browse source code, Visualizing dynamic information to navigate source code. Firstly, in LRP the (Domain-Specific) source code is shown in a (Domain-Specific) visualization made in Roassal2 and Spec. Clicking on the entities in the visual | ||
+ | We worked on refining the user interface framework Spec [4,16], together with its integra- tion with the visualization of dynamic information using Roassal as well as the GT Inspector framework for the analysis of live objects. The goal is to allow a developer to build his own custom user interface for the visualization of dynamic information, | ||
- | == WP 3 == | + | === Work outside of work packages === |
- | + | Close proximity among the researchers also allowed work outside | |
- | Live Robot Programming (LRP) as a case for the first two points | + | |
=== Publications === | === Publications === | ||
- | * Johan Fabry, Andy Kellens, Simon Denier, Stephane Ducasse -- AspectMaps: Extending Moose to Visualize AOP Software -- Science of Computer Programming, | ||
- | * Johan Fabry, Romain Robbes, Marcus Denker -- DIE: A Domain Specific Aspect Language for IDE Events -- Journal of Universal Computer Science, volume 20, number 2, pp.135-168, February 2014 | ||
- | * Esteban Allende, Oscar Callaú, Johan Fabry, Éric Tanter, Marcus Denker -- Gradual Typing for Smalltalk -- Science of Computer Programming, | ||
- | * Benjamin Van Ryseghem, Stéphane Ducasse, Johan Fabry -- Seamless Composition and Reuse of Customizable User Interfaces with Spec -- Science of Computer Programming, | ||
- | * Alexandre Bergel, Sergio Maass, Stéphane Ducasse, Tudor Girba -- A Domain-Specific Language For Visualizing Software Dependencies as a Graph. Proceedings of 2nd IEEE Working Conference on Software Visualization (VISSOFT NIER) [[https:// | ||
- | * A book chapter about the Spec user interface description framework has been finished for a new Pharo Book. [[https:// | ||
- | === Publications in preparation === | + | - Johan Fabry, Andy Kellens, Simon Denier, Stephane Ducasse. “AspectMaps: |
- | | + | |
+ | - Esteban Allende, Oscar Callau, Johan Fabry, E ́ric Tanter, Marcus Denker. “Gradual Typing for Smalltalk”. Science of Computer Programming, | ||
+ | - Benjamin Van Ryseghem, Stephane Ducasse, Johan Fabry. “Seamless Composition and Reuse of Customizable User Interfaces with Spec”. Science of Computer Programming, | ||
+ | - Alexandre Bergel, Sergio Maass, Stephane Ducasse, Tudor Girba. “A Domain-Specific Language For Visualizing Software Dependencies as a Graph”. Proceedings of 2nd IEEE Working Conference | ||
+ | - Popular Article LinuxMag: | ||
+ | - Miguel Campusano and Johan Fabry. “From Robots to Humans: Visualizations for Robot Sensor Data.” In the third IEEE Working Conference on Software Visualization (VIS- SOFT 2015), Sep 27-28, 2015 , IEEE press. http:// | ||
+ | - Damien Cassou, Stephane Ducasse, Luc Fabresse, Johan Fabry, Sven Van Caekenberghe: | ||
+ | - Book: Alexandre Bergel, Agile Visualization: | ||
+ | - Miguel Campusano and Johan Fabry: “Live Robot Programming: | ||
+ | - Leonardo Humberto Silva, Marco Tulio Valente, Nicolas Anquetil, Daniel Carlos Hovadick Flix, Alexandre Bergel, Anne Etien. “JSClassFinder: | ||
+ | - Juan Pablo Sandoval Alcocer, Marcus Denker, Alexandre Bergel, Yasett Acurana. “Dynamically Composing Collection Operations through Collection Promises’. In: Proceed- ings of IWST16. https:// | ||
+ | - Ronie Salgado, Stephane Ducasse “Lowcode: Extending Pharo with C Types to Improve Performance”. In: Proceedings of IWST16. https:// | ||
+ | - Johan Fabry and Stephen Sinclair: ”Interactive Visualizations for Testing Physics Engines in Robotics”. Proceedings of 4th IEEE working Conference on Software Visualization (Tool paper) 3-4 Oct 2016. IEEE Computer Society Press | ||
+ | - Leonardo Humberto Silva, Marco Tulio Valente, Alexandre Bergel, Nicolas Anquetil, and Anne Etien “Identifying Classes in Legacy JavaScript Source Code’ In submission to JSS | ||
+ | - Book in preparation about Spec. https:// | ||
=== Software artifacts === | === Software artifacts === | ||
- | * Moose: Cleaned and pushing toward 5.0 | + | * Pharo: Pharo3 has been released Spring 2014, http:// |
- | * Roassal2: Fully based on Athens, the vector graphic support in Pharo | + | * Pharo: |
- | * Improvement of the FFI [[http:// | + | |
* OSWindow has been integrated in Pharo4. | * OSWindow has been integrated in Pharo4. | ||
- | * Opal | + | * Pharo: Pharo5 has been released Spring 2016, Pharo6 has seen active development with a release planned for early 2017. |
+ | * Reflectivity has been integrated in Pharo5 | ||
+ | * Moose: Version 5.0 was released. http:// | ||
+ | * Moose: Version 6.0 was released. | ||
+ | * Roassal2D: Fully based on Athens, the vector graphics support in Pharo | ||
+ | * Roassal3D: first version of a 3D version of Roassal. https:// | ||
+ | * Woden: a 3D OpenGL graphic engine, the base of Roassal3D. | ||
+ | * Woden 2: a new 3D graphic engine for the next generation 3D frameworks (Metal3D, Vulcan3D), it is the base of the next generation of Roassal3D. [[http:// | ||
+ | * The lowcode subsystem has been realised http:// | ||
+ | * Improvement of FFI (Foreign Function Interface). Work on UFFI to use Lowcode. | ||
+ | * The Opal Compiler has been further improved. It has been extended with support for Slots / Layouts and is used as the basis for Lowcode. | ||
- | === Other artifacts === | ||
- | * Book Agile Visualization: | ||
=== Event organization === | === Event organization === | ||
* International Workshop on Smalltalk Technologies ([[http:// | * International Workshop on Smalltalk Technologies ([[http:// | ||
+ | * International Workshop on Smalltalk Technologies | ||
+ | * International Workshop on Smalltalk Technologies | ||
=== Visits === | === Visits === | ||
- | Santiago To Lille: | + | Santiago To Lille: |
* Ronie Saldago: 24/08/2014 until 07/09/2014. Subject was FFI and OSWindow. | * Ronie Saldago: 24/08/2014 until 07/09/2014. Subject was FFI and OSWindow. | ||
* Miguel Campusano: 16/08/2014 until 11/09/2014. Subject was Slots and visual representation of code. | * Miguel Campusano: 16/08/2014 until 11/09/2014. Subject was Slots and visual representation of code. | ||
- | * Alexandre Bergel: 13/12/2014 until 01/01/2015. Subject | + | * Alexandre Bergel: 13/12/2014 until 01/01/2015. Subject: system support for advanced profiling. |
- | * Juraj Kubelka: 06/12/2014 until 19/12/2014. Subject | + | * Juraj Kubelka: 06/12/2014 until 19/12/2014. First visit to RMoD to plan future collaboration. |
+ | * Johan Fabry (January 2015 for Pharo Days Lille, PLEIAD funded) | ||
+ | * Alexandre Bergel (01/07/2015 until 27/ | ||
+ | * Johan Fabry (July 2015 for ESUG, PLEIAD funded) | ||
+ | * Pierre Chanson (July 2015 and September 2015) | ||
+ | * Miguel Campusano (20/ | ||
+ | * Alexandre Bergel (Dec 2015) | ||
+ | * Johan Fabry: July 2016. Subject | ||
+ | * Ronie Saldago: April - September 2016, to Lille. Working on a new FFI library and a 3D visualization engine | ||
+ | * Alexandre Bergel: December 2016, to Lille. Working on a new platform for software and data visualization | ||
+ | |||
Lille to Santiago: | Lille to Santiago: | ||
* Marcus Denker: 2/1/2015 until 20/1/2015, sponsored by PLEIAD. Subject is Slots. | * Marcus Denker: 2/1/2015 until 20/1/2015, sponsored by PLEIAD. Subject is Slots. | ||
+ | * Marcus Denker: Nov 2015 funded by PLEIAD. Subject is Reflection Framework. | ||
+ | * Marcus Denker: December 2016 funded by PLEIAD. Subject is further integration of the Reflection Framework. |