doc-src/IsarAdvanced/Codegen/codegen.tex
author haftmann
Thu, 26 Apr 2007 13:32:55 +0200
changeset 22798 e3962371f568
parent 22550 c5039bee2602
child 24348 c708ea5b109a
permissions -rw-r--r--
updated doc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20948
9b9910b82645 initial draft
haftmann
parents:
diff changeset
     1
9b9910b82645 initial draft
haftmann
parents:
diff changeset
     2
%% $Id$
9b9910b82645 initial draft
haftmann
parents:
diff changeset
     3
9b9910b82645 initial draft
haftmann
parents:
diff changeset
     4
\documentclass[12pt,a4paper,fleqn]{report}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
     5
\usepackage{latexsym,graphicx}
21058
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
     6
\usepackage{listings}
20948
9b9910b82645 initial draft
haftmann
parents:
diff changeset
     7
\usepackage[refpage]{nomencl}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
     8
\usepackage{../../iman,../../extra,../../isar,../../proof}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
     9
\usepackage{Thy/document/isabelle,Thy/document/isabellesym}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    10
\usepackage{style}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    11
\usepackage{Thy/document/pdfsetup}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    12
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    13
\newcommand{\cmd}[1]{\isacommand{#1}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    14
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    15
\newcommand{\isasymINFIX}{\cmd{infix}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    16
\newcommand{\isasymLOCALE}{\cmd{locale}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    17
\newcommand{\isasymINCLUDES}{\cmd{includes}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    18
\newcommand{\isasymDATATYPE}{\cmd{datatype}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    19
\newcommand{\isasymAXCLASS}{\cmd{axclass}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    20
\newcommand{\isasymFIXES}{\cmd{fixes}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    21
\newcommand{\isasymASSUMES}{\cmd{assumes}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    22
\newcommand{\isasymDEFINES}{\cmd{defines}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    23
\newcommand{\isasymNOTES}{\cmd{notes}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    24
\newcommand{\isasymSHOWS}{\cmd{shows}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    25
\newcommand{\isasymCLASS}{\cmd{class}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    26
\newcommand{\isasymINSTANCE}{\cmd{instance}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    27
\newcommand{\isasymLEMMA}{\cmd{lemma}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    28
\newcommand{\isasymPROOF}{\cmd{proof}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    29
\newcommand{\isasymQED}{\cmd{qed}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    30
\newcommand{\isasymFIX}{\cmd{fix}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    31
\newcommand{\isasymASSUME}{\cmd{assume}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    32
\newcommand{\isasymSHOW}{\cmd{show}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    33
\newcommand{\isasymNOTE}{\cmd{note}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    34
\newcommand{\isasymIN}{\cmd{in}}
21058
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    35
\newcommand{\isasymCODEGEN}{\cmd{code\_gen}}
22550
c5039bee2602 updated
haftmann
parents: 22291
diff changeset
    36
\newcommand{\isasymCODEDATATYPE}{\cmd{code\_datatype}}
21146
c6f103e57c94 added serialization keywords
haftmann
parents: 21058
diff changeset
    37
\newcommand{\isasymCODECONST}{\cmd{code\_const}}
c6f103e57c94 added serialization keywords
haftmann
parents: 21058
diff changeset
    38
\newcommand{\isasymCODETYPE}{\cmd{code\_type}}
c6f103e57c94 added serialization keywords
haftmann
parents: 21058
diff changeset
    39
\newcommand{\isasymCODECLASS}{\cmd{code\_class}}
c6f103e57c94 added serialization keywords
haftmann
parents: 21058
diff changeset
    40
\newcommand{\isasymCODEINSTANCE}{\cmd{code\_instance}}
c6f103e57c94 added serialization keywords
haftmann
parents: 21058
diff changeset
    41
\newcommand{\isasymCODERESERVED}{\cmd{code\_reserved}}
c6f103e57c94 added serialization keywords
haftmann
parents: 21058
diff changeset
    42
\newcommand{\isasymCODEMODULENAME}{\cmd{code\_modulename}}
c6f103e57c94 added serialization keywords
haftmann
parents: 21058
diff changeset
    43
\newcommand{\isasymCODEMODULEPROLOG}{\cmd{code\_moduleprolog}}
21190
08ec81dfc7fb (continued)
haftmann
parents: 21146
diff changeset
    44
\newcommand{\isasymCODEAXIOMS}{\cmd{code\_axioms}}
08ec81dfc7fb (continued)
haftmann
parents: 21146
diff changeset
    45
\newcommand{\isasymCODEABSTYPE}{\cmd{code\_abstype}}
22291
bfaba62cc92c adjusted to new code generator Isar commands
haftmann
parents: 21322
diff changeset
    46
\newcommand{\isasymPRINTCODESETUP}{\cmd{print\_codesetup}}
22798
e3962371f568 updated doc
haftmann
parents: 22550
diff changeset
    47
\newcommand{\isasymPRINTCLASSES}{\cmd{print\_classes}}
22291
bfaba62cc92c adjusted to new code generator Isar commands
haftmann
parents: 21322
diff changeset
    48
\newcommand{\isasymCODETHMS}{\cmd{code\_thms}}
22550
c5039bee2602 updated
haftmann
parents: 22291
diff changeset
    49
\newcommand{\isasymCODEDEPS}{\cmd{code\_deps}}
21058
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    50
\newcommand{\isasymFUN}{\cmd{fun}}
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    51
\newcommand{\isasymFUNCTION}{\cmd{function}}
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    52
\newcommand{\isasymPRIMREC}{\cmd{primrec}}
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    53
\newcommand{\isasymRECDEF}{\cmd{recdef}}
20948
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    54
21322
26f64e7a67b5 added tt tag
haftmann
parents: 21222
diff changeset
    55
\isakeeptag{tt}
26f64e7a67b5 added tt tag
haftmann
parents: 21222
diff changeset
    56
\renewcommand{\isatagtt}{\isabellestyle{tt}\isastyle}
26f64e7a67b5 added tt tag
haftmann
parents: 21222
diff changeset
    57
\renewcommand{\endisatagtt}{\isabellestyle{it}\isastyle}
26f64e7a67b5 added tt tag
haftmann
parents: 21222
diff changeset
    58
20948
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    59
\newcommand{\qt}[1]{``#1''}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    60
\newcommand{\qtt}[1]{"{}{#1}"{}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    61
\newcommand{\qn}[1]{\emph{#1}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    62
\newcommand{\strong}[1]{{\bfseries #1}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    63
\newcommand{\fixme}[1][!]{\strong{FIXME: #1}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    64
21322
26f64e7a67b5 added tt tag
haftmann
parents: 21222
diff changeset
    65
\lstset{basicstyle=\scriptsize\ttfamily,keywordstyle=\itshape,commentstyle=\itshape\sffamily,frame=single}
21058
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    66
\newcommand{\lstsml}[1]{\lstset{language=ML}\lstinputlisting{#1}}
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    67
\newcommand{\lsthaskell}[1]{\lstset{language=Haskell}\lstinputlisting{#1}}
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    68
20948
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    69
\hyphenation{Isabelle}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    70
\hyphenation{Isar}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    71
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    72
\isadroptag{theory}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    73
\title{\includegraphics[scale=0.5]{isabelle_isar}
21222
6dfdb69e83ef adjusted title
haftmann
parents: 21190
diff changeset
    74
  \\[4ex] Code generation from Isabelle/HOL theories}
20948
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    75
\author{\emph{Florian Haftmann}}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    76
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    77
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    78
\begin{document}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    79
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    80
\maketitle
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    81
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    82
\begin{abstract}
21058
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    83
  This tutorial gives a motivation-driven introduction
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    84
  to a generic code generator framework in Isabelle
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    85
  for generating executable code in functional
a32d357dfd70 started tutorial
haftmann
parents: 20948
diff changeset
    86
  programming languages from logical specifications.
20948
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    87
\end{abstract}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    88
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    89
\thispagestyle{empty}\clearpage
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    90
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    91
\pagenumbering{roman}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    92
\clearfirst
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    93
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    94
\input{Thy/document/Codegen.tex}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    95
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    96
\begingroup
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    97
%\tocentry{\bibname}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    98
\bibliographystyle{plain} \small\raggedright\frenchspacing
9b9910b82645 initial draft
haftmann
parents:
diff changeset
    99
\bibliography{../../manual}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
   100
\endgroup
9b9910b82645 initial draft
haftmann
parents:
diff changeset
   101
9b9910b82645 initial draft
haftmann
parents:
diff changeset
   102
\end{document}
9b9910b82645 initial draft
haftmann
parents:
diff changeset
   103
9b9910b82645 initial draft
haftmann
parents:
diff changeset
   104
9b9910b82645 initial draft
haftmann
parents:
diff changeset
   105
%%% Local Variables: 
9b9910b82645 initial draft
haftmann
parents:
diff changeset
   106
%%% mode: latex
9b9910b82645 initial draft
haftmann
parents:
diff changeset
   107
%%% TeX-master: t
9b9910b82645 initial draft
haftmann
parents:
diff changeset
   108
%%% End: