doc-src/isac/msteger/bakk-presentation.tex
author Marco Steger <m.steger@student.tugraz.at>
Wed, 15 Jun 2011 21:55:45 +0200
branchdecompose-isar
changeset 42043 7966a1666bce
parent 42042 4112de132b63
child 42046 bb864b8144a3
permissions -rw-r--r--
presentation and filestructure
neuper@41965
     1
% /usr/share/doc/latex-beamer/solutions/conference-talks/conference-ornate-20min.en.tex
neuper@41965
     2
neuper@41965
     3
\documentclass{beamer}
neuper@41965
     4
\mode<presentation>
neuper@41965
     5
{
neuper@41965
     6
  \usetheme{Hannover}
neuper@41965
     7
  \setbeamercovered{transparent}
neuper@41965
     8
}
neuper@41965
     9
\usepackage[english]{babel}
neuper@41965
    10
\usepackage[latin1]{inputenc}
neuper@41965
    11
\usepackage{times}
neuper@42042
    12
\usepackage{ngerman}
neuper@41965
    13
\usepackage[T1]{fontenc}
neuper@41965
    14
%\usepackage{graphicx}
neuper@41965
    15
neuper@41965
    16
\def\isac{${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}
neuper@41965
    17
\def\sisac{{\footnotesize${\cal I}\mkern-2mu{\cal S}\mkern-5mu{\cal AC}$}}
neuper@41965
    18
neuper@41965
    19
\title[Isabelle Frontend]
neuper@41965
    20
{Userinterfaces \\f\"ur Computer Theorem Prover,\\
neuper@42042
    21
	Machbarkeits-Studie im \isac-Projekt
neuper@41965
    22
}
neuper@41965
    23
\subtitle{Bachelorarbeit Telematik}
neuper@41965
    24
neuper@41965
    25
\author{Marco Steger}
neuper@41965
    26
\institute{Institut f\"ur Software Technologie\\
neuper@41965
    27
  Technische Universit\"at Graz}
neuper@41965
    28
neuper@41965
    29
\date{TODO}
neuper@41965
    30
%\subject{Formal specification of math assistants}
neuper@41965
    31
% This is only inserted into the PDF information catalog
neuper@41965
    32
neuper@41965
    33
% Delete this, if you do not want the table of contents to pop up at
neuper@41965
    34
% the beginning of each subsection:
neuper@41965
    35
\AtBeginSubsection[]
neuper@41965
    36
{
neuper@41965
    37
  \begin{frame}<beamer>
neuper@41965
    38
    \frametitle{Outline}
neuper@41965
    39
    \tableofcontents[currentsection,currentsubsection]
neuper@41965
    40
  \end{frame}
neuper@41965
    41
}
neuper@41965
    42
neuper@41965
    43
neuper@41965
    44
% If you wish to uncover everything in a step-wise fashion, uncomment
neuper@41965
    45
% the following command: 
neuper@41965
    46
%\beamerdefaultoverlayspecification{<+->}
neuper@41965
    47
neuper@41965
    48
neuper@41965
    49
\begin{document}
neuper@41965
    50
\begin{frame}
neuper@41965
    51
  \titlepage
neuper@41965
    52
\end{frame}
neuper@41965
    53
neuper@41965
    54
\begin{frame}
neuper@41965
    55
  \frametitle{Outline}
neuper@41965
    56
  \tableofcontents
neuper@41965
    57
  % You might wish to add the option [pausesections]
neuper@41965
    58
\end{frame}
neuper@41965
    59
neuper@42042
    60
\section[Isabelle]{Einleitung: Der Theoremprover Isabelle}
neuper@41965
    61
\begin{frame}
neuper@41965
    62
  \frametitle{Der Theoremprover Isabelle}
neuper@41965
    63
\begin{itemize}
neuper@41965
    64
\item Anwendungen von Isabelle
neuper@41965
    65
  \begin{itemize}
neuper@41965
    66
  \item Mechanisieren von Mathematik Theorien
neuper@41965
    67
    \begin{itemize}
neuper@41965
    68
    \item nat\"urliche, reelle, komplexe Zahlen, Listen, Lattices, \dots
neuper@41965
    69
    \item Gr\"obner Basen, Integral/Differential, Taylorreihen, \dots          
neuper@41965
    70
    \item High Order Logics, Logic of Computable Functions, \dots
neuper@41965
    71
    \end{itemize}
neuper@42042
    72
\pause
neuper@41965
    73
  \item Math.Grundlagen f\"ur Softwaretechnologie
neuper@41965
    74
    \begin{itemize}
neuper@41965
    75
    \item Hoare Logic, Temporal Logic of Actions, Hoare for Java
neuper@41965
    76
    \item Theory for Unix file-system security, for state spaces, \dots
neuper@41965
    77
    \item Archive of Formal Proofs {\tiny\tt http://afp.sourceforge.net}
neuper@41965
    78
    \end{itemize}
neuper@41965
    79
  \end{itemize}
neuper@42042
    80
\pause
neuper@41965
    81
\item Integration von Isabelle in Entwicklungstools
neuper@41965
    82
  \begin{itemize}
neuper@41965
    83
  \item Boogie --- Verification Condition Generator
neuper@42042
    84
  \item $\mathbf{\pi}d.e$ Projekt: Unterst\"utzung Domain-spezifischen CTPs
neuper@42042
    85
  \item Test Case Generators (TUG) ?
neuper@41965
    86
  \end{itemize}
neuper@42042
    87
\pause
neuper@41965
    88
\item Isar, die Beweissprache von Isabelle
neuper@42042
    89
  \begin{itemize}
neuper@42042
    90
  \item Demo $\sqrt{2}\not\in{\cal R}\;\;\;$ 
neuper@41965
    91
\pause
neuper@42042
    92
\alert{Beweisteile asynchron interpretiert}
neuper@41965
    93
  \end{itemize}
neuper@41965
    94
\end{itemize}
neuper@41965
    95
\end{frame}
neuper@41965
    96
neuper@42042
    97
\section[Stutus quo]{Ausgangssituation: das k\"unftige Isabelle Front-end}
neuper@42042
    98
\subsection[Scala-Layer]{Die Konzeption des Scala-Layers}
neuper@42042
    99
\begin{frame}\frametitle{Die Konzeption des Scala-Layers}
m@42043
   100
%\begin{figure}
m@42043
   101
%\begin{center}
m@42043
   102
%\includegraphics[width=75mm]{fig/archi/fig-reuse-ml-scala-SD}
m@42043
   103
%\end{center}
m@42043
   104
%%\nocaptionrule\caption{Reuse of Isabelle/Isar's Scala API.}
m@42043
   105
%\label{fig-reuse-ml-scala}
m@42043
   106
%\end{figure}
neuper@42042
   107
\end{frame}
neuper@41965
   108
neuper@42042
   109
\begin{frame}\frametitle{Kommunikationsprotokoll \\Scala --- SML}
neuper@42042
   110
\begin{itemize}
neuper@42042
   111
\item Das Protokoll ist \textbf{asynchron}: \\
neuper@42042
   112
verschiedene Teile eines Beweises werden in verschiedenen Threads interpretiert
neuper@42042
   113
\pause
neuper@42042
   114
\item Die Threads werden von Scala-\textbf{``Actors''} verwaltet (``Actors'' von der Programmsprache Erlang \"ubernommen)
neuper@42042
   115
\pause
neuper@42042
   116
\item \alert{Das Protokoll hat \textbf{kein API} nach aussen:}\\
neuper@42042
   117
\pause
neuper@42042
   118
Der Scala-Layer zielt auf konsistente Verwaltung gro\3er, verteilter Theorie-Bibliotheken\\
neuper@42042
   119
\pause
neuper@42042
   120
Anwendungsprogrammierer sollen nicht hier eingreifen, sondern Isabelle Theorien erweitern\\
neuper@42042
   121
\pause
neuper@42042
   122
\alert{\textit{!~Grunds\"atzliches Problem f\"ur das Projekt ``SD''~!}}
neuper@42042
   123
\end{itemize}
neuper@42042
   124
\end{frame}
neuper@41965
   125
neuper@42042
   126
\subsection[Integration]{Isabelles Filestruktur im \"Ubergangsstadium}
neuper@42042
   127
\begin{frame}\frametitle{Isabelle Files: *.jar}
neuper@42042
   128
{\footnotesize
neuper@42042
   129
----- for ``isabelle jedit \&''; contained in Isabelle\_bundle}\\
neuper@42042
   130
{\tiny
neuper@42042
   131
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jedit.jar\\
neuper@42042
   132
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/LatestVersion.jar\\
neuper@42042
   133
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/SideKick.jar\\
neuper@42042
   134
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/Console.jar\\
neuper@42042
   135
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/Pure.jar \alert{$\;\;\;\;\;\;\;\;\;\;\;\Longleftarrow$ entry to SML}\\
neuper@42042
   136
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/Isac.jar\\
neuper@42042
   137
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/scala-compiler.jar\\
neuper@42042
   138
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/Isabelle-jEdit.jar\\
neuper@42042
   139
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/cobra.jar\\
neuper@42042
   140
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/js.jar\\
neuper@42042
   141
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/Hyperlinks.jar\\
neuper@42042
   142
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/scala-swing.jar\\
neuper@42042
   143
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/scala-library.jar\\
neuper@42042
   144
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/QuickNotepad.jar\\
neuper@42042
   145
./contrib/jedit-4.3.2\_Isabelle-6d736d983d5c/jars/ErrorList.jar\\
neuper@41966
   146
neuper@42042
   147
{\footnotesize
neuper@42042
   148
----- scala system; contained in Isabelle\_bundle}\\
neuper@42042
   149
./contrib/scala-2.8.1.final/misc/sbaz/scala-bazaars.jar\\
neuper@42042
   150
./contrib/scala-2.8.1.final/misc/sbaz/sbaz-tests.jar\\
neuper@42042
   151
./contrib/scala-2.8.1.final/misc/scala-devel/plugins/continuations.jar\\
neuper@42042
   152
./contrib/scala-2.8.1.final/lib/scala-compiler.jar\\
neuper@42042
   153
./contrib/scala-2.8.1.final/lib/scalap.jar\\
neuper@42042
   154
./contrib/scala-2.8.1.final/lib/scala-swing.jar\\
neuper@42042
   155
./contrib/scala-2.8.1.final/lib/scala-library.jar\\
neuper@42042
   156
./contrib/scala-2.8.1.final/lib/jline.jar\\
neuper@42042
   157
./contrib/scala-2.8.1.final/lib/scala-dbc.jar\\
neuper@42042
   158
./contrib/scala-2.8.1.final/src/scala-library-src.jar\\
neuper@42042
   159
./contrib/scala-2.8.1.final/src/scala-swing-src.jar\\
neuper@42042
   160
./contrib/scala-2.8.1.final/src/scala-compiler-src.jar\\
neuper@42042
   161
./contrib/scala-2.8.1.final/src/scala-dbc-src.jar\\
neuper@42042
   162
./contrib/scala-2.8.1.final/src/sbaz-src.jar\\
neuper@42042
   163
}
neuper@42042
   164
\end{frame}
neuper@41965
   165
neuper@42042
   166
\begin{frame}\frametitle{Isabelle Files: *.scala}
neuper@42042
   167
{\tiny
neuper@42042
   168
./src/Pure/General/xml.scala\\
neuper@42042
   169
./src/Pure/General/linear\_set.scala\\
neuper@42042
   170
./src/Pure/General/symbol.scala\\
neuper@42042
   171
./src/Pure/General/exn.scala\\
neuper@42042
   172
./src/Pure/General/position.scala\\
neuper@42042
   173
./src/Pure/General/scan.scala\\
neuper@42042
   174
./src/Pure/General/xml\_data.scala\\
neuper@42042
   175
./src/Pure/General/yxml.scala\\
neuper@42042
   176
./src/Pure/General/markup.scala\\
neuper@42042
   177
./src/Pure/General/sha1.scala\\
neuper@42042
   178
./src/Pure/General/timing.scala\\
neuper@42042
   179
./src/Pure/General/pretty.scala\\
neuper@42042
   180
.\\
neuper@42042
   181
./src/Pure/Concurrent/volatile.scala\\
neuper@42042
   182
./src/Pure/Concurrent/future.scala\\
neuper@42042
   183
./src/Pure/Concurrent/simple\_thread.scala\\
neuper@42042
   184
.\\
neuper@42042
   185
./src/Pure/Thy/html.scala\\
neuper@42042
   186
./src/Pure/Thy/completion.scala\\
neuper@42042
   187
./src/Pure/Thy/thy\_header.scala\\
neuper@42042
   188
./src/Pure/Thy/thy\_syntax.scala\\
neuper@42042
   189
./src/Pure/Isac/isac.scala\\
neuper@42042
   190
./src/Pure/library.scala\\
neuper@42042
   191
.\\
neuper@42042
   192
./src/Pure/Isar/keyword.scala\\
neuper@42042
   193
./src/Pure/Isar/outer\_syntax.scala\\
neuper@42042
   194
./src/Pure/Isar/token.scala\\
neuper@42042
   195
./src/Pure/Isar/parse.scala\\
neuper@42042
   196
.\\
neuper@42042
   197
./src/Pure/System/gui\_setup.scala\\
neuper@42042
   198
./src/Pure/System/isabelle\_system.scala\\
neuper@42042
   199
./src/Pure/System/swing\_thread.scala\\
neuper@42042
   200
./src/Pure/System/download.scala\\
neuper@42042
   201
./src/Pure/System/session\_manager.scala\\
neuper@42042
   202
./src/Pure/System/standard\_system.scala\\
neuper@42042
   203
./src/Pure/System/isabelle\_syntax.scala\\
neuper@42042
   204
./src/Pure/System/session.scala\\
neuper@42042
   205
./src/Pure/System/platform.scala\\
neuper@42042
   206
./src/Pure/System/cygwin.scala\\
neuper@42042
   207
./src/Pure/System/event\_bus.scala\\
neuper@42042
   208
./src/Pure/System/isabelle\_process.scala\\
neuper@42042
   209
.\\
neuper@42042
   210
./src/Pure/PIDE/document.scala\\
neuper@42042
   211
./src/Pure/PIDE/markup\_tree.scala\\
neuper@42042
   212
./src/Pure/PIDE/text.scala\\
neuper@42042
   213
./src/Pure/PIDE/command.scala\\
neuper@42042
   214
./src/Pure/PIDE/isar\_document.scala
neuper@42042
   215
}
neuper@42042
   216
\end{frame}
neuper@42042
   217
neuper@42042
   218
\begin{frame}\frametitle{*.scala --- *.ML}
neuper@42042
   219
{\footnotesize
neuper@42042
   220
isabisac\$ ls -l src/Pure/System/\\
neuper@42042
   221
-rw-r--r-- 1 msteger root  3987 2011-03-14 17:09 cygwin.scala\\
neuper@42042
   222
-rw-r--r-- 1 msteger root  1486 2011-03-14 17:09 download.scala\\
neuper@42042
   223
-rw-r--r-- 1 msteger root  1296 2011-03-14 17:09 event\_bus.scala\\
neuper@42042
   224
-rw-r--r-- 1 msteger root  1830 2011-03-14 17:09 gui\_setup.scala\\
neuper@42042
   225
-rw-r--r-- 1 msteger root  5722 2011-03-14 17:09 \alert{isabelle\_process}.\textbf{ML}\\
neuper@42042
   226
-rw-r--r-- 1 msteger root 1059 2011-03-14 17:09 \alert{isabelle\_process}.\textbf{scala}\\
neuper@42042
   227
-rw-r--r-- 1 msteger root  1659 2011-03-14 17:09 isabelle\_syntax.scala\\
neuper@42042
   228
-rw-r--r-- 1 msteger root  2087 2011-03-14 17:09 \alert{isabelle\_system}.\textbf{ML}\\
neuper@42042
   229
-rw-r--r-- 1 msteger root 1168 2011-03-14 17:09 \alert{isabelle\_system}.\textbf{scala}\\
neuper@42042
   230
-rw-r--r-- 1 msteger root  5935 2011-03-14 17:09 isar.ML\\
neuper@42042
   231
-rw-r--r-- 1 msteger root  1989 2011-03-14 17:09 platform.scala\\
neuper@42042
   232
-rw-r--r-- 1 msteger root  1427 2011-03-14 17:09 session\_manager.scala\\
neuper@42042
   233
-rw-r--r-- 1 msteger root  3833 2011-03-14 17:09 \alert{session}.\textbf{ML}\\
neuper@42042
   234
-rw-r--r-- 1 msteger root  9172 2011-03-14 17:09 \alert{session}.\textbf{scala}\\
neuper@42042
   235
-rw-r--r-- 1 msteger root  9086 2011-03-14 17:09 standard\_system.scala\\
neuper@42042
   236
-rw-r--r-- 1 msteger root  1643 2011-03-14 17:09 swing\_thread.scala\\
neuper@42042
   237
neuper@42042
   238
}
neuper@42042
   239
\end{frame}
neuper@42042
   240
neuper@42042
   241
\subsection[jEdit]{Das Frontend: jEdit und ``plugins''}
neuper@42042
   242
\begin{frame}\frametitle{Das Frontend: \\jEdit und ``plugins''}
neuper@42042
   243
\begin{itemize}
neuper@42042
   244
\item \textbf{jEdit} \textit{``is a mature programmer's text editor with hundreds (counting the time developing \textbf{plugins}) of person-years of development behind it.''}
neuper@42042
   245
\pause
neuper@42042
   246
\item Also: Die Funktionalit\"at von jEdit wird \"uber ``plugins'' bestimmt
neuper@42042
   247
\pause
neuper@42042
   248
\item Isabelle verwendet eine Reihe davon
neuper@42042
   249
  \begin{itemize}
neuper@42042
   250
  \item der Parser ``Sidekick''
neuper@42042
   251
  \item Console f\"ur jEdit-Komponenten
neuper@42042
   252
  \item + Scala
neuper@42042
   253
  \item + Ml
neuper@42042
   254
  \item etc
neuper@42042
   255
  \end{itemize}
neuper@42042
   256
\pause
neuper@42042
   257
\item jEdit ist ``open source'' mit gro\3er Community
neuper@42042
   258
\pause
neuper@42042
   259
\item Anfragen an Mailinglisten von jEdit (ohne Scala-plugin!) und Isabelle
neuper@42042
   260
\end{itemize}
neuper@42042
   261
\end{frame}
neuper@42042
   262
neuper@42042
   263
\section[Projektarbeit]{Projektarbeit: Vorbereitungen f\"ur ``structured derivations''}
neuper@42042
   264
\subsection[Beispiel SD]{Beispiel ``structured derivation'' (SD)}
neuper@42042
   265
\begin{frame}\frametitle{Beispiel ``structured~derivation''~(SD)}
neuper@42042
   266
{\footnotesize
neuper@42042
   267
\begin{tabbing}
neuper@42042
   268
123,\=1234\=1234\=1234\=1234\=1234\=1234\=123\=\kill
neuper@42042
   269
\>$\bullet$\>Simplify $(1 - x) * (x ^ 2 + 1) + x ^ 3 - x ^ 2$\\
neuper@42042
   270
\>  \>$(1 - x) * (x ^ 2 + 1) + x ^ 3 - x ^ 2$\\
neuper@42042
   271
\>$\equiv$\>$\{ {\it RewriteSet}\;{\it purify}\}$\\
neuper@42042
   272
\>  \>$(1 + -1 * x) * (x ^ 2 + 1) + x ^ 3 + -1 * x ^ 2$\\
neuper@42042
   273
\>$\equiv$\>$\{{\it RewriteSet}\;{\it simplify\_pure}\}$\\
neuper@42042
   274
\>  \>$\bullet$\>$(1 + -1 * x) * (x ^ 2 + 1) + x ^ 3 + -1 * x ^ 2$\\
neuper@42042
   275
\>  \>$\equiv$\>$\{{\it RewriteSet}\;{\it expand\_poly\_}\}$ \\
neuper@42042
   276
\>  \>   \>$1 * x ^ 2 + 1 * 1 + (-1 * x * x ^ 2 + -1 * x * 1) + x ^ 3 +-1 * x ^ 2$\\
neuper@42042
   277
\>  \>$\equiv$\>\vdots\\
neuper@42042
   278
\>  \>  \>$1 + -1 * x + 0 * x ^ 2 + 0 * x ^ 3$\\
neuper@42042
   279
\>  \>$\equiv$\>$\{{\it RewriteSet}\;{\it reduce\_012\_}\}$  \\
neuper@42042
   280
\>  \>     \>$1 + -1 * x$\\
neuper@42042
   281
\>\dots\>$1 + -1 * x$\\
neuper@42042
   282
\>$\equiv$\>$\{{\it RewriteSet}\;{\it beautify}\}$\\
neuper@42042
   283
\>  \>$1-x$
neuper@42042
   284
\end{tabbing}
neuper@42042
   285
}
neuper@42042
   286
\end{frame}
neuper@42042
   287
neuper@42042
   288
\subsection[NetBeans]{Aufsetzen des Projektes in der NetBeans IDE}
m@42043
   289
\begin{frame}\frametitle{Grundlegender Aufbau eines jEdit-Plugin}
m@42043
   290
\begin{itemize}
m@42043
   291
\item Ein Plugin besteht aus:
m@42043
   292
\pause
m@42043
   293
	\begin{itemize}
m@42043
   294
	\item Source-Files: \textbf{Scala} 
m@42043
   295
	\pause
m@42043
   296
	\item Property file 
m@42043
   297
	\pause
m@42043
   298
	\item XML-Files: \textit{Klebstoff} zwischen \textbf{Java} (Editor) und \textbf{Scala} (Plugin)
m@42043
   299
	\end{itemize}
m@42043
   300
\pause
m@42043
   301
\item Bestehendes Java-Plugin in Scala transferieren
m@42043
   302
\pause
m@42043
   303
\item Neue Ordnerstruktur in bestehende Isabelle-Ordner-Hierachie integrieren
m@42043
   304
\end{itemize}
m@42043
   305
\end{frame}
m@42043
   306
m@42043
   307
\begin{frame}\frametitle{Die Konzeption des Scala-Layers}
m@42043
   308
\begin{figure}
m@42043
   309
\begin{center}
m@42043
   310
\includegraphics[width=75mm]{fig/block-frontend}
m@42043
   311
\end{center}
m@42043
   312
%\nocaptionrule\caption{Reuse of Isabelle/Isar's Scala API.}
m@42043
   313
\label{Frontend des jEdit}
m@42043
   314
\end{figure}
m@42043
   315
\end{frame}
m@42043
   316
m@42043
   317
\begin{frame}\frametitle{Anforderungen an das Versuchs-Plugin}
m@42043
   318
Folgende Funktionalit\"at wurde zu Testzwecken umgesetzt:
m@42043
   319
\pause
m@42043
   320
\begin{itemize}
m@42043
   321
	\item Grunds\"atzlicher Aufbau eines GUIs
m@42043
   322
	\pause
m@42043
   323
	\item Kopieren von Text zwischen den einzelnen Buffern
m@42043
   324
	\pause
m@42043
   325
		\begin{itemize}
m@42043
   326
		\item \alert{Somit auch Zugriff auf andere Plugins!}
m@42043
   327
		\end{itemize}
m@42043
   328
	\pause
m@42043
   329
	\item Ansatz f\"ur die Einbindung des SD-Parsers
m@42043
   330
	\pause
m@42043
   331
		\begin{itemize}
m@42043
   332
		\item Zugriff auf Isabelle-Pure: \alert{parsen von SD parallel zu Isabelle/Isar}
m@42043
   333
		\end{itemize}
m@42043
   334
	\pause
m@42043
   335
	\item \textit{DEMO}
m@42043
   336
\end{itemize}
m@42043
   337
\end{frame}
m@42043
   338
neuper@42042
   339
\subsection[Implementation]{Komponenten zur  von SD}
neuper@42042
   340
\subsection[Parser]{Ein funktionaler Parser f\"ur SD (in SML)}
neuper@42042
   341
neuper@42042
   342
\section[Summary]{Zusammenfassung}
neuper@42042
   343
\begin{frame}\frametitle{Zusammenfassung}
neuper@42042
   344
 Zusammenfassung TODO
neuper@42042
   345
\end{frame}
neuper@42042
   346
neuper@42042
   347
\begin{frame}\frametitle{}
neuper@41965
   348
\end{frame}
neuper@41965
   349
neuper@41965
   350
\end{document}
neuper@41965
   351
neuper@41965
   352