Today marks the beginning of my summer job here at Duke. I started the day with a meeting with Professor Rodger going over everything I will need to do before I can actually start working. The creation of this blog is the first! After reading up on basic HTML and some CSS, I played around with my website and decided on a layout (though I'm sure it will change a lot to be what you see now). North building is fairly lonely, without Peggy or Julian, but I worked hard without them (though I did play music I probably won't be able to tomorrow).
As for JFLAP, my first landmark is to read up on automata, grammars, and regular expressions, so I started reading the Linz book to acquaint myself with the topics. I read chapters 1 and 2, with introduction to set theory, graphs/trees, formal languages, DFAs, NFAs, and a review of proof through induction and contradiction. I also read the introduction to Prof. Rodger's JFLAP book and browsed through some of the related topics on the JFLAP website. What a productive first day!
Today I decided it would be good to take down all the important parts of the Linz textbook in notes, so I reread chapters 1 and 2 while writing out notes (which I will post shortly). I continued onward in the book as well, reading chapters 3 and 4 (and adding them to my notes) learning about regular expressions, regular languages, regular grammars, and how they interrelate. Peggy joined me at work today, and it was quite nice to have someone else in the room. Hopefully when Julian gets here, it will be even better.
I also started playing around with JFLAP. After reading a lot of the theory behind it, it was very cool to see how easily the program does it, and especially how it teaches the process. I went through the first 2 chapters of the JFLAP book and did lots of the exercises. Can't wait to check out the code behind it!
Julian arrived today, and got me quite excited about what I'll soon be working on. Going to have to try to absorb as much information as quickly as possible so I can start actually getting to work with the JFLAP code. I powered through chapters 5-8 in the Linz textbook, learning about context-free grammars, parsing, pushdown automata, and lots of the properties of context-free languages. With that under my belt, I decided to move on in the JFLAP book, covering chapters 3-6 and almost all of the exercises. I also started to help with debugging/testing of the new version of JFLAP.
Got to work a little early today, and decided I was going to finish the Linz book. I read all about Turing machines and a bit about Recursively Enumerable languages, and I was extremely impressed with just how useful Turing machines can be! The fact that something that simple can (with the right algorithm) do anything that a regular computer today can do is extremely impressive. After finishing the Linz book, I started back with work on the JFLAP book. I want to get as used to the program as possible before I start looking at the underlying code or changing anything. I worked on chapters 7,8, and 9, dealing with transforming grammars, LL/SLR Parsing, and Turing Machines.
Along with doing quite a lot of reading in the JFLAP and Linz book as well as a lot of exercises with JFLAP, I started taking a crack at the Software Visualization book. I read chapter 1, and while it is quite old (and has many things it states as uncommon or unheard of that have since become commonplace) it gives a very detailed explanation into what software visualization can do, how it can be evaluated, and just how important it is in the technology-fueled world we live in. I took notes on the first chapter, which I will post soon, along with my completed Linz notes.
Today was a pretty fun day. The highlight of it was, of course, Professor Rodger treating Peggy and me to a delicious lunch at Dos Perros, a Mexican restaurant in downtown Durham. I greatly enjoyed her talking about her summit that she just returned from, as well as learning about some of the cool topics that she, her husband, and other professors at Duke's Compsci department have been involved with.
Besides the delicious break, I decided to COMPLETELY finish both the Linz book and the JFLAP (though I didn't take any notes) exploring more complicated Turing Machines, unrestricted/contect-sensitive grammars, L-Systems, and problems that Turing Machines can not solve. I also read a paper by Pinaki Chakraborty, P.C. Saxena, and C.P. Katti titled "Fifty Years of Automata Simulation: A Review" which I will post notes on shortly. It was essentially a summary of the work different people have done over the past years in the simulation (whether graphic- or language-based) of automata. It was quite interesting to see how praised JFLAP is, being called the most sophisticated, unparalleled tool in the field. Can't wait to be involved in something so prestigious, but for now, it's time for the long weekend!