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