Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
research:plomo2 [2015/10/22 11:34] – [Achievements] jfabryresearch:plomo2 [2016/10/14 10:19] (current) – [Achievements] mdenker
Line 52: Line 52:
 ===== Achievements ===== ===== Achievements =====
  
-=== Scientific Results 2014 ===+=== 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/Switzerland. The stay of Marcus Denker in Chile in November 2015 had the goal to make the new reflective infrastructure to be reliable enough for other PLOMO sub projects to use (namely LRP and Profilers). A breakpoint system based on Metalinks has been added to Pharo5 and is being improved for the release of Pharo6. 
 +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 and scalability in Roassal 2D. We have improved the FFI support of Pharo to use external libraries. With that, we created binding to [[https://www.libsdl.org|SDL2]] which allowed to move the window management code from the Virtual Machine to Pharo (OSWindow).+== 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), numerical set of numbers [6] (e.g., metric values). Roassal 2D has been improved from the interaction and scalability point of view. Roassal 2D is regularly used to visualize software systems large of thousands of classes. 
 +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 binding to SDL2 which allowed to move the window management code from the Virtual Machine to Pharo (OSWindow). The 2D infrastructure work (OSWindow) has been taken up by another Project (Inria in collaboration with Thales). It has been extended with multi-touch support and a gesture engine. Besides pre-defined low level gestures (e.g., pinch or multi-finger swipe), the engine is extensible with user-defined gestures. The Woden 3D graphics engine is a first demo that uses this foundation to bring the ideas of Roassal to 3D. The new next generation graphics frameworks like Metal and Vulcan where the driving force to revisit Woden. The new framework Woden 2 uses the lowcode subsystem (see WP1) for a new generation, high perfomance 3D framework for Pharo. This will be the foundation of Roassal3D soon. Woden has already seen use outside of the PLOMO project, for example it is used for experiments with virtual reality at a large french multi-national company.
  
-With the new FFI and the OSWindow functionalitybindings to OpenGL has been createdThe Woden 3D graphics engine is a first demo that uses this foundation to bring the ideas of Roassal to 3D. +== WP 3: Tools for Analyzing Dynamic Information == 
-[[https://www.youtube.com/watch?v=1Nze9tnwYxY|Video]].+Live Robot Programming (LRP) [10] as a case for the first two points of WP3: Visualization to navigate and browse source codeVisualizing dynamic information to navigate source codeFirstly, in LRP the (Domain-Specific) source code is shown in (Domain-Specific) visualization made in Roassal2 and Spec. Clicking on the entities in the visual representation causes a navigation action in the source code of the program. Secondly, in the LRP visualization the dynamic information of the state of variables in scope is shown, as well as which piece of the code is currently running, and this is partially enabled by Slots. The visit of Marcus Denker to Chile in spring 2015 helped to make serious progress on the base implementation infrastructure: The LRP prototype now is based in the First Class Variables (Slots and Globals) that are available in Pharo. 
 +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, easily combining classical UI widgets with more advanced visualizations (provided by Roassal and/or the powerful object inspection and modification abilities of the GT Inspector)One example of a specific UI built this way is the work of Fabry and Sinclair [14] allowing the analysis of the dynamic evolution of simulated object trajectories in different physics engines e.g., the Siconos engine by INRIA BipopThis work on Spec is enhanced by the writing of extensive documentation on the frame- work, which was shown to be necessary for developers to effectively be able to construct such user interface
  
  
-== WP 3 =+=== Work outside of work packages === 
- +Close proximity among the researchers also allowed work outside of the work packages to be startedOne example is a preliminary effort in speeding up collections handling [12], another the work on identifying classes in legacy JavaScript code [15].
-Live Robot Programming (LRP) 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 representation causes a navigation action in the source code of the program. Secondly, in the LRP visualization the dynamic information of the state of variables in scope is shown, as well as which piece of the code is currently running, and this is partially enabled by Slots. Future work of LRP will improve the dynamic visualization, adding a log of key information that allows to replay the visualization from (and to) a given point, which should be possible by using Slots. +
- +
- +
-=== Scientific Results 2015 === +
- +
-== WP 1 == +
-Expressive Reflective Infrastructure: +
-We worked extensively on the new reflection infrastructure of Pharo as well as First Class Variables. Reflective operations in the form of meta-links can be added to any expression tree. All variables can now be annotated with meta dataReflectivity has been improved to allow Meta-Links to be put on First Class Variables. All work has been integrated in the current Pharo5 development version and is used already by other projects of RMOD and research project of the Universit of Lugano/Switzerland. +
-The stay of Marcus Denker in Chile in November has the goal to make the new reflective infratructure to be reliable enough for other PLOMO sub projects to use (namely LRP and Profilers). +
- +
-== WP 2 == +
-Advanced Visualization Techniques: +
-Roassal 2D continues to improve. The 2D infrastructure work (OSWindow) has been taken up by another Project (Inria in collaboration with Thales). It has been extended with multi-touch support and a gesture engine. Besides pre-defined low level gestures (e.g. pinch or multi-finger swipe), the engine is extensible with user-defined gestures. In addition, work on Roassal 3D is progressing. Roassal 3D is now based on the Woden 3D engine. We hope to see a first release next year. +
- +
-== WP 3 == +
-Analyzing Dynamic Information: +
-The work on Live Robot Programming (LRP) continues. The visit of Marcus Denker to Chile in spring 2015 helped to make serious progress on the base implementation infrastructure: The LRP protoype now is based in the First Class Variables (Slots and Globals) that are available in Pharo4+
  
 === Publications === === Publications ===
-  * Johan Fabry, Andy Kellens, Simon Denier, Stephane Ducasse -- AspectMaps: Extending Moose to Visualize AOP Software -- Science of Computer Programming, volume 79, number 1, pp.6-22, January 2014, Elsevier 
-  * 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, volume 96, number 1, pp.52-69, December 2014, Elsevier 
-  * Benjamin Van Ryseghem, Stéphane Ducasse, Johan Fabry -- Seamless Composition and Reuse of Customizable User Interfaces with Spec -- Science of Computer Programming, volume 96, number 1, pp.34-51, December 2014, Elsevier 
-  * 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://dl.dropboxusercontent.com/u/31543901/MyPapers/Berg14c-Graph.pdf|pdf]] 
-  * A book chapter about the Spec user interface description framework has been finished for a new Pharo Book. [[https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/lastSuccessfulBuild/artifact/Spec/Spec.pier.pdf|pdf]] 
-  * 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: A Tool to Detect Class-like Structures in JavaScript. Proceedings of Brazilian Conference on Software: Theory and Practice (CBSOFT'15) 
-  * 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,  Stéphane Ducasse, Luc Fabresse, Johan Fabry, Sven Van Caekenberghe: Enterprise Pharo. This is the third volume of a series of books covering Pharo and its community. http://files.pharo.org/books/enterprisepharo/  
-=== Publications in preparation === 
-  * Book Agile Visualization: [[http://agilevisualization.com]]. The work on a book on Agile Visualization with Pharo and Roassal has been started. 
-  * Miguel Campusano and Johan Fabry: “ Live Robot Programming: The Language, its Implementation, and Robot API Independence” Submitted to  Elsevier journal Science of Computer Programming, September, 2015 
-  * "Identifying Classes in Legacy JavaScript Source Code” by Leonardo Humberto Silva, Marco Tulio Valente, Alexandre Bergel,Nicolas Anquetil, and Anne Etien. To be submitted to TSE. 
  
 +  - Johan Fabry, Andy Kellens, Simon Denier, Stephane Ducasse. “AspectMaps: Extending Moose to Visualize AOP Software”. Science of Computer Programming, volume 79, number 1, pp.6-22, January 2014, Elsevier https://hal.inria.fr/hal-01086997
 +  - 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 https://hal.inria.fr/hal-00936376
 +  - Esteban Allende, Oscar Callau, Johan Fabry, E ́ric Tanter, Marcus Denker. “Gradual Typing for Smalltalk”. Science of Computer Programming, volume 96, number 1, pp.52- 69, December 2014, Elsevier https://hal.inria.fr/hal-00862815
 +  - Benjamin Van Ryseghem, Stephane Ducasse, Johan Fabry. “Seamless Composition and Reuse of Customizable User Interfaces with Spec”. Science of Computer Programming, volume 96, number 1, pp.34-51, December 2014, Elsevier https://hal.inria.fr/hal-00915350
 +  - 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 on Software Visualization (VISSOFT NIER) https://hal.inria.fr/hal-01369700
 +  - Popular Article LinuxMag: Roassal and the Charter charting framework. http://www.gnulinuxmag.com
 +  - 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://dx.doi.org/10.1109/VISSOFT.2015.7332424
 +  - Damien Cassou, Stephane Ducasse, Luc Fabresse, Johan Fabry, Sven Van Caekenberghe: Enterprise Pharo. This is the third volume of a series of books covering Pharo and its community. http://files.pharo.org/books/enterprise-pharo/
 +  - Book: Alexandre Bergel, Agile Visualization: http://agilevisualization.com
 +  - Miguel Campusano and Johan Fabry: “Live Robot Programming: The Language, its Implementation, and Robot API Independence”. Science of Computer Programming, Elsevier. Received 8 September 2015, Revised 28 March 2016, Accepted 9 June 2016, Available online 17 June 2016. http://dx.doi.org/10.1016/j.scico.2016.06.002
 +  - Leonardo Humberto Silva, Marco Tulio Valente, Nicolas Anquetil, Daniel Carlos Hovadick Flix, Alexandre Bergel, Anne Etien. “JSClassFinder: A Tool to Detect Class-like Structures in JavaScript”. Proceedings of Brazilian Conference on Software: Theory and Practice (CBSOFT’15) https://hal.inria.fr/hal-01369705
 +  - Juan Pablo Sandoval Alcocer, Marcus Denker, Alexandre Bergel, Yasett Acurana. “Dynamically Composing Collection Operations through Collection Promises’. In: Proceed- ings of IWST16. https://hal.inria.fr/hal-01358347
 +  - Ronie Salgado, Stephane Ducasse “Lowcode: Extending Pharo with C Types to Improve Performance”. In: Proceedings of IWST16. https://hal.inria.fr/hal-01353884
 +  - 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://ci.inria.fr/pharo-contribution/view/Books/job/BuildingUIWithSpec/
  
 === Software artifacts === === Software artifacts ===
-  * Pharo: Pharo3 has been released Spring 2014, Pharo4 has seen active development with a release planned for early 2015. [[http://pharo.org]] +  * Pharo: Pharo3 has been released Spring 2014, http://pharo.org 
-  * Pharo: Pharo4 has been released Spring 2015Pharo5 has seen active development with a release planned for early 2016[[http://pharo.org]] +  * Pharo: Pharo4 has been released Spring 2015
-  * Moose: Version 5.0 was relseased[[http://moosetechnology.org]]+  * OSWindow has been integrated in Pharo4. 
 +  * 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://moosetechnology.org 
 +  * Moose: Version 6.0 was released.
   * Roassal2D: Fully based on Athens, the vector graphics support in Pharo   * Roassal2D: Fully based on Athens, the vector graphics support in Pharo
-  * Roassal3D: first version of a 3D version of Roassal. [[https://vimeo.com/141916068]] +  * Roassal3D: first version of a 3D version of Roassal. https://vimeo.com/141916068 
-  * Woden: a new 3D graphic engine, the base of the next generation of Roassal3D. +  * Woden: a 3D OpenGL graphic engine, the base of Roassal3D. 
-  * Improvement of the FFI [[http://users.dcc.uchile.cl/~rsalgado/uffi-fourth-draft.pdf|description pdf]] +  * 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://goo.gl/RuW36E]] 
-  * Reflectivity has been integrated in Pharo5 +  * The lowcode subsystem has been realised http://goo.gl/jHjndl 
-  * OSWindow has been integrated in Pharo4+  * 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.+  * The Opal Compiler has been further improved. It has been extended with support for Slots / Layouts and is used as the basis for Lowcode. 
  
 === Event organization === === Event organization ===
   * International Workshop on Smalltalk Technologies ([[http://www.esug.org/wiki/pier/Conferences/2014/IWST14|IWST]]), co-located at ESUG 2014. Paper awards were sponsored by [[http://www.lamresearch.com/|Lam Research]].   * International Workshop on Smalltalk Technologies ([[http://www.esug.org/wiki/pier/Conferences/2014/IWST14|IWST]]), co-located at ESUG 2014. Paper awards were sponsored by [[http://www.lamresearch.com/|Lam Research]].
   * International Workshop on Smalltalk Technologies  ([[http://www.esug.org/wiki/pier/Conferences/2015/IWST15|IWST]]), co-located at ESUG 2015. Paper awards were sponsored by [[http://www.lamresearch.com/|Lam Research]].   * International Workshop on Smalltalk Technologies  ([[http://www.esug.org/wiki/pier/Conferences/2015/IWST15|IWST]]), co-located at ESUG 2015. Paper awards were sponsored by [[http://www.lamresearch.com/|Lam Research]].
 +  *  International Workshop on Smalltalk Technologies  ([[http://www.esug.org/wiki/pier/Conferences/2016/IWST16|IWST]]), co-located at ESUG 2016. Paper awards were sponsored by [[http://www.lamresearch.com/|Lam Research]].
  
 === Visits === === Visits ===
-2014 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: system support for advanced profiling.   * Alexandre Bergel: 13/12/2014 until 01/01/2015. Subject: system support for advanced profiling.
   * Juraj Kubelka: 06/12/2014 until 19/12/2014. First visit to RMoD to plan future collaboration.   * Juraj Kubelka: 06/12/2014 until 19/12/2014. First visit to RMoD to plan future collaboration.
-2015 Santiago to Lille: 
   * Johan Fabry (January 2015 for Pharo Days Lille, PLEIAD funded)   * Johan Fabry (January 2015 for Pharo Days Lille, PLEIAD funded)
   * Alexandre Bergel (01/07/2015 until 27/07/2015)   * Alexandre Bergel (01/07/2015 until 27/07/2015)
Line 131: Line 125:
   * Miguel Campusano (20/09/2015-07/10/2015)   * Miguel Campusano (20/09/2015-07/10/2015)
   * Alexandre Bergel (Dec 2015)   * Alexandre Bergel (Dec 2015)
 +  * Johan Fabry: July 2016. Subject was the writing of the book on Spec.
 +  * 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 payed by PLEIAD. Subject is Reflection Framework.+  * 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.