cordy@qucis.queensu.CA (Jim Cordy) (05/07/91)
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 Queen's University, Kingston, Canada cordy@qucis.queensu.ca -- 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