transformation and visualization of abstractions using the intentional programming system
TRANSCRIPT
![Page 1: Transformation and Visualization of Abstractions using the Intentional Programming System](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/1.jpg)
Transformation and Visualizationof Abstractions using the
Intentional Programming System
Lutz RoederSeptember 1999
![Page 2: Transformation and Visualization of Abstractions using the Intentional Programming System](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/2.jpg)
_ ! “ # $ % & ‘ ( ) * + , - . /
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](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/10.jpg)
Environment
AbstractSourceTree
Reduction
LegacyParsers
CodeGeneration
ExtensionLibraries
TargetCode
Rendering
Type-in
Debugger
VersionControl
![Page 11: Transformation and Visualization of Abstractions using the Intentional Programming System](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/11.jpg)
Environment
![Page 12: Transformation and Visualization of Abstractions using the Intentional Programming System](https://reader035.vdocuments.mx/reader035/viewer/2022062821/589f78261a28abbf2e8b67ab/html5/thumbnails/12.jpg)
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