present and future of software transformation tools dr. carlos araya ceo artinsoft feb, 2003
TRANSCRIPT
About ArtinSoft
Founded in 1993
HQ in San José, CR; operations in US, MX, EU
R&D in automatic source code transformation
150 employees
Customers include Microsoft, Borland, ICL-
Fujitsu, Intel, AT&T
Strategic investors include Intel and Microsoft
PresentationContents
General transformation process Current transformation processes
Next generation of transformation tools What is needed to get there...
Study case: ArtinSoft´s technologies
Source codetransformation
Source codeSource codeSource codeSource code
AbstractAbstractrepresentationrepresentation
AbstractAbstractrepresentationrepresentation
Concrete syntax
Abstract syntax
Semantic level
Target sourceTarget sourcecodecode
Target sourceTarget sourcecodecode
Abstract targetAbstract targetsource codesource code
Abstract targetAbstract targetsource codesource code
Und
erst
atin
g
Com
pilation
Meaning
Term by Termtransformation
Some semantics formalisms
Denotational Value based (what expressions denote) explained in functional
calculus Operational
Evaluation based Explains execution
Axiomatic semantic Axiomatic semantics Introduced by Tony Hoare and others Defining programming language semantics independently of syntax
and any particular implementation of language General linguistic representations
Similar to XML Other formalisms separate from human understanding Used by ArtinSoft
Current transformation
tools/services
Based on term-by-term transformation
With manual adjustments(Services)
Mostly for Migrations
Un-maintainable result code
High risk of human error
Increased testing cost
Next generation of transformation tools
Semantics representation formalisms and standards
Linguistic reasoning & transformation technology
Transparent manipulation
Independence of concrete languages
Automatic programming
Automatic programming assistance
Total human maintainable code
Risk free and low cost software maintainable processes
Software & knowledge as assets
Independence of market shifts
What is needed
Semantic representation languages
Automatic deduction and reasoning
Equivalence preserving re-writing tools
Strong search and matching capabilities
Broad range of applicability
What can be done
Tools that might derive from a languages:Scanner/Parsers Pretty-printersSyntax-directed editors Type-checkersInterpreters Dataflow analyzersCall graph extractors Partial evaluatorsOptimizers Program slicersOrigin trackers DebuggersCode generators CompilersProfilers Test case generatorsTest coverage analyzers Impact analyzersComplexity analyzers Documentation generatorsSystematic program modification toolsComponent descriptions
….and more…
… and what we are really looking for
Software automation
Language and platform migration
Re-architecture transformations
Aspect-oriented manipulation
Self-correcting software
Model-based and constrained systems
Immobots (immobile robots)
Autonomic computing
Model-based and constrained
systems
Coming from engineering design
Variety of formal and informal tools{representation formalisms, component manipulation,
properties from the modeled artifact}
Critical, essential, static and dynamic component properties
Ex: Finite state machine models of software
Ex: XIML interface model markup language
Immobots
“Inward-focused, self-reconfiguring machines”
Hard to anticipate all possible contingencies: how vs what
Models of their own inner workings
Safest, fastest and most cost-effective way to deal with instructions, simulations, corrections,
and emergencies
Mars Polar Lander vs Deep Space One
IBM’s autonomic computing
"Civilization advances by extending the number of important operations which we can perform without
thinking about them." - Alfred Whitehead
… "know itself" - its components must also possess a system identity
… configure and reconfigure itself under varying (and in the future, even unpredictable) conditions
… always looks for ways to optimize its workings
… be able to recover from routine and extraordinary events
… must be an expert in self-protection
… know its environment and the context surrounding its activity, and act accordingly
… function in a heterogeneous world and implement open standards
… marshal I/T resources to shrink the gap between the business or personal goals of the user and the necessary implementation
Káblök technology(from Bribrí: agreement, matching)
A programming language for linguistic reasoning ‘Positivism’, if it exists, then it can be described
New general purpose programming paradigm
Algebraic optimizations and simplifications
Highest-level pattern detection and re-writeTop-down design patterns, bottom-up concept mapping
100% semantic equivalence
‘Natural’ mathematical deduction
+ OO grammar representation
Káblök advantages
Highest automatic manipulation of code (95-99%) Generated code is for human consumption Applicable to aspect-oriented manipulation
(security, substitution, performance, simplification, re-architecture, etc.)
Consistency: several languages and problems
Integrates/generates other re-architecture/componentization tools
Add-in to Interactive Development Environments
Code understanding & business logic abstraction
Linearly correlated efficiency
Binding resolution and type inference
Example tools for n-tiering
Knowledge-based analysis facilitates keeping related pieces of code together
IF
DB
BL
BLDB
IF
IF
DBBL
DB
BL
DB
BLIF
IF
BL
DBIF
IF
DB
BL
BLDB
IF
IF
DBBL
DB
BL
DB
BLIF
IF
BL
DBIF
Methodology advantages
Decomposable, fully controllable processes Safe and predictable
Minimum testing, downtime, and re-training Quicker, easier and cheaper
Bridges backward compatibility Results will use latest technologies
Software transformation
promise
Quicker, low-risk corporate evolution
Support the growing complexity
Minimal organizational disruptions
Reinforce knowledge capital
Facilitate platform unification and lower costs
Simplify technology decisions
Better returns on investments
Transform software economics