200 likes | 349 Views
Present and Future of Software Transformation Tools. Dr. Carlos Araya CEO 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
E N D
Present and Future ofSoftware Transformation Tools Dr. Carlos Araya CEO 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 Meaning Semantic level Compilation Understating Abstractrepresentation Abstract targetsource code Abstractsyntax Term by Term transformation Target sourcecode Source code Concrete syntax
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-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…
… 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-write Top-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
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 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