Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
research:plomo2 [2014/11/05 09:52] – [2014] jfabry | research:plomo2 [2016/10/14 10:10] – [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 === | ||
Line 76: | Line 79: | ||
* 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:// | * 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:// | * A book chapter about the Spec user interface description framework has been finished for a new Pharo Book. [[https:// | ||
+ | * LinuxMag articles on Roassal and the Charter charting framwork. | ||
+ | * Leonardo Humberto Silva, Marco Tulio Valente, Nicolas Anquetil, Daniel Carlos Hovadick Félix, Alexandre Bergel, Anne Etien -- JSClassFinder: | ||
+ | * Miguel Campusano and Johan Fabry: "From Robots to Humans: Visualizations for Robot Sensor Data.” In the third IEEE Working Conference on Software Visualization (VISSOFT 2015), Sep 27-28, 2015 , IEEE press | ||
+ | * Damien Cassou, | ||
=== Publications in preparation === | === Publications in preparation === | ||
- | * LinuxMag articles | + | * Book Agile Visualization: |
+ | * Miguel Campusano and Johan Fabry: “ Live Robot Programming: | ||
+ | * " | ||
=== Software artifacts === | === Software artifacts === | ||
- | * Moose: Cleaned and pushing toward 5.0 | + | * Pharo: Pharo3 has been released Spring 2014, http://pharo.org |
- | * Roassal2: Fully based on Athens, the vector graphic support in Pharo | + | |
- | * Improvement of the FFI [[http://users.dcc.uchile.cl/ | + | |
- | * OSWindow has been integrated in Pharo4. | + | |
- | * Opal | + | |
- | === 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. |