2021-04-30 09:16:01 -04:00
|
|
|
% The TAME Programming Language Living Document
|
|
|
|
%
|
2023-01-17 23:09:25 -05:00
|
|
|
% Copyright (C) 2021 Ryan Specialty, LLC.
|
2021-04-30 09:16:01 -04:00
|
|
|
%
|
|
|
|
% Licensed under the Creative Commons Attribution-ShareAlike 4.0
|
|
|
|
% International License.
|
|
|
|
%%
|
|
|
|
|
2021-05-18 16:03:06 -04:00
|
|
|
\documentclass[draft,toc=index]{scrartcl}
|
2021-04-30 09:16:01 -04:00
|
|
|
\usepackage[draft=false]{scrlayer-scrpage}
|
|
|
|
\usepackage{tpl}
|
|
|
|
|
|
|
|
\title{The TAME Programming Language}
|
|
|
|
\subtitle{Design and Implementation (Living Document)}
|
|
|
|
|
|
|
|
\author{Mike Gerwitz}
|
2021-05-20 10:45:44 -04:00
|
|
|
\date{May 2021}% TODO dynamic
|
2021-04-30 09:16:01 -04:00
|
|
|
|
|
|
|
% Copyright notice for bottom of first page
|
2021-05-19 10:05:36 -04:00
|
|
|
\setlength\footheight{28pt}
|
2021-04-30 09:16:01 -04:00
|
|
|
\cfoot[%
|
2023-01-17 23:09:25 -05:00
|
|
|
{\tiny Copyright \textcopyright{} 2021 Ryan Specialty, LLC.
|
2021-05-12 10:37:20 -04:00
|
|
|
CC-BY-SA 4.0.}\\\ccbysa]{\thepage}
|
2021-04-30 09:16:01 -04:00
|
|
|
|
|
|
|
% 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}
|
|
|
|
|
2021-05-11 16:37:08 -04:00
|
|
|
|
2021-05-18 15:51:48 -04:00
|
|
|
% Appendix may be enabled with `./configure --enable-appendix'.
|
|
|
|
\iftplappendix
|
|
|
|
\clearpage
|
|
|
|
\appendix
|
|
|
|
\input{sec/appendix-typesetting.tex}
|
2021-05-11 16:37:08 -04:00
|
|
|
\fi
|
|
|
|
|
2021-05-26 13:04:55 -04:00
|
|
|
% Ensure Copyright line does not show
|
2021-05-11 11:31:27 -04:00
|
|
|
\cfoot[\thepage]{\thepage}
|
2021-05-26 13:04:55 -04:00
|
|
|
|
|
|
|
\printbibliography[heading=bibintoc]
|
|
|
|
|
2021-04-30 09:16:01 -04:00
|
|
|
\clearpage
|
|
|
|
\printindex
|
|
|
|
|
|
|
|
\end{document}
|
|
|
|
|