doc-src/Codegen/Thy/pictures/architecture.tex
changeset 30734 ab05be086c4a
child 30765 3eccfc8019ba
equal deleted inserted replaced
30665:4cf38ea4fad2 30734:ab05be086c4a
       
     1 
       
     2 \documentclass[12pt]{article}
       
     3 \usepackage{pgf}
       
     4 \usepackage{pgflibraryshapes}
       
     5 \usepackage{tikz}
       
     6 
       
     7 \begin{document}
       
     8 
       
     9 \begin{tikzpicture}[x = 4.2cm, y = 1cm]
       
    10   \tikzstyle entity=[rounded corners, draw, thick, color = black, fill = white];
       
    11   \tikzstyle process=[ellipse, draw, thick, color = green, fill = white];
       
    12   \tikzstyle process_arrow=[->, semithick, color = green];
       
    13   \node (HOL) at (0, 4) [style=entity] {Isabelle/HOL theory};
       
    14   \node (eqn) at (2, 2) [style=entity] {code equations};
       
    15   \node (iml) at (2, 0) [style=entity] {intermediate language};
       
    16   \node (seri) at (1, 0) [style=process] {serialisation};
       
    17   \node (SML) at (0, 3) [style=entity] {SML};
       
    18   \node (OCaml) at (0, 2) [style=entity] {OCaml};
       
    19   \node (further) at (0, 1) [style=entity] {\ldots};
       
    20   \node (Haskell) at (0, 0) [style=entity] {Haskell};
       
    21   \draw [style=process_arrow] (HOL) .. controls (2, 4) ..
       
    22     node [style=process, near start] {selection}
       
    23     node [style=process, near end] {preprocessing}
       
    24     (eqn);
       
    25   \draw [style=process_arrow] (eqn) -- node (transl) [style=process] {translation} (iml);
       
    26   \draw [style=process_arrow] (iml) -- (seri);
       
    27   \draw [style=process_arrow] (seri) -- (SML);
       
    28   \draw [style=process_arrow] (seri) -- (OCaml);
       
    29   \draw [style=process_arrow, dashed] (seri) -- (further);
       
    30   \draw [style=process_arrow] (seri) -- (Haskell);
       
    31 \end{tikzpicture}
       
    32 
       
    33 \end{document}