transformation and visualization of abstractions using the intentional programming system

12
Transformation and Visualization of Abstractions using the Intentional Programming System Lutz Roeder September 1999

Upload: lutz-roeder

Post on 12-Feb-2017

183 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Transformation and Visualization of Abstractions using the Intentional Programming System

Transformation and Visualizationof Abstractions using the

Intentional Programming System

Lutz RoederSeptember 1999

Page 2: Transformation and Visualization of Abstractions using the Intentional Programming System

_ ! “ # $ % & ‘ ( ) * + , - . /

0 1 2 3 4 5 6 7 8 9 : ; < = > ?

@ A B C D E F G H I J K L M N O

P Q R S T U V W X Y Z [ \ ] ^ _

` a b c d e f g h i j k l m n o

p q r s t u v w x y z { | } ~ _

Programming 2000

Page 3: Transformation and Visualization of Abstractions using the Intentional Programming System

Programming 2000• Raise Abstraction Level

Recycling existing C++ language…Visual Basic: 50% source code and 50% UI language…

• Improve Software ProductivityText editor…Syntax errors…

Using text search and replace…Out of sync architecture diagrams…

• Enable Software Maintenance

Page 4: Transformation and Visualization of Abstractions using the Intentional Programming System

Source Code(Syntax)

AbstractSyntax Tree

ParsingSyntactic Analysis

Target Code

Semantic AnalysisCode Generation

Syntax is Limited !!!

Source Documents

Page 5: Transformation and Visualization of Abstractions using the Intentional Programming System

Target Code

Transformation

VisualRendering

VisualizationEditing

Debugging

AbstractSource Tree

Code is Data

Source Documents

Page 6: Transformation and Visualization of Abstractions using the Intentional Programming System

Abstract Source Tree

Intention Instance

ifReference DCL

Declaration

Intention (Abstraction)

Tree Element

cond

then

elseParameterization

Page 7: Transformation and Visualization of Abstractions using the Intentional Programming System

Example Tree

int x;

x = 3;

while (x < 5) { }

User Project

Used Libraries

“5”

“3”

x

{

}

while

<

=

Literal

DCL

Typeint

Page 8: Transformation and Visualization of Abstractions using the Intentional Programming System

Rendering

List

if

<

“5”

Constant

x

if _( )_ \n Indent

x > 5

{ }\n

if ( x > 5 ){

}

Display Tree

Regions

Source Graph

Page 9: Transformation and Visualization of Abstractions using the Intentional Programming System

Transformation

list

if

continuebreak

label

goto

while

cond body

{continue:if (<cond>) { <body>; goto continue; }break;};

Expansion

Page 10: Transformation and Visualization of Abstractions using the Intentional Programming System

Environment

AbstractSourceTree

Reduction

LegacyParsers

CodeGeneration

ExtensionLibraries

TargetCode

Rendering

Type-in

Debugger

VersionControl

Page 11: Transformation and Visualization of Abstractions using the Intentional Programming System

Environment

Page 12: Transformation and Visualization of Abstractions using the Intentional Programming System

Summary• Raise Abstraction Level

…by allowing new abstractions and new notations.(e.g. matrix library, string concatenation, foreach, …)

• Improve Software Productivity…by making source more accessible for tools.(e.g. auto-complete, search, reference search, …)

…by enabling source tree level re-factoring.(e.g. auto-rename references, replace API, …)

• Enable Software Maintenance