Week 5: June 18th - June 22nd

Monday, June 18th

Today I worked on a lot of Turing machine code. It is really amazing just how much Turing machines have the capability to do. While I focused today mainly on the conversion from TM to Unrestricted Grammar and unrestricted parsing of those grammars, I started reading up on old capabilities such as building blocks as well as new things like Multi-tape to multi-track to single-tape conversions. It seems like a good amount of work can be done to make Turing Machines an extremely useful part of JFLAP. Hopefully I can be the one to do it.

Tuesday, June 19th

I knew there was a lot to do with Turing machines, and boy was I right! Today I focused mainly on building blocks, which in turn lead to having to add levels of abstraction to Turing machines to allow for the two different kinds. I wrote the code for all the transitions, components, and actual machines, and then designed some basic building blocks to have in the library, such as a move, a right, a move until any character, etc. It was quite fun, but tomorrow I'm going to have to debug everything and clean up my code.

Wednesday, June 20th

Still plugging away at Turing machines, this time dealing with blocks, testing, and debugging. Julian and I found some errors that we spent a long time dealing with, and I also went through all my old code for Turing machines, parsers, and algorithms and cleaned it up, extracting duplicate code, and generally refactoring it and reformating it to look much better. Tomorrow, we're planning on implementing Multi-tape building blocks, and do a little testing on every model component, because with that done, the model package is finished.

Thursday, June 21st

Focused more on Turing machines today, primarily on building some sample blocks for the library. I added a copy block that duplicates the input on a tape, separated by a delimeter or not, as well as a lot of work on a universal TM. The UTM can simulate any other (single-tape) Turing machine, so it's extremely powerful and could be extremely interesting to play around with.

Friday, June 22nd

More Turing Machines today! I worked on an alogorithm for transforming a Turing Machine into its Universal unary string encoding, as well as a Turing machine that would take input on a string and the original turing encoding and modify the tape to have the proper input for a universal Turing machine to do its simulations.