The Project

Glossary of Terms

A

ANDF: Architecture Neutral Distribution format

The format standardised by the Open Group (formerly OSF), for which TDF was selected.

bmake

A portable version of NetBSD's make(1). See http://www.crufty.net/help/sjg/bmake.html.

B

Building

C

Calculus

calculus is an algebraic type system tool, for managing complex C type systems. It uses the TenDRA API checking techniques to enforce strong type checking and type encapsulation, and provides generic container types for lists, vectors etc.

Capability Architecture

An architecture whereby programs do not exist in flat memory ranges, but must request a hierarchy of allocated memory ranges from the operating system. The pointers to these ranges are called capabilities.

This design makes it impossible for a program to access memory that is not pointed to by one of the capabilities granted to the program.

Capsule

Compiling

CRT: C runtime.

D

DERA: Defence Research and Evaluation Agency (previously DRA, now DSTL and QinetiQ)

disp

disp is the TDF pretty printer. It translates the bitstream comprising a TDF capsule into a human readable form.

This functionality is provided by tcc, but disp may be called directly.

F

Flex

A capability architecture and operating system developed at DERA during the 1980s.

I

Installer

IRC

LALR: Left-Associative Left-to-right, Rightmost-derivation parser

A subset of LR parsers.

L

Lexer

lexi

Lexical Generation

Linking

LL(1): Left-to-right, Leftmost-derivation parser

with lookahead of 1 token.

Low-level Ten15

The format that later became known as TDF.

To make porting the Ten15 System easier, after type checking had succeeded and machine-independent optimisations made, the untyped output of the Ten15 compiler was provided: this became defined as Low-level Ten15.

Low-level Ten15, being untyped, was a viable target for weakly-typed languages, including C.

At the OSF's request for technologies for ANDF, Low-level Ten15 was renamed to TDF (Ten15 Distribution Format), and put forward as a (successful) proposal.

M

Machine

make_err

make_tdf

make_tdf is a tool for generating TDF decoders and encoders. It takes a compact description of the TDF specification and a template file, and generates code to read, write or transform a TDF capsule.

O

Object

Open Software Foundation

Optimisation

R

RTTI: Run-Time Type Identification

The standard C++ mechanism for class objects to identify their dynamic or run-time types.

P

Parser

Parser Generation

Parsing

Porting

PL_TDF

Producer

S

SID: Syntax Improving Device

SID is an LL(1) parser generator with a long history (the original version dates back to the mid-sixties!). As well as the normal rule transformations it provides powerful techniques for call-outs in circumstances where a non-trivial look-ahead is required (essential for languages like C++), and for error recovery.

Sort

Start-up File

Strong typing

Structured TDF

svn: Subversion

T

tcc

TDF: TenDRA Distribution Format

TDF Capsule

TDF Notation

TDF Notation Compiler

Ten15

Ten15 refers to several things:

  • The Ten15 system.
  • The Ten15 language.
  • The Ten15 intermediate representation.
  • Ten15.org.

The Ten15 language

The Ten15 language (usually called Ten15 Notation) was the main language used to program the Ten15 system; it was created to provide all of the virtual machine's abilities.

Ten15 Notation

See The Ten15 language.

The Ten15 system

This was a capability architecture which was created as an equivalent to the Flex capability architecture for the microcomputer, intended to make the work on Flex available to modern machines lacking a microcode facility.

Ten15 provided this by way of a strongly typed virtual machine. This differed from other virtual machines of the time by making use of JIT (then yet to be named).

This machine acted as an abstract superset of several high-level languages, and was intended to express these (in much the same way as Microsoft's .Net virtual machine expresses several languages today).

Conspicuously, C was not supported as it is not strongly typed. This was eventually provided for by TDF, instead.

Ten15.org

The Ten15 intermediate representation

TenDRA

TenDRA.org

Ticket

tld

tld is the TDF linker. It combines a number of TDF capsules into a single capsule. It also can be used to create and manipulate libraries of TDF capsules.

This functionality is provided by tcc, but tld may be called directly.

tpl

tpl is the PL_TDF compiler. It is a TDF 'structured assembler' in the lineage of PL360. tpl provides a more user-friendly way of generating TDF capsules from scratch than that offered by tnc.

This functionality is provided by tcc, but tpl may be called directly.

Trac

tspec

The API checking facilities of the TenDRA compiler are implemented by means of abstract interface specifications generated using the tspec tool.

This tool and specifications for a number of common APIs are included with the release. Part of the installation process consists of pre-compiling the implementations of those APIs implemented on the target machine into TDF libraries. This is performed automatically using tcc to combine the tspec specification with the implementation given in the system headers.

Type

Type checking

Type system

U

Unstructured TDF

Unit

V

Virtual Machine

Usually this term is used to imply that there is no physical implementation of this machine.

W

Weak typing

Wiki