Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<!-- Crown Copyright (c) 1998 -->
<HTML>
<HEAD>
<TITLE>Installer Behaviour</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#400080" ALINK="#FF0000">
<H1><A NAME=S10>TDF Specification, Issue 4.0</A></H1>
<H3>January 1998</H3>
<A HREF="spec8.html"><IMG SRC="../images/next.gif" ALT="next section"></A>
<A HREF="spec6.html"><IMG SRC="../images/prev.gif" ALT="previous section"></A>
<A HREF="spec1.html"><IMG SRC="../images/top.gif" ALT="current document"></A>
<A HREF="../index.html"><IMG SRC="../images/home.gif" ALT="TenDRA home page">
</A>
<A HREF="spec12.html"><IMG SRC="../images/index.gif" ALT="document index"></A>
<P>
<HR>
<DL>
<DT><A HREF="#S11"><B>4.1</B> - Definition of terms</A><DD>
<DT><A HREF="#S12"><B>4.2</B> - Properties of Installers</A><DD>
</DL>
<HR>
<H1>4. Installer Behaviour</H1>
<A NAME=S11>
<H2>4.1. Definition of terms</H2>
In this document the behaviour of TDF installers is described in a
precise manner. Certain words are used with very specific meanings.
These are:
<UL>
<LI>"undefined": means that installers can perform any action,
including refusing to translate the program. It can produce code with
any effect, meaningful or meaningless.<P>
<LI>"shall": when the phrase "<I>P</I> shall be done"
(or similar phrases involving "shall") is used, every installer
must perform <I>P</I>.<P>
<LI>"should": when the phrase "<I>P</I> should be done"
(or similar phrase involving "should") is used, installers
are advised to perform <I>P</I>, and producer writers may assume it
will be done if possible. This usage generally relates to optimisations
which are recommended.<P>
<LI>"will": when the phrase "<I>P</I> will be true"
(or similar phrases involving "will") is used to describe
the composition of a TDF construct, the installer may assume that
<I>P</I> holds without having to check it. If, in fact, a producer
has produced TDF for which <I>P</I> does not hold, the effect is undefined.<P>
<LI>"target-defined": means that behaviour will be defined,
but that it varies from one target machine to another. Each target
installer shall define everything which is said to be "target-defined".
</UL>
<P>
<A NAME=S12>
<H2>4.2. Properties of Installers</H2>
All installers must implement all of the constructions of TDF. There
are some constructions where the installers may impose limits on the
ranges of values which are implemented. In these cases the description
of the installer must specify these limits.
<P>
Installers are not expected to check that the TDF they are processing
is well-formed, nor that undefined constructs are absent. If the TDF
is not well-formed any effect is permitted.
<P>
Installers shall only implement optimisations which are correct in
all circumstances. This correctness can only be shown by demonstrating
the equivalence of the transformed program, from equivalences deducible
from this specification or from the ordinary laws of arithmetic. No
statements are made in this specification of the form "such and
such an optimisation is permitted".
<P>
<I>Fortran90 has a notion of mathematical equivalence which is not
the same as TDF equivalence. It can be applied to transform programs
provided parentheses in the text are not crossed. TDF does not acknowledge
this concept. Such transformations would have to be applied in a context
where the permitted changes are known.</I>
<P>
<HR>
<P><I>Part of the <A HREF="../index.html">TenDRA Web</A>.<BR>Crown
Copyright © 1998.</I></P>
</BODY>
</HTML>