Jastex - Turing Machine Enabled v1.1 by B.J. Dweck January 21, 2004 *** Introduction Jastex - Turing Machine Enabled is the combination of two programs: 1. JasTeX v1.1: A graphical user interface for GasTeX written by Michel Duong, Gregory Kokanosky & Yannick Ozouf 2. A Turing Machine applet written by Suzanne Skinner Jastex - Turing Machine Enabled was written to give the user the ability to draw a turing machine and simulate it. *** System Requirements - Java Virtual Machine: This program was developed and tested on J2SE 1.4.2 It may run on earlier versions of Java but JasTeX requires ** at least Java 1.3 ** The latest version of the Java platform can be downloaded from http://java.sun.com *** Installation / Execution This zip files contains the following files: TuringMachine.jar : Jastex - Turing Machine Enabled Java archive file readme.txt : This readme file Extract the files. Goto the directory containing Jastex.jar and type: java -jar TuringMachine.jar *** Using Jastex - Turing Machine Enabled - Information on using JasTeX can be found on the JasTeX web site (see below). - Information on using Suzanne Skinner's Turing MAchine applet can be found on her web site at: http://www.igs.net/~tril/tm/program.html - Custruct a turing machine by drawing it in the Drawing tab and/or coding it in GasTeX (a Latex package) in the Latex Code tab. - Turing Machines may also be loaded from files containing GasTeX code. - Select the Turing Machine Applet tab to have the turing machine code generated and entered into the turing machine applet. * Enter initial characters on the tape and click Install Program - Select the Turing Machine Description tab to view the formal description of the turing machine (as a 7-tuple). - To save your turing machine, click on the Save icon and supply a file name. The program will output the latex code to a file by the supplied name and the turing machine description and code to a file of the supplied name with a '.tm' extension. *** IMPORTANT Notes on Turing Machine Construction STATES * Turing Machines MUST contain one and only one start state - indicated in latex using an Initial Mark. * Turing Machines MUST contain one and only one accept state - indicated in latex using a Round Mark. * Turing Machines may contain one and only one reject state - indicated in latex using a Final Mark. * Turing Machine states may be labeled or left blank. * State labels are ignored in construction of the turing machine code. * State labels are used in construction of the formal description of the turing machine. TRANSITIONS * All transitions must consist of GasTeX edges (either a Streight Line, one of the four types of curves, or a Loop). * All transition edges MUST be labeled. * All transition edge labels must conform to the following syntax: 'read-char[[,read-char]+]->[write-char,](L|R)' In other words, they must conform to the following regex: 'char(,char)*->(char,)?(L|R)' If the write-char is omitted, it is assumed to be the corresponding read-char. Spaces are ignored. A space on the Turing Machine tape is represented by a '_'. NOTE: The 'L' and the 'R' MUST be UPPERCASE! Examples of valid edge labels: 'a->R', 'a,b->L', 'a->b,L', 'a,b,c->$,R' Examples of invalid edge labels: 'a->r', 'a,b->l', 'a,b,->R', 'a b->L' * A transition edge may contain more than one label separated by a ';'. For Example: 'a->R ; b->L' is a valid edge label *** JasTeX Info - Web Site: http://www.liafa.jussieu.fr/~gastin/JasTeX/JasTeX.html *** Suzanne Skinner's Turing Machine Applet Info - Web Site: http://www.igs.net/~tril/tm *** Contact Info B.J. Dweck bjd2102@columbia.edu Have Fun!