KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft RAISE’13 – DAY 2: OVER THE HORIZON www.kit.edu Universal Programmability How AI Can Help Walter F. Tichy, Mathias Landhäußer, Sven J. Körner | May 26, 2013
Walter F. Tichy, Mathias Landhäußer, Sven J. Körner , Raise'13
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
KIT – Universität des Landes Baden-Württemberg und
nationales Forschungszentrum in der Helmholtz-Gemeinschaft
RAISE’13 – DAY 2: OVER THE HORIZON
www.kit.edu
Universal Programmability
How AI Can Help Walter F. Tichy, Mathias Landhäußer, Sven J. Körner | May 26, 2013
2 26.05.2013
Problem 1
Almost everyone has one or more programmable devices.
There are literally billions of chips out there.
But only a tiny fraction of the owners of programmable devices can
program.
Programmability, the most fundamental aspect of computers, is
inaccessible to almost everyone.
Walter F. Tichy, Mathias Landhäußer, Sven J. Körner | Universal Programmability
3 26.05.2013
Problem 2
Shortage of programmers.
In the EU alone there are estimates that the shortage will grow to
900,000 programmers in ten years.
Possible fixes:
Train more of them.
Import them.
Select only the best.
Match tasks with skill sets.
Deskill programming, so more can program.
(Automate it.)
Walter F. Tichy, Mathias Landhäußer, Sven J. Körner | Universal Programmability
None of this scales.
4 26.05.2013
A Possible Solution
Programming in natural language could be done by anyone.
People are good at explaining.
We teach our children.
Recipes, instruction manuals, assembly manuals, books, etc.
Requirements elicitation is explaining the domain.
Some of the challenges of natural language:
Ambiguity
Implicit context
Implicit assumptions
These challenges need to be met.
A smart programmable device can ask for clarification.
Programming is not a one-way street.
Walter F. Tichy, Mathias Landhäußer, Sven J. Körner | Universal Programmability
5 26.05.2013
Why now?
Because Language Technology has made
tremendous strides
Translation devices: Jibbigo
Walter F. Tichy, Mathias Landhäußer, Sven J. Körner | Universal Programmability
6 26.05.2013
IBM Watson wins Jeopardy
Walter F. Tichy, Mathias Landhäußer, Sven J. Körner | Universal Programmability
7 26.05.2013
And the Siri Announcement...
Walter F. Tichy, Mathias Landhäußer, Sven J. Körner | Universal Programmability
8 26.05.2013
Recent Successes of Applying NLP in SE
Inferring code contracts from method descriptions
Detecting incorrect code comments
Programming Excel by example
Test script generated from NL requirements
Our own contributions:
Automatic specification improvement (remove ambiguities by checking
knowledge sources and asking the writer)
Generating UML diagrams from textual specifications.
Round-trip engineering (if you change the class diagram, the
requirements text is updated automatically)
Walter F. Tichy, Mathias Landhäußer, Sven J. Körner | Universal Programmability
9 26.05.2013
Example: IETF 3912 WHOIS Protocol
A WHOIS server listens on TCP port 43 for requests
from WHOIS clients.
The WHOIS client makes a text request to the WHOIS
server, then the WHOIS server replies with text
content.
All requests are terminated with ASCII CR and then
ASCII LF.
The response might contain more than one line of text,
so the presence of ASCII CR or ASCII LF characters
does not indicate the end of the response.
The WHOIS server closes its connection as soon as the
output is finished.
The closed TCP connection is the indication to the
client that the response has been received.
Walter F. Tichy, Mathias Landhäußer, Sven J. Körner | Universal Programmability
10 26.05.2013
IETF 3912: WHOIS Protocol
Generated Class Diagram
Walter F. Tichy, Mathias Landhäußer, Sven J. Körner | Universal Programmability