ANSI C Portable TXL 5.2

cordy@qucis.queensu.ca (Jim Cordy)
17 May 91 14:43:55 GMT

          From comp.compilers

Related articles
ANSI C Portable TXL 5.2 cordy@qucis.queensu.ca (1991-05-17)
| List of all articles for this month |

Newsgroups: comp.compilers,comp.lang.misc
From: cordy@qucis.queensu.ca (Jim Cordy)
Keywords: TXL, portable, C, prototyping, transformation
Organization: Queen's University, Kingston, Ontario, Canada
Date: 17 May 91 14:43:55 GMT

TXL for the Rest of Us
----------------------
In response to overwhelming popular demand, I have created a portable ANSI
C source for TXL 5.2 using an automatic translation of the original Turing
Plus source. The result is available via anonymous FTP from
qusuna.qucis.queensu.ca (130.15.1.100) in the directory '~ftp/txl',
filename 'porttxl52.tar.Z'.


The result has been validated as legitimate ANSI C using the Gnu C
compiler with the -ansi -pedantic flags, and tested on all of the Sun/3
(MC68020), Sun/4 (Sparc), Dec 3100 (Mips), Dec VAX, and NeXt (Mach)
architectures using the native Unix C compilers.


For those of you who have forgotten what TXL is, I have reposted the
original description below. Thanks to all of those who have responded
and/or tried it out so far. Let me know how it goes if you decide to use
it for anything interesting.


Jim Cordy
---
Prof. Dr. James R. Cordy cordy@qucis.queensu.ca
Dept. of Computing and Information Science James.R.Cordy@QueensU.CA
Queen's University at Kingston cordy@qucis.bitnet
Kingston, Canada K7L 3N6 utcsri!qucis!cordy


-----
COPY OF ORIGINAL POSTING ABOUT TXL:


Subject: TXL 5.2, a Rapid Prototyping Tool for Computer Languages


TXL: Tree Transformation Language is now available via anonymous FTP
from qusuna.qucis.queensu.ca (130.15.1.100).


TXL 5.2, (c) 1988-1991 Queen's University at Kingston
-----------------------------------------------------
Here's the language prototyping tool you've been waiting for! TXL is a
generalized source-to-source translation system suitable for rapidly
prototyping computer languages and langauge processors of any kind. It
has been used to prototype several new programming languages as well as
specification languages, command languages, and more traditional program
transformation tasks such as constant folding, type inference and source
optimization.


TXL is NOT a compiler technology tool, rather it is a tool for use by
average programmers in quickly prototyping languages and linguistic tasks.
TXL takes as input an arbitrary context-free grammar in extended BNF-like
notation, and a set of show-by-example transformation rules to be applied
to inputs parsed using the grammar. TXL will automatically parse inputs
in the language described by the grammar, no matter if ambiguous or
recursive, and then successively apply the transformation rules to the
parsed input until they fail, producing as output a formatted transformed
source.


TXL is particularly well suited to the rapid prototyping of parsers (e.g.,
producing a Modula 2 parser took only the half hour to type in the Modula
2 reference grammar directly from the back of Wirth's book), pretty
printers (e.g., a Modula 2 paragrapher took another ten minutes to insert
output formatting clues in the grammar), and custom or experimental
dialects of existing programming languages (e.g., Objective Turing was
prototyped by transforming to pure Turing and using the standard Turing
compiler to compile the result).


TXL comes with source (sorry, it's written in Turing Plus, so not many of
you will be able to modify it), binaries to run on both Sun/3 and Sun/4
architectures under Sun OS 4.x, self-instruction scripts and a pile of
examples of its use in various applications. Sources in C, and binary
versions for other machines may become available if there is enough
interest.


Jim Cordy
--
Prof. Dr. James R. Cordy cordy@qucis.queensu.ca
Dept. of Computing and Information Science James.R.Cordy@QueensU.CA
Queen's University at Kingston cordy@qucis.bitnet
Kingston, Canada K7L 3N6 utcsri!qucis!cordy
--


Post a followup to this message

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