[an error occurred while processing this directive] If you have found a bug that isn't reported here, please drop me a line so I can fix it.
There are numerous things that need to be improved (or I want to improve). Here are some. Items marked with have been fixed /implemented lately. The "errata"-section describes known bugs while the "to do"-section describes thing that I just want to do.


  1. Errata
  2. Latest changes
  3. To do


The single step-function seems to contain a bug. It takes more than one call to actually make one step.
The program crashes if you try to use make deterministic / minimize on an automaton that is too large. The reason is that the maximum number of states in the program is just slightly more than 32000. Technically there is a risk that an automaton with just 15 states might generate an automaton of this size. Naturally the program shall just say that the action couldn't be completed and nothing else.
There are NO checks whatsoever that there is memory left when you try to allocate it. So far I haven't seen any problems because of this but there might be such when you run on a machine with limited amounts of memory.
When you place an arc the image isn't repainted until you release the mouse button.
The only help-function active is the one under the menu "Help"
If you have changed an FSA and tries to close the window it just closes. A "save before you quit" function would be nice.
When running the first starting state isn't highlighted.

Latest changes

Fixed a bug in the Kleene-closure function, it should work correctly now.
The browser (currently only Netscape) used for help is now only loaded if it isn't currently active.
If you click anywhere where there isn't a state the currently highlighted state is removed.
You can now change several things in the graphical representation of the FSA. You can set the size of the state, the font used for the number and choose between two different highlight-modes. These changes only affect the current FSA, not everyone, but they are saved with the FSA. The default is a diameter of 40 pixels, 8p MS Sans Serif, and solid highlighting.
You can now delete an arc by clicking on it with the eraser-tool selected.
Renumber now also resets the highest statenumber so the numbers is in order.
A crude version of Huffman and Moores minimization-algorithm is now implemented.
Implemented a function to move all transitions going into that state to another.
Hopcrofts minimization algorithm is now implemented.
You can now check whether or not two given states are equivalent.
A menu-item for checking how many states there are in the automaton is now implemented.
Operations that might take time is now signaled using an houreglass-mousepointer.
Fixed so that you can not remove empty transitions if the FSM has got transitions with strings attached. This fixed a bug we had experienced.
Added a menu-item that tells whether or not the FSM has any transitions over strings. The function is used in the bug fix mentioned above.

To do

Functional modifications

Fix conversion from FSA to regular expression
Two words: regular grammars.
Possibility to find the "next" solution.
The OOP-hierarchy is ridiculous. As it is now there is only one FSM-class (the situation with the regular expressions isn't as bad) with just too much functionality. It needs to be divided into at least two classes. One pure FSM-class and one graphical FSM-class.
It would also be nice to have some sort of common parent-class for the classes, say TRegular.
More efficient implementations. (this won't happen for a while)

Usability modifications

Allow the user to "zoom" in/out at the FSA.
Allow strings between arcs to be entered in a simple way.
Different pointers for different modes.
If there are several transitions between states the transitions-symbols/strings should be placed beside each other not above.
While backtracking the states isn't highlighted.