Next: Preprocessor, Previous: Using TAME, Up: Top [Contents][Index]

*There isn’t much here yet. Maybe you can help?*

TAME is a *declarative* programming language—it *describes* how a program ought to behave rather than
explicitly telling a computer the steps needed to make it work
(*imperative*).
TAME is a calculator at heart,
so code written in its language describes mathematical operations.
Definitions fall primarily under two categories:

**Classifications**Higher-order logic used to classify data and predicate calculations, controlling program flow.

**Calculations**Mathematical operations motivated by linear algebra.

TAME also supports abstracting calculations into *functions*,
which permits the use of recursion for solving problems that are
difficult to fit into an algebraic model.
The language is Turing-complete.

TAME itself is a *domain-specific language* (DSL)—it was designed for use in comparative insurance rating systems.
However,
it couldn’t possibly know all useful abstractions that may be needed
in the future;
the domain for which TAME was designed encompasses many
subdomains as well.
To accommodate future needs,
TAME is also a *metalanguage*—a language that can be used to program itself.
The core language is based upon broad mathematical foundations
that offer great flexibility.
Its expressive template system allows the creation of abstractions
that are indistinguishable from core language features,
and templates have powerful introspective capabilities that allow
for many useful types of code generation.
Essentially,
TAME allows the creation of sub-DSLs.

Code is written in TAME without regard to order of execution—the linker will figure that out for you. This simplifies the development of systems with complex graphs of dependencies.

*TODO: This chapter is a placeholder.
More to come.*

Next: Preprocessor, Previous: Using TAME, Up: Top [Contents][Index]