0
Transformation and Visualization of Abstractions using the Intentional Programming System Lutz Roeder
_ ! “ # $ % & ‘ ( ) * + , - . / 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 [  ]...
Programming 2000 <ul><li>Raise Abstraction Level </li></ul>Recycling existing C++ language… Visual Basic: 50% source code ...
Source Code (Syntax) Syntax is Limited !!! Source Documents Abstract Syntax Tree Parsing Syntactic Analysis Target Code Se...
Target Code Transformation Visual Rendering Visualization Editing Debugging Abstract Source Tree Code is Data Source Docum...
Abstract Source Tree Intention Instance Intention (Abstraction) Tree Element if Reference DCL Declaration cond then else P...
Example Tree int  x ; x =  3 ; while (x <  5 ) { } User Project Used Libraries { } “ 5” “ 3” x while < = Literal DCL Type ...
Rendering Display Tree Regions Source Graph List if < “ 5” Constant x if _( )_ 
 Indent x > 5 { } 
 if ( x > 5 ) { }
Transformation { continue: if ( <cond> ) { <body> ; goto continue; } break; }; Expansion list if continue break label goto...
Environment Abstract Source Tree Reduction Legacy Parsers Code Generation Extension Libraries Target Code Rendering Type-i...
Environment
Summary <ul><li>Raise Abstraction Level </li></ul>… by allowing new abstractions and new notations. (e.g. matrix library, ...
Upcoming SlideShare
Loading in...5
×

Intentional Programming

889

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
889
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Intentional Programming"

  1. 1. Transformation and Visualization of Abstractions using the Intentional Programming System Lutz Roeder
  2. 2. _ ! “ # $ % & ‘ ( ) * + , - . / 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
  3. 3. Programming 2000 <ul><li>Raise Abstraction Level </li></ul>Recycling existing C++ language… Visual Basic: 50% source code and 50% UI language… <ul><li>Improve Software Productivity </li></ul>Text editor… Syntax errors… Using text search and replace… Out of sync architecture diagrams… <ul><li>Enable Software Maintenance </li></ul>
  4. 4. Source Code (Syntax) Syntax is Limited !!! Source Documents Abstract Syntax Tree Parsing Syntactic Analysis Target Code Semantic Analysis Code Generation
  5. 5. Target Code Transformation Visual Rendering Visualization Editing Debugging Abstract Source Tree Code is Data Source Documents
  6. 6. Abstract Source Tree Intention Instance Intention (Abstraction) Tree Element if Reference DCL Declaration cond then else Parameterization
  7. 7. Example Tree int x ; x = 3 ; while (x < 5 ) { } User Project Used Libraries { } “ 5” “ 3” x while < = Literal DCL Type int
  8. 8. Rendering Display Tree Regions Source Graph List if < “ 5” Constant x if _( )_ Indent x > 5 { } if ( x > 5 ) { }
  9. 9. Transformation { continue: if ( <cond> ) { <body> ; goto continue; } break; }; Expansion list if continue break label goto while cond body
  10. 10. Environment Abstract Source Tree Reduction Legacy Parsers Code Generation Extension Libraries Target Code Rendering Type-in Debugger Version Control
  11. 11. Environment
  12. 12. Summary <ul><li>Raise Abstraction Level </li></ul>… by allowing new abstractions and new notations. (e.g. matrix library, string concatenation, foreach, …) <ul><li>Improve Software Productivity </li></ul>… 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, …) <ul><li>Enable Software Maintenance </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×