Title: Joost Visser
1Collaboration in the Generative Programming
Universe
Joost Visser (inspired by joint work with Arie
van Deursen, Merijn de Jonge, Leon Moonen, and
Eelco Visser)
Workshop on Generative Programming - Málaga - 2002
2What's happening in the Generative Programming
community?
Workshops GP2001_at_ecoop, GP2001_at_oopsla,
GP2002_at_icsr, GP2002_at_ecoop, GTPL2000_at_splc,
GTPL2001_at_icse, ...
Conferences GCSE1999 -2001, SAIG2000 -2001,
SPLC1-2, GPCE2002, ...
Summer school Tampere, Finland
Tools Draco, GenVoca, DMS, Gears, AOG, TL,
MetaTool,Jasper, GOO, Jostraca, Coder, ...
Companies Bayfront Technologies,
Daimler-Crysler, Semantic Designs, Oracle,
DoCoMo, Montages Software Services, ...
3Topic
Goal of Generative Programming Integrate
knowledge of individual developers and
functionality of distinct software products into
a coherent, yet flexible infrastructure for
software production.
Topic of this talk Integrate knowledge of
individual researchers and functionality of
distinct generative tools into a coherent, yet
flexible infrastructure for scientific production.
dream on!
4Coherent, yet flexible infrastructure
Ingredients
- Collaborative web authoring
- WikiWiki
- www.program-transformation.org/gp/
- Collaborative software development
- Exchange formats
- Online component repositories
- www.program-transformation.org/package-base/
5Generative Programming Wiki
What is it?
WikiWiki WikiWiki is Hawaiian for "Fast
!!" Light-weight, easy-to-use system for
collaborative web content management. Edit pages
via your browser. Any word with 2 non-consecutive
capitals is a link.
GPWiki Based on TWiki. Fully transparent
versioning system (CVS inside). Many extras
personal preferences, search scripts, file
attachments, editable side-bars, namespaces,
escape to HTML, change notification, statistics,
...
6Generative Programming Wiki
What is it good for?
- summarize discussions (workshop debate, mailing
list) - present approaches, methods, subfields
- advertise tools, systems, languages, libraries
- develop surveys, taxonomies
- conduct comparative studies
- grow bibliographies, glossary, indexes
- maintain event calendar
- vent opinions, ponder hunches, outline
perspectives
7Generative Programming Wiki
What is there now?
Some pages GenerativeProgramming (definitions),
GenerativeEvents (calendar), GenerativePeople,
GenerativeTools, GenerativeCompanies,
GenerativeSuccessStories, DomainEngineering,
PublicationsOnGenerativeProgramming,
SoftwareProductLines, DomainSpecificLanguages,
Some categories CategoryDSL,
CategoryDomainEngineering, CategoryTutorial,
CategorySystem, CategoryReview, CategoryTaxonomy,
CategoryOptimization, ... Shared wiki
with Program Transformation, Re-engineering
8Generative Programming Wiki
How to contribute?
Advertise Add info on and pointers to yourself,
your own work, tools, company, publications,
events you organize. Compare Add comparisons of
your own work to that of others, explain position
your work within the field. Survey Categorize,
review, evaluate anything present on the Wiki.
Contribute to surveys, taxonomies,
glossaries. Host Use the wiki to host an event
you organize. Idem for the homepage of a project
or tool. Extend Initiate a new page on any topic
you deem relevant.
don't be shy !!
9Collaborative Software Development
Ingredients
- Exchange formats
- Decide on common exchange format(s).
- Let generators, components, front-ends,
back-ends, etc. exchange data in common format. - We use ATerms.
- Online component repositories
- Use common interface for building, testing,
distributing individual packages. - Contribute package descriptions to repository.
- Provide interface for package selection and
bundling. - We use autobundle.
10Collaborative Software Development
Experiences
- Background
- CWI, Utrecht University, Loria, SIG, VU
- Language prototyping, compiler construction,
program transformation, software renovation,
documentation generation, - Many different projects, tools, systems with
mostly ad-hoc reuse among them.
- Current situation
- Online package repository holds 57 packages.
- Packages originate from legacy' systems, new
developments, third parties. - Top-level packages are complete systems such as
ASFSDF Meta-Environment, Stratego compiler,
JJForester, XT, ELAN compiler, ...
11Collaborative Software Development
Package dependencies
- Transitive reduction of reuse relationships
among some 50 packages. - Generated by autobundle behind package base web
interface.
12Collaborative Software Development
GP Perspectives
Product C
Product B
Product A
- Reuse across productlines.
- Reuse between components and generators.
- Reuse between program-transformers and
generators. - Reuse is a catalyst for collaboration
Product Line
stop dreaming !!
13Collaboration in the GP Universe
That's all folks
GP Wiki (collaborative web authoring) www.program
-transformation.org/gp/
Online package base (collaborative software
dev.) www.program-transformation.org/package-base
/
Both self-maintainable, structured, evolvable,
open, easy-to use, light-weight, ...
14Collaboration in the GP Universe
Some questions
- Is anybody actually interested in collaboration?
- Other forms of collaboration?
- Alternatives to Wiki?
- Alternatives to online package base?
- Which exchange formats are used in GP today?
- Prime candidates for reuse?
www.program-transformation.org/gp/
15Generative Programming Wiki
www.program-transformation.org/gp/
16(No Transcript)
17(No Transcript)