Download presentation
Presentation is loading. Please wait.
1
The Software Composition Group Oscar Nierstrasz scg.unibe.ch
2
© O. Nierstrasz The Software Composition Group 13.2 Software inevitably changes … … but present-day programming languages and development environments go out of their way to inhibit change rather than to support it Symptoms: —Assumption of global consistency —Static type systems —Design patterns —… Oscar Nierstrasz, Alexandre Bergel, Marcus Denker, Stéphane Ducasse, Markus Gaelli and Roel Wuyts, “On the Revival of Dynamic Languages,” Proceedings of Software Composition 2005
3
© O. Nierstrasz The Software Composition Group 13.3 Ongoing research projects (a selection) DSLs — embedding domain models in code Geppetto — fine-grained reflection Hermion — bring dynamic information to the IDE Object Flow Analysis — track flow of object references
4
© O. Nierstrasz The Software Composition Group 13.4 Embedding Domain Models in Code Examples —Seaside – Generate XHTML, JavaScript —Mondrian – Graph visualization engine —Magritte – Meta-modeling of domain-objects How to … —integrate with host language? —integrate with other DSLs? —integrate with existing tools? —migrate from/to a DSL? 13.4 Make Domain Specific Languages (DSLs) first-class citizens of the host language.
5
© O. Nierstrasz The Software Composition Group 13.5 Example DSL: String Interpolation 13.5 DSLSearchPattern new expression: '`#literal'; verification: [ :ast | ast value isString ]; action: [ :ast |ast replaceWith: (self interpolate: ast value) ]; yourself Transcript show: ’10! = {10 factorial}’ Transcript show: '10! = ', 10 factorial asString Domain Code Specification of DSL
6
© O. Nierstrasz The Software Composition Group 13.6 Geppetto — dynamic adaptation through partial behavioural reflection Marcus Denker, et al., "Sub-Method Reflection", TOOLS Europe 2007 Applications to: Instrumentation Pluggable types AOP & COP …
7
© O. Nierstrasz The Software Composition Group 13.7 Hermion — combining static and dynamic information in the IDE David Röthlisberger, et al. "Feature Driven Browsing", ICDL 2007 Feature-centric environment:
8
© O. Nierstrasz The Software Composition Group 13.8 David Röthlisberger, et al. "Exploiting Runtime Information in the IDE", ICPC 2008 Enriching source artifacts with dynamic information
9
© O. Nierstrasz The Software Composition Group 13.9 David Röthlisberger, "Querying Runtime Information in the IDE", submitted to QTAPC 2008 Querying runtime information in the IDE
10
© O. Nierstrasz The Software Composition Group 13.10 Object Flow Analysis Track flow of object references by means of first-class aliases —Trace flows between features, classes etc. —Trace back flow from errors to code that produced the objects Adrian Lienhard, Stéphane Ducasse and Tudor Gîrba, “Object Flow Analysis — Taking an Object-Centric View on Dynamic Analysis”, ICDL’07
11
© O. Nierstrasz The Software Composition Group 13.11 Problem: back-in-time history quickly grows beyond memory capacity Solution: A VM that stores history as real objects in application memory Uses object flow model to remember past object states and to remember how objects are passed around Discards obsolete history using the GC Adrian Lienhard, Tudor Gîrba and Oscar Nierstrasz, “Practical Object-Oriented Back-in-Time Debugging”, ECOOP’08
12
© O. Nierstrasz The Software Composition Group 13.12 Projects Student projects & Masters projects —scg.unibe.ch [Caveat — never up-to-date!] —Come and talk to us!
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.