Title: From Research to Startup: Experiences in Interoperability
1From Research to Startup Experiences in
Interoperability
- Arie van Deursen
- Leon Moonen
- 23 January 2001
2The ASFSDF 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
3(Meta) Environment Architecture
- ToolBus coordination architecture
Bergstra, Klint, SCP, 1998
4Independent 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
5Agreeing 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/
6Talking 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
7Dealing 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
8Object Identification
9Object Identification
- Tools used SDF, jasfix, grok, MySQL, concept,
dot, Tcl/Tk - Wired by perl/make
- Pragmatic, fine for research
10Object Identification
- Cobol Grammar
- Reused modified
- Other tools out of sync
11Object Identification
ICSE99, IWPC2000
12Spinning 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
13DocGen
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
14DocGen Architecture
Mainframe
Cobol Programs
DocGen
Analyzer
SQL
Documentation Server
Page Request
Documentation
Clients
15Analysis Interoperability
Mainframe
- Source key properties
- Island grammars
- Use 3d party parser?
Cobol Programs
DocGen
Analyzer
SQL
Documentation Server
Page Request
Documentation
Clients
16Query/view Interoperability
Mainframe
Cobol Programs
DocGen
Analyzer
SQL
Documentation Server
Page Request
Metric tools Graph visualization Clustering tools
Documentation
Clients
17The DocGen Data Model
- call
- comments
- controlflow
- copy
- copyrecord
- created
- sourceInfo
- source
- subsystems
- summaries
- words
entities flatfileInfo flatfileOps flatFileRecords
parameters
- Evolve data model as we get along
18Data 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
19Presentation
- 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)
20Summary 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
21Discussion (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
22Discussion (II)
- Encourage explicit schemas
- Collect and discuss the schemas we use
- Distribute schemas (Susans 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)