Projects, Programs and Papers

A project will be due on the last day of class; but you can get started on it at any time. It can consist of a program or a paper or a webpage or perhaps something else of your design. It must be relevant to the course. A proposal is expected and should be submitted before you get to far into the project. If you wish to file a claim to a topic early, please email me your selection. Size? This is not a major project. A few pages for a paper should suffice. A program that accomplishes one task illustrating some concept would be fine. Deadlines: Proposals: Monday, 2/25 Projects/Programs/Papers, Monday, 3/11 Some suggestions will be listed below and added to as the term progresses. Also I might put some books on reserve. The default project is indicated by an asterisk (*) below. awk yacc Discuss the syntax of some particular programming language, e.g. Snobol, mumps, forth, trac, Logo (taken!) Discuss the syntax of some particular natural language, e.g. Kiswahili (taken!) Syntax of DNA (taken!) On Finite Automata: GREP (taken!) GROPE (taken!) Semigroups and Monoids String Matching Text Searching Lexical Analysis Finite Automata that learn(taken!) Minimization of FA Cellular FA (taken!) Quantum FA (taken!) Recursive Function Theory Post Correspondence Systems Post Rewriting Systems Markov Algorithms Linear Bounded Automata and Context Sensitive Languages The language in Godel, Esher, Bach Compilers - Bottom up vs. top down parsing - tokenizers - LR(k) grammars - optimization (taken!) - parallellizing compilers Natural Language - Wait-and-See Parsers - Natural language front ends Debuggers Formal Semantics Intentionality A program to - Check to see that a regular expression (RE) is well-formed.(taken!) - Generate the language defined by a RE. - Ckeck to see if two REs are equivalent. - Pattern Matching - KMP - Evaluate Arithmetic Expressions (taken!) - Evaluate Logical Expressions - Convert Expressions from infix to postfix (taken!) - Parse/compile - Given two programs, are they syntatically equivalent. - Rightmost derivations - Put CFGs into CNF - Put CFGs into GNF (taken!) - Check CFGs for infiniteness (taken!) - Check CFGs for emptiness (taken!) *- Given w and CFG, is x in L(CFG)? i.e. membership. (This is the default project.) - generate the total language tree for a CFG - Simulate Mealy or Moore Machines - Simulate an FA - Simulate a PDA -Simulate a BA (taken!) - Simulate a PM - Simulate a 2-PDA - Simulate a TM - use Turing's World to do binary arithmetic - Build a UTM (Universal Turing Machine) On programs: You can use any language you desire; however the instructor and grader should be able to easily run the program, e.g. from your webpage or from hsp. The program should be documented, esp. with respect to the relationship to this course. In fact, the relevance of what it does is more important than either its extent or size. A demo would be greatly appreciated.