====== CISC 471 :: COMPILER DESIGN CLASS WIKI ====== Please add links and text to share information with others in the class. Add questions for others to help.\\ CISC 471 - Compiler Design\\ Smith 218\\ 8-9:15AM TR\\ Class Link - [[http://www.cis.udel.edu/~pollock/471/index.html]]\\ Professor - Lori Pollock\\ 436 Smith Hall\\ pollock@cis.udel.edu\\ 302 831-1953\\ Office Hours - 12-1pm Tuesdays; 9:30-10:30AM Thursdays and by appointment.\\ TA - Christopher Thorpe thorpe@udel.edu\\ Office Hours - 11AM-12PM, Mondays and Wednesdays 102 Smith\\ \\ ====== Current Unanswered Questions ====== Place new questions here. When questions are answered they will be place under the appropriate heading. ====== Project 1 ====== [[http://www.leeds.ac.uk/jcom/turtle/turtlepascal.htm]]\\ [[http://www.cis.udel.edu/~pollock/471/project1.pdf]]\\ Postscript-[[http://www.tailrecursive.org/postscript/examples/box1.html]] [[http://www.physics.emory.edu/~weeks/graphics/howtops1.html]] [[http://www-cdf.fnal.gov/offline/PostScript/]] ===== General Information ===== ==== D0: Create an svn repository ==== [[http://www.eecis.udel.edu/wiki/ececis-docs/index.php/FAQ/Subversion]] === Q&A === ==== D1: Understanding a lex spec ==== Due: \\ \\ === Q&A === Q: I was wondering how you want us to write test cases. Are we suppose to write them like the turtle graphics program? If we are, PROCEDURE would be illegal. \\ A: The LEGAL test case should try to test many possible test scenarios for the current flex spec, with no concern for syntax because you don't know that yet. \\ \\ ==== D2: Extending a lex spec to augment the language lexeme set ==== === Specifications === Due: Tuesday March 4, 2008 : Before class 8:00am\\ \\ 1. Please put your deliverable 2 in a separate directory from your deliverable 1 to make it easy to distinguish the 2 deliverables. 2. Deliverable 2 should include: \\ new turtle.l spec test file that shows legal cases for your spec (the more thorough the better) new token.h file to include new tokens created readme that explains your intentions of what your language's lexemes/tokens should be.\\ === Q&A === Q: I know this is kind of late notice, but I recently tried to read the turtle.l file and it says permission denied. So I tried to copy the project1 folder into my repository and the only files that copied were Makefile, symtab.c, and symtab.h. Is there a problem with my acad account? By: Doug Wise \\ Q: I was wondering (last minute I know), are we supposed to be using every token that is in the original turtle.l file? And if so, what are COPEN and CCLOSE supposed to do? -Shannon\\ ==== D3: Understanding a yacc spec ==== === Specifications === Due: Monday March 10, 2008\\ === Q&A === ==== D4: Extending a yacc spec to become a translator ==== ==== D5: Create test cases to break another person’s translator ==== ==== D6: Test and Refine cycle – demo and svn/cvs directory ==== ===== General Questions & Answers ===== Q: I keep trying to checkout the repository and it keeps saying "cannot connect to host svn.acad.ece.udel.edu: Connection refused". Do you have any ideas what the problem could be? I went back and added write permissions to authorized users. It still says the same error though. (Added by Joel Messer, based on email from Prof. Pollock) A:\\ By logging in to svn.acad.ece.udel.edu and running ps -elf | grep svnserve, you can see what SVN processes are running and ready to get commands. svn[31] [~/]> ps -elf | grep svnserve 0 S messer 24632 24592 0 40 20 ? 253 ? 15:21:47 pts/9 0:00 grep svnserve 0 S palmer 28778 6056 0 40 20 ? 785 ? 20:28:55 ? 0:00 svnserve -d --listen-port 12121 0 S dhanawad 7533 6056 0 40 22 ? 784 ? Feb 29 ? 0:00 /usr/local/subversion/bin/svnserve 0 S chang 7507 6056 0 40 22 ? 784 ? Feb 29 ? 0:00 /usr/local/subversion/bin/svnserve 0 S warner 7506 6056 0 40 22 ? 784 ? Feb 29 ? 0:00 /usr/local/subversion/bin/svnserve 0 S poskus 7504 6056 0 40 22 ? 784 ? Feb 29 ? 0:00 /usr/local/subversion/bin/svnserve 0 S haozwang 7531 6056 0 40 22 ? 784 ? Feb 29 ? 0:00 /usr/local/subversion/bin/svnserve 0 S hennings 7505 6056 0 44 22 ? 784 ? Feb 29 ? 0:00 /usr/local/subversion/bin/svnserve 0 S schmidt 7537 6056 0 40 22 ? 784 ? Feb 29 ? 0:00 /usr/local/subversion/bin/svnserve 0 S messer 7538 6056 0 40 22 ? 784 ? Feb 29 ? 0:00 /usr/local/subversion/bin/svnserve 0 S wise 4529 6056 0 40 20 ? 784 ? Mar 03 ? 0:00 /usr/local/subversion/bin/svnserve 0 S raimer 18554 6056 0 40 20 ? 785 ? Mar 02 ? 0:00 svnserve -d --listen-port=10101 0 S breinhar 17781 6056 0 40 20 ? 785 ? 10:45:56 ? 0:00 /usr/local/subversion/bin/svnserve 0 S fry 15133 6056 0 40 20 ? 785 ? 08:05:03 ? 0:00 /usr/local/subversion/bin/svnserve svn[32] [~/]> As you can see, there are approximately 13 students with SVN accounts running currently. Since the SVN server when down last week (sometime around the 29th) it is possible that your SVN server was taken down and never reinitialized. These are the steps to take. 1) Log into svn.acad.ece.udel.edu\\ 2) Run ps -elf | grep svnserve to see if your svn server is running, if not, continue.\\ 3) Type crontab -e to edit your crontab (NOTE: The default editor will be VI).\\ 4) Copy and paste the following into your crontab, 0,30 * * * * /repos/start-svn.sh >/dev/null *Replace with your port number.\\ 5) Close your crontab and run\\ /repos/start-svn.sh & *Replace with your port number.\\ 6) Run ps -elf | grep svnserve again and check for your SVN server.\\ 7) If this doesn't work, post a comment here and I'll see if I can help.\\ P.S. Running the same command "ps -elf | grep svnserve" on orioles gives this... orioles[31] [~/]> ps -elf | grep svnserve 0 S bart 16348 695 0 98 20 ? 1067 ? Feb 25 ? 0:00 svnserve -d --listen-port=23118 0 S biro 21476 695 0 40 20 ? 1061 ? 01:04:35 ? 0:00 svnserve -d --listen-port 14742 I'm guessing on of you guys wrote your crontab's on orioles which won't work! ~Joel Messer ===== Helpful Commands ===== * If you don't like vi you can set the default editor to something else. First type "which <>" to get the path of the editor you wish to use. Then type "setenv EDITOR <>". * hint * hint ====== Project 2 ====== ====== Project 3 ======