Title: Present and Future of Software Transformation Tools
1 Present and Future ofSoftware Transformation
Tools
- Dr. Carlos Araya
- CEO ArtinSoft
- Feb, 2003
2About ArtinSoft
- Founded in 1993
- HQ in San José, CR operations in US, MX, EU
- RD in automatic source code transformation
- 150 employees
- Customers include Microsoft, Borland,
ICL-Fujitsu, Intel, ATT - Strategic investors include Intel and Microsoft
3PresentationContents
- General transformation process
- Current transformation processes
- Next generation of transformation tools
- What is needed to get there...
- Study case ArtinSofts technologies
4Source codetransformation
Meaning
Semantic level
Compilation
Understating
Abstractrepresentation
Abstract targetsource code
Abstract syntax
Term by Term transformation
Target sourcecode
Source code
Concrete syntax
5Some 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
6Current 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
7Next 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
8What is needed
- Semantic representation languages
- Automatic deduction and reasoning
- Equivalence preserving re-writing tools
- Strong search and matching capabilities
- Broad range of applicability
9What can be done
- Tools that might derive from a languages
- Scanner/Parsers Pretty-printers
- Syntax-directed editors Type-checkers
- Interpreters Dataflow analyzers
- Call graph extractors Partial evaluators
- Optimizers Program slicers
- Origin trackers Debuggers
- Code generators Compilers
- Profilers Test case generators
- Test coverage analyzers Impact analyzers
- Complexity analyzers Documentation generators
- Systematic program modification tools
- Component descriptions
- .and more
10 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
11Model-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
12Immobots
- 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
13IBMs 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
14Ká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-write
- Top-down design patterns, bottom-up concept
mapping - 100 semantic equivalence
- Natural mathematical deduction OO grammar
representation
15Ká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/compone
ntization tools - Add-in to Interactive Development Environments
- Code understanding business logic abstraction
- Linearly correlated efficiency
- Binding resolution and type inference
16Example tools for n-tiering
- Knowledge-based analysis facilitates keeping
related pieces of code together
17Where should each piece of code go?
18Methodology 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
19 Software transformationpromise
- 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