Re: ANDF

caliban!ig@uunet.UU.NET (Iain Bason)
Fri, 15 May 1992 19:10:26 GMT

          From comp.compilers

Related articles
Re: standard intermediate representation for C/C++ ? root@grok19.columbiasc.NCR.COM (Dave Howell) (1992-05-11)
ANDF preston@dawn.cs.rice.edu (1992-05-13)
Re: ANDF nickh@CS.CMU.EDU (1992-05-15)
Re: ANDF caliban!ig@uunet.UU.NET (1992-05-15)
Re: ANDF ped@thor.inesc.pt (1992-05-19)
| List of all articles for this month |

Newsgroups: comp.compilers
From: caliban!ig@uunet.UU.NET (Iain Bason)
Keywords: UNCOL
Organization: Compilers Central
References: 92-05-065 92-05-082
Date: Fri, 15 May 1992 19:10:26 GMT

I have a (paper) copy of "TDF Specification" published by the Defense
Research Agency/Electronics Division (that's in England). Unfortunately
it doesn't list an address or phone number. I can't type it all in (it's
~85 pages and copyrighted), but I'll see if I can find a reasonable
overview. Hmm, let's see...


"TDF is defined in the form of a data-structure which is
an abstract syntax for programs...[deleted text] A TDF
data-structure representing program is encoded into a linear
stream of bits and resides in a file..."


"TDF provides two different methods of identifying values
by names, one static and one dynamic. Identifiers which
statically identify pieces of TDF program are called
TOKENs. They loosely correspond to ANSI C's parameterised
macros but are a great deal more powerful. Identifiers
in a TDF program that dynamically identify run-time
values are of SORT TAG. These identifiers correspond
to the names of variables and procedures in programming
languages..."


Unfortunately they don't give any examples, but it seems as though
and expression like "a = b + c" would translate to something like


Assign(Obtain_tag(1), Plus(Obtain_tag(2), Obtain_tag(3)))


where, of course, tag 1 refers to 'a', tag 2 to 'b', and tag 3 to 'c'.
There are extra arguments to all of the constructs. For instance,
Assign has arguments to specify error treatment, and whether the
source and destination overlap. TDF has an "Identify" construct that
acts a lot like Lisp "let". Constants are specified with "Make_int",
and so on.


I don't know how closely ANDF will correspond to TDF, but I expect the
basic structure will be the same.
--


Iain Bason
..uunet!caliban!ig
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.