220 likes | 266 Views
From Research to Startup: Experiences in Interoperability. Arie van Deursen Leon Moonen 23 January 2001. The ASF+SDF Experience. Bergstra, Heering, Klint Alg. Specification , 1989. Describe language: SDF: abstract + concrete syntax ASF: language processors Generate tools
E N D
From Research to Startup: Experiences in Interoperability Arie van Deursen Leon Moonen 23 January 2001
The ASF+SDF Experience Bergstra, Heering, Klint Alg. Specification, 1989 • Describe language: • SDF: abstract + concrete syntax • ASF: language processors • Generate tools • Parser, pretty printer, structure editor • Type checker, evaluator, transformer … • Meta-Environment Van Deursen, Heering, Klint Language Prototyping, 1996 Klint, TOSEM 1993
… editor pp parser trans eval do ack-event value event msg msg P2 Pn P1 P3 msg (Meta) Environment Architecture • Heterogeneous tools • Annotated terms • ToolBus coordination architecture Bergstra, Klint, SCP, 1998
Independent Tools • Size matters: • use sharing to deflate large data • Format wars hard to avoid • AsFix 1, 2, and 1.5. • (AsFix = local AST representation format) • Installing independent tools • requires appropriate bundling
Agreeing on Grammars • Abstract syntax ~ schema. • Tools for one language share grammar? • Different tasks require different variations • Evolving grammars implies divergence • Our best attempt: a grammar base • Set of reference grammars. • Maturity levels indicate stability/immutability www.program-transformation.org/xt/
Talking to Industry • Discuss maintenance problems with • ABN AMRO Bank • Software house Roccade • Use language technology as basis for reverse and re-engineering research • Goal: • Strengthen generic technology • Start with Cobol instantiation
Dealing with Data Flow • Many data flow problems reimplemented for different languages • Dhal Framework: • map languages to common representation • variable definitions and uses • control flow (structured & unstructured) • framework performs control flow normalization • generic data flow solutions on Dhal Re-use DFA library Multi-language systems
Cobol sources fact extraction facts type inference item/feature selection concept analysis concept lattice types repository concept refinement concept visualisation Object Identification
Cobol sources fact extraction facts type inference item/feature selection concept analysis concept lattice types repository concept refinement concept visualization Object Identification • Tools used: SDF, jasfix, grok, MySQL, concept, dot, Tcl/Tk • Wired by perl/make • Pragmatic, fine for research
Cobol sources fact extraction facts type inference item/feature selection concept analysis concept lattice types repository concept refinement concept visualization Object Identification • Cobol Grammar: • Reused & modified • Other tools out of sync
Cobol sources fact extraction facts type inference item/feature selection concept analysis concept lattice types repository concept refinement concept visualization Object Identification ICSE99, IWPC2000
Spinning Off • Software Improvement Group (SIG): • Documentation Generation • Program Transformation • Strategic Consultancy • Mission: • Help companies with their legacy problems • Transfer of CWI reengineering technology • Employees: 2000, 2001, 2002: 4, 8, 16
DocGen ICSM 1999, WCRE 2000 • Analyze Cobol system and redocument it using hypertext and graphs. • Operational characteristics: • Processing 50.000.000 lines of code • ASP: operate via Internet • On-site installation • No bugs please
DocGen Architecture Mainframe Cobol Programs DocGen Analyzer SQL Documentation Server Page Request Documentation Clients
Analysis Interoperability Mainframe • Source + key properties • Island grammars • Use 3d party parser? Cobol Programs DocGen Analyzer SQL Documentation Server Page Request Documentation Clients
Query/view Interoperability Mainframe Cobol Programs DocGen Analyzer SQL Documentation Server Page Request Metric tools Graph visualization Clustering tools Documentation Clients
call comments controlflow copy copyrecord created sourceInfo source subsystems summaries words The DocGen Data Model entities flatfileInfo flatfileOps flatFileRecords parameters • Evolve data model as we get along
Data Model Conversion • Customer request: • Reuse DocGen data for other tool set • Extend DocGen with data from this tool set • Exchange through XML • Planned approach: • Describe source and target model • Generate reader & visitor for source data • Refine visitor to construct target data
Presentation • Describe structure of pages • Using a grammar • JJForester generates Java classes + visitors • Composing a page: • Construct abstract structure • Use visitor to emit HTML • (You want XML? Specialize visitor)
Summary: Experience Report • ToolBus-based cooperation • Grammar-based data exchange • Collect reference grammars • Benefit from code generation • DHAL data flow framework • DocGen Cobol data model • Open up tools with jdbc, http, JavaDoc
Discussion (I) • Systematic interoperability is not for free: • Opening up tools and adhering to standards takes effort • Standards may evolve • What is the reward? • Who gets the reward? • Start with bilateral cooperations
Discussion (II) • Encourage explicit schemas: • Collect and discuss the schemas we use • Distribute schemas (Susan’s zoo) • Sooner or later they may get reused, or even refactored into a reference schema. • Strengthen communication • Use on line forum a la wiki? (lightweight collaborative web discussion forum)