mirror of
https://github.com/ProgramSnail/Lama.git
synced 2025-12-06 06:48:48 +00:00
128 lines
3.3 KiB
TeX
128 lines
3.3 KiB
TeX
\documentclass{article}
|
|
|
|
\usepackage{amssymb, amsmath}
|
|
\usepackage{alltt}
|
|
\usepackage{pslatex}
|
|
\usepackage{epigraph}
|
|
\usepackage{verbatim}
|
|
\usepackage{latexsym}
|
|
\usepackage{array}
|
|
\usepackage{comment}
|
|
\usepackage{makeidx}
|
|
\usepackage{listings}
|
|
\usepackage{indentfirst}
|
|
\usepackage{verbatim}
|
|
\usepackage{color}
|
|
\usepackage{url}
|
|
\usepackage{xspace}
|
|
\usepackage{hyperref}
|
|
\usepackage{stmaryrd}
|
|
\usepackage{amsmath, amsthm, amssymb}
|
|
\usepackage{graphicx}
|
|
\usepackage{euscript}
|
|
\usepackage{mathtools}
|
|
\usepackage{mathrsfs}
|
|
\usepackage{multirow,bigdelim}
|
|
\usepackage{subcaption}
|
|
\usepackage{placeins}
|
|
|
|
\makeatletter
|
|
|
|
\makeatother
|
|
|
|
\definecolor{shadecolor}{gray}{1.00}
|
|
\definecolor{darkgray}{gray}{0.30}
|
|
|
|
\def\transarrow{\xrightarrow}
|
|
\newcommand{\setarrow}[1]{\def\transarrow{#1}}
|
|
|
|
\def\padding{\phantom{X}}
|
|
\newcommand{\setpadding}[1]{\def\padding{#1}}
|
|
|
|
\def\subarrow{}
|
|
\newcommand{\setsubarrow}[1]{\def\subarrow{#1}}
|
|
|
|
\newcommand{\trule}[2]{\frac{#1}{#2}}
|
|
\newcommand{\crule}[3]{\frac{#1}{#2},\;{#3}}
|
|
\newcommand{\withenv}[2]{{#1}\vdash{#2}}
|
|
\newcommand{\trans}[3]{{#1}\transarrow{\padding#2\padding}\subarrow{#3}}
|
|
\newcommand{\ctrans}[4]{{#1}\transarrow{\padding#2\padding}\subarrow{#3},\;{#4}}
|
|
\newcommand{\llang}[1]{\mbox{\lstinline[mathescape]|#1|}}
|
|
\newcommand{\pair}[2]{\inbr{{#1}\mid{#2}}}
|
|
\newcommand{\inbr}[1]{\left<{#1}\right>}
|
|
\newcommand{\highlight}[1]{\color{red}{#1}}
|
|
\newcommand{\ruleno}[1]{\eqno[\scriptsize\textsc{#1}]}
|
|
\newcommand{\rulename}[1]{\textsc{#1}}
|
|
\newcommand{\inmath}[1]{\mbox{$#1$}}
|
|
\newcommand{\lfp}[1]{fix_{#1}}
|
|
\newcommand{\gfp}[1]{Fix_{#1}}
|
|
\newcommand{\vsep}{\vspace{-2mm}}
|
|
\newcommand{\supp}[1]{\scriptsize{#1}}
|
|
\newcommand{\sembr}[1]{\llbracket{#1}\rrbracket}
|
|
\newcommand{\cd}[1]{\texttt{#1}}
|
|
\newcommand{\free}[1]{\boxed{#1}}
|
|
\newcommand{\binds}{\;\mapsto\;}
|
|
\newcommand{\dbi}[1]{\mbox{\bf{#1}}}
|
|
\newcommand{\sv}[1]{\mbox{\textbf{#1}}}
|
|
\newcommand{\bnd}[2]{{#1}\mkern-9mu\binds\mkern-9mu{#2}}
|
|
\newtheorem{lemma}{Lemma}
|
|
\newtheorem{theorem}{Theorem}
|
|
\newcommand{\meta}[1]{{\mathcal{#1}}}
|
|
\renewcommand{\emptyset}{\varnothing}
|
|
\newcommand{\dom}[1]{\mathtt{dom}\;{#1}}
|
|
|
|
\definecolor{light-gray}{gray}{0.90}
|
|
\newcommand{\graybox}[1]{\colorbox{light-gray}{#1}}
|
|
|
|
\lstdefinelanguage{ocaml}{
|
|
keywords={let, begin, end, in, match, type, and, fun,
|
|
function, try, with, class, object, method, of, rec, repeat, until,
|
|
while, not, do, done, as, val, inherit, module, sig, @type, struct,
|
|
if, then, else, open, virtual, new, fresh, skip, od, fi, elif, for, local, return, read, write},
|
|
sensitive=true,
|
|
%basicstyle=\small,
|
|
commentstyle=\scriptsize\rmfamily,
|
|
keywordstyle=\ttfamily\bfseries,
|
|
identifierstyle=\ttfamily,
|
|
basewidth={0.5em,0.5em},
|
|
columns=fixed,
|
|
fontadjust=true,
|
|
literate={->}{{$\to$}}3 {===}{{$\equiv$}}1 {=/=}{{$\not\equiv$}}1 {|>}{{$\triangleright$}}3 {\&\&\&}{{$\wedge$}}2 {|||}{{$\vee$}}2 {^}{{$\uparrow$}}1,
|
|
morecomment=[s]{(*}{*)}
|
|
}
|
|
|
|
\lstset{
|
|
mathescape=true,
|
|
%basicstyle=\small,
|
|
identifierstyle=\ttfamily,
|
|
keywordstyle=\bfseries,
|
|
commentstyle=\scriptsize\rmfamily,
|
|
basewidth={0.5em,0.5em},
|
|
fontadjust=true,
|
|
escapechar=!,
|
|
language=ocaml
|
|
}
|
|
|
|
\sloppy
|
|
|
|
\newcommand{\ocaml}{\texttt{OCaml}\xspace}
|
|
|
|
\theoremstyle{definition}
|
|
|
|
\title{Introduction to Programming Languages, Compilers and Tools}
|
|
|
|
\author{Dmitry Boulytchev}
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
\input{01}
|
|
\input{02}
|
|
\input{03}
|
|
\input{04}
|
|
\input{05}
|
|
\input{06}
|
|
\input{07}
|
|
|
|
\end{document}
|