20
Present and Future of Software Transformation Tools Dr. Carlos Araya CEO ArtinSoft Feb, 2003

Present and Future of Software Transformation Tools Dr. Carlos Araya CEO ArtinSoft Feb, 2003

Embed Size (px)

Citation preview

Present and Future ofSoftware Transformation Tools

Dr. Carlos ArayaCEO ArtinSoft

Feb, 2003

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

Where should each piece of code go?

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

Thank you very much!