Overview Contents Language 84: The semantics Language 84: The syntax Language 84: The implementation Language 84: The semantics Language 84: * is a functional programming language. * uses the call-by-value evaluation strategy. * is designed with basic type theory in mind but does not yet have a formal type system. * has an informal and implicit type system roughly characterized by the following list: integers, booleans, strings, variants, tuples, records, functions. * does not provide any means of variable-assignment. * does not provide any mutable data structures. * has support for none of the following: macros, exceptions, continuations, coroutines, threads, parallelism, method dispatch, function overloading, operator overloading. * has a rudimentary package system that supports the distribution of program source code over multiple files and the sharing of packages among different programs. Language 84: The syntax Language 84: * uses an LL(1) grammar. * does not use an indentation-sensitive parser. * uses capitalization conventions to keep reserved words out of the way. * supports the use of binary infix operators. Language 84: The implementation Language 84: * has a self-hosting compiler that translates to C. * has a rudimentary memory-management system that does not use any form of garbage-collection.