View
213
Download
0
Embed Size (px)
Citation preview
From Research to Startup: Experiences in Interoperability
Arie van DeursenLeon Moonen23 January 2001
2
The ASF+SDF Experience
Describe language: SDF: abstract + concrete syntax ASF: language processors
Generate tools Parser, pretty printer, structure editor Type checker, evaluator, transformer …
Meta-Environment
Bergstra, Heering, KlintAlg. Specification,
1989
Van Deursen, Heering, KlintLanguage Prototyping, 1996
Klint, TOSEM 1993
3
(Meta) Environment Architecture
Heterogeneous tools
P1P2
P3Pn
msg msg
msg
…transeditorparser pp
evaldo
ack-event value eventAnnotated terms
ToolBus coordination architecture
Bergstra, Klint, SCP, 1998
4
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
5
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/
6
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
7
Dealing with Data Flow
Many data flow problems reimplemented for different languages
Dhal Framework: map languages to common representation
variable definitions and usescontrol flow (structured & unstructured)
framework performs control flow normalization
generic data flow solutions on Dhal
Re-useDFA library
Multi-languagesystems
8
Object Identification
repository
Cobolsources
facts
types conceptlattice
factextraction
typeinference
item/featureselection concept
analysis
conceptrefinement
conceptvisualisation
9
Object Identification
repository
Cobolsources
facts
types conceptlattice
factextraction
typeinference
item/featureselection concept
analysis
conceptrefinement
conceptvisualization
Tools used: SDF, jasfix, grok, MySQL, concept, dot, Tcl/Tk
Wired by perl/make Pragmatic, fine for research
10
Object Identification
repository
Cobolsources
facts
types conceptlattice
factextraction
typeinference
item/featureselection concept
analysis
conceptrefinement
conceptvisualization
Cobol Grammar:• Reused & modified• Other tools out of sync
11
Object Identification
repository
Cobolsources
facts
types conceptlattice
factextraction
typeinference
item/featureselection concept
analysis
conceptrefinement
conceptvisualization
ICSE99, IWPC2000
12
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
13
DocGen
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
ICSM 1999,WCRE 2000
14
DocGen Architecture
Mainframe
Clients
SQL
Analyzer
Documentation Server
CobolPrograms
Documentation
PageRequest
DocGen
15
Analysis Interoperability
Mainframe
Clients
SQL
Analyzer
Documentation Server
CobolPrograms
Documentation
PageRequest
DocGen
• Source + key properties• Island grammars• Use 3d party parser?
16
Query/view Interoperability
Mainframe
Clients
SQL
Analyzer
Documentation Server
CobolPrograms
Documentation
PageRequest
DocGen
Metric toolsGraph visualization
Clustering tools
17
The DocGen Data Model
callcommentscontrolflowcopycopyrecordcreated
sourceInfosourcesubsystemssummarieswords
entitiesflatfileInfoflatfileOpsflatFileRecor
dsparameters
Evolve data model as we get along
18
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
19
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)
20
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
21
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
22
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)