% The TAME Programming Language Living Document
%
%  Copyright (C) 2021 Ryan Specialty, LLC.
%
%  Licensed under the Creative Commons Attribution-ShareAlike 4.0
%  International License.
%%

\documentclass[draft,toc=index]{scrartcl}
\usepackage[draft=false]{scrlayer-scrpage}
\usepackage{tpl}

\title{The TAME Programming Language}
\subtitle{Design and Implementation (Living Document)}

\author{Mike Gerwitz}
\date{May 2021}% TODO dynamic

% Copyright notice for bottom of first page
\setlength\footheight{28pt}
\cfoot[%
  {\tiny Copyright \textcopyright{} 2021 Ryan Specialty, LLC.
  CC-BY-SA 4.0.}\\\ccbysa]{\thepage}

% Begin section numbering at 0 to emphasize that it's foundational material
% not directly related to TAME itself
\setcounter{section}{-1}

\makeindex

\begin{document}

\maketitle

\begin{abstract}
  \tame{} is The Algebraic Metalanguage, a programming language and
  collection of tools designed to aid in the development, understanding,
  and maintenance of systems performing numerous calculations on a
  complex graph of dependencies, conditions, and a large number of
  inputs.  \tame{} has existed for over a decade, and while its initial
  design was successful and still in active use today, it does suffer
  from inconsistencies and tradeoffs that introduce certain impediments
  to users of the language, and compromise future optimizations and
  language evolution.  It also lacks documentation not just of the
  language itself, but also of the underlying principles and
  implementation.

  This document is an attempt to formally consider certain parts of
  \tame{} as it undergoes redesign and reimplementation as part of the
  \tamer{} project.  It is considered a living document---it is not
  likely to ever be a finished work.
\end{abstract}


\tableofcontents

\input{sec/notation.tex}
\input{sec/class.tex}


% Appendix may be enabled with `./configure --enable-appendix'.
\iftplappendix
 \clearpage
 \appendix
 \input{sec/appendix-typesetting.tex}
\fi

% Ensure Copyright line does not show
\cfoot[\thepage]{\thepage}

\printbibliography[heading=bibintoc]

\clearpage
\printindex

\end{document}

