If you submitted for a regrade
for PA2, PA4, or PA5, you must email Jimmy describing the changes that you
made.The REGRADE file only applies
to PA3 as stated in an earlier message.
PA 5 grading summary including late day penalty had been
mailed to your cs164 accounts.Each
submission gets one email to the account that contains the cvs repository for PA5.
PA5 is out of 100 points.The mean is 79.3.The median is 82.The standard deviation is 16.2.Here is thehistogram.
Office hours on Monday Dec 20. Ras: 1-2. Jimmy and
Armando: their usual Monday office hours.
The review session will be held from to
Saturday (12/18/2004) in 306
PA 5 grading logs had been mailed to your cs164
accounts.Each submission gets one
email to the account that contains the cvs
repository for PA5.
If you submitted PA6, please send Jimmy email briefly
describing the optimizations that you implemented.You need to send the email by Monday at .
After talking with several students, we have decided to
give a little more partial credit on PA3. In particular, if your score on
the code generator portion of the project (corresponding to the generatoroutput.log) was higher than your score on the
decaf parser (corresponding to the decafoutput.log),
we will increase the weight of the code generator part from 25% of the
grade to 50% of the grade. Also, some people got zeros because their code
failed to run with assertions turned on, so we have regarded everyone's
project with assertions off, and used the highest of the two grades. The
new grades can be found on glookup. The new
average is 57.4, and the new median is 66.
In case after this adjustments you still need a regrade, here are some answers to some common
questions that have been asked by students: - The regrades are over 80 points, and are NOT
all-or-nothing, i.e. if you pass half the testcases,
you would get a 40. - regrades will be graded with the 50/50 weights, and a
few more testcases will be added to the code
generator tests to reflect the increased weight. - If you
score lower on the regrade than on your original
submission you can keep your original grade - You have
until the time of the final exam to submit code for a regrade - To
submit code for a regrade, simply commit your
files to CVS along with a file called REGRADE containing the word 'yes'. - Regrades will be done using the -ea flag, so this time
make sure your code works with assertions on. - These
points only apply to regrades for PA3. Other
projects have their own deadlines and policies.
The deadline for PA5 regrade will
be Sunday (12/19) .
The deadline for all other PA regrades
will be Friday (12/17) .
How to submit PA6: Create a PA6 module in your CVS.
(the same way you do for PA5) In order to submit a benchmark(the test case
that performs best with your optimizer), name that file "benchmark.decaf" in tests/ dir. No remote testing
An alternative remote
tester has been set up.The original
remote tester will continue to run as before, and run all your test cases.The alternative remote tester is currently
running in parallel on 8 machines. Below are the features of the alternative
1.Results will be updated every hour
2.It will only run the first 20 test cases
in your tests directory using alphabetical order.
3.It doesn't give coverage.
4.It doesn't work with the Eclipse plugin.
Below are the files
updated by the alternative remote tester:
summary: List the testcases that was run, and whether your submission pass or
Your compiler's output while compiling the testcase
*_ref_compile.out:Reference compiler's output while compiling
*_your.out:Your executable's output when it is run
*_ref.out:Reference executable's output when it is run
We expect the
turnaround time to remain the same as the deadline approaches.If you have problems, contact Jimmy.
PA5 deadline is
extended by one day. New deadlines shifted by one day:
·due Fri Dec 10
– if you’ve ran out of late days, you can still submit late, with a
penalty of 10%/day
– submit not later than Monday Dec 13
– due Tuesday, Dec 14
A couple of people asked whether string variables can be
assigned null. The answer is YES. Variables of type String can be assigned
grades are available on glookup. The project is
out of 100 points. The mean is 47.92, the median is 56.48, and the
standard deviation is 36.419. Grading log files for PA4 have been checked
into your CVS repositories. SUMMARY contains a summary of how many test
cases you failed, as well as who is your partner and what date in the DONE
file was used. If there is an error in any of these things, let Armando
know. The other two .log files contain information about the individual
test cases. The grade distribution can be seen here.
regrade policy will be the same as for PA4: You
can submit twice for regrade, each attempt has a
penalty of 15 points. For example, if your first attempt passes all the testcases, then your regrade
score is 85. If your second attempt passes all the testcases,
then your regrade score is 70. Contact Armando
for PA3 regrades
Grading log files for PA4 have been checked into your CVS
repositories.There are two files.Thelogin-grade.log file contains an
explanation of the grading system and a list of testcases
that your submission failed.The
login-pa4-log.tar.gz contains the actual testcases
that your submission failed on.
Regrade policy for PA4: You can submit twice for
regrade, each attempt has a penalty of 15
points.For example, if your first
attempt passes all the testcases, then your regrade score is 85.If your second attempt passes all the testcases,
then your regrade score is 70.Contact Jimmy for PA4 regrades.
office hours for Wed and Thu this week are cancelled (will be out of
town). Apologies for the inconvenience. Please see the TAs with your
PA4 grades are available on glookup.The project is out of 100 points.The mean is 73.5.The median is 87.The standard deviation is 15.42.Here is the histogram.
Midterm 2 grades are available on glookup.The mean is 74.74.The median is 73.The standard deviation is 14.28.The exam is out of 100 points.One student got 100, which is the
max.Here is the histogram.
Starter kit is updated.
Only a decaf.dtok file is added to the tests/
directory. You don't have to re-download it because you can use the PA4's decaf.dtok for PA5.
·Exam checklist. The exam will cover
some of the following topics (but maybe some others, too).
Code Generation: Call sequence for
non-oo languages, memory layout for Objects,
inheritance, dynamic dispatch, etc.
Dataflow analysis: Know the analysis
studied in class, and make sure you can create a dataflow analysis from
scratch for a property you've never seen before.
Register Allocation: Understand graph
coloring, relationship with live variable analysis.
Garbage Collection: Understand the
garbage collection algorithms discussed in class.
·PA5 clarification: please add the following item
to the list of rules on page 4 of the PA5 handout. Logically, this new rule
relates to the 7th item on this page. (The PA5 handout on the course web site
has been updated.)
A reference to a static
field x of a class T is legal in both instance and
static methods of class T (and its subclasses), and is internally translated to T.x.
·I will be having extra office hours on Wed. 17
starting at on 611 Soda to go
over material for the exam. -- Armando.
·Jimmy will have an extra office hour on Thursday
from to in 511 Soda.This is in addition to his regular office hour from to on
Thursdays.So he will be in 511 Soda
from to on the day of the exam.
·After some clarifications have been added to its
handout, PA5 has been posted. Please note that we arenot providing a solution to PA4; please use the remote
tester to weed out your PA4 bugs.
·For those who printed the handout before . Correction on PA5 dues times: as has
been common, the project is due ,
not as shown in the handout.
The handout is now corrected.
·Homework 8 has been posted. The homework is
coming later than planned (my apologies), due to a crash of my hard disk. If
you won't have the time to work out a solution you are proud enough to submit,
note that the homework is optional (read more in the handout). --Ras
·PA5 is coming tomorrow. Stay tuned.
·Below are the thresholds for passing in the
previous written assignments.You will
see a 1 in glookup if you get a score at or above the
threshold.Otherwise, you will see a 0.
·The sections on Wed, Nov 10, are cancelled.
Their material will be covered, by Armando, during a part of the lecture on
·Garbage collection slides are now posted.
·Jimmy will be away next week in Pittsburgh
attending a conference.His office hours
will not be held next week.He can be
reached via email.
·Due to temporal failure of the instructional
severs, deadline for PA4 is extended to Tuesday, Nov 9. . For the date in DONE
file, submission before are
counted as 11/08/2004
submissions. The ones submitted in the afternoon are counted as 11/09/2004.
This rule applies to the subsequent late days. BUT NOT FOR PA5.
Only projects called PAx in your cvs will be
collected for grading purpose, where x is the ID of the programming
WA7, you may turn in the assignment as a project group.Make sure both names and logins are on
has been graded.The project is out
of 59 points.The mean is
37.52.The median is 50.The standard deviation is 22.1.Here is the distribution.PA2 grades are available on glookup.
The grading log for PA2
has been checked into your cvs repository as a .tar.gz file.
Regrade policy for PA2: For a
penalty of 12 points, you may make small changes to your source code and
resubmit.This means that the best
score you can get on a regrade is 47/59.Small change is up to the interpretation
of the TA.You need to schedule a
meeting with the TA for regrade.For PA2, contact Jimmy for regrade.
The only difference compared to the old file is it has the PA3's source
code attached with it. Starter kit is udpated to
is due Nov 8, as stated in the handout. Apologies for the confusion; I was
sick in the last few days and neglected updating the web site. --Ras
reporting problems, please provide the login where your cvsroot is hosted.
compensate for yesterday's cvs problem, we
decided to give one late day to all students. Now you have 4 late days
order to improve efficiency, remote tester won't test the projects that
have DONE file committed.
PA3 the same way you submit PA1 and PA2. collecting script will be running
you have the report.xml file but the plug-in
doesn't show anything, please copy the .config
file found under tests/ in the newest starter kit to your tests/
request, WA5 will be due one day later, on Friday, Oct 22, in the cs164 mailbox in 283 Soda. This
extension is granted so that your PA3 work doesn't overlap with WA5.
to a crash of an NFS server on Saturday night, PA3 deadline has been
extended by one day, to Thursday 10/21/2004.
Here is a build.xml that works for PA3.Besides updating with this file, you
need to do the following in Eclipse:windows->preferences->ant->Runtime->add external jarsThe
jar file you want to add is tools.jar from your jdk installation.For example, on my computer, the tools.jar
file is in c:/Program Files/Java/jdk1.5.0/lib.
Please download decaf-with-actions.dpar for
step 5 of PA3.WARNING: do not
underestimate the amount of time it takes for completing step 4 and step
From Ras:I totally forgot to hand
out HW5 in class today
(apologies!).This homework is
officially assigned today, and due in a week (Oct 21). You can print the assignment off the CLASS web,
or get a hardcopy from the mailbox on thE
outside of my office (773 Soda).
Midterm 1 grades are
available on glookup.The mean is 70.17.The median is 72.The standard deviation is 12.54.The exam is out of 100 points.Two students got 96, which is the
max.Here is the histogram.You can pick up your midterm in
The solutions for PA1 and
PA2 that are needed for PA3 are included in two jar (PA1.jar, PA2.jar)
files in the starter kit, but we prefer that you use your own PA1 and PA2
The grading log for PA1
has been checked in to your cvs repository.
Regrade policy for PA1: For a
penalty of 8 points, you may make small changes to your source code and
resubmit.This means that the best
score you can get on a regrade is 36/44.Small change is up to the interpretation
of the TA.You need to schedule a
meeting with the TA for regrade.For PA1, contact Jimmy for regrade.
The solution to Midterm I is here. Apologies for the
The handout for PA3 was updated again
at today. The change was to the grammar
on page 4.
Here is a .dpar
file containing the grammar for Decaf. The grammar is not yet in
LL(1), but you should be able to make it LL(1) through left factoring and inlining of rules. This is meant to serve only as a
hint and may contain small errors; the official grammar for Decaf is the
one that appears in page 4 of the project handout.
PA1 has been graded.Here is the histogram.Maximum possible score on PA1 is
44.The mean is 37.24.The median is 41.
PA3 starter has been updated. A .config for remote testing is included. decaf.dpar is included. "Java Build Path"
problems for using PA1.jar and PA2.jar have been fixed. Please make sure
your have decaf.dpar (not dcaf.dpar)
in your tests/ directory.
·The handout for PA3 was
updated at today. The Starter kit was
also updated at . If you downloaded your
starter kit or handout before that time, please get a new version of both.
·Exam checklist. The will cover
some of the following topics (but maybe some others, too).
Computing FIRST, FOLLOW sets.
When/why is (not) a grammar LL(1)? How
to make a grammar LL(1)?
LL(1) parsing algorithm.
Recursive descent algorithm.
Complications arising in r.d. parsing.
How will an incorrect parsing algorithm
(we will describe the incorrect algorithm) behave on a particular input?
When will this parser fail?
Bottom-up parsing: show a correct
(successful) sequence of actions. Which stack configurations is
guaranteed to fail?
Given a grammar, which parsers are
suitable for the the grammar?
NFA -> DFA conversion.
Write a regular expression for a
lexeme described in English.
Regular expression -> NFA
Show a suitable AST for a smallprogram fragment.
Write a grammar for a small language
described in English and using examples of strings from the language.
·Ras will hold an extra office
hour on Monday, Oct 4, from 1 to 2, in his office (773 Soda).
·Jimmy will hold an extra
office hour on Monday, Oct 4, from 2 to 3, in 611 Soda.He will also have his regular office hour
from 3 to 4 in 511 Soda on the same day.
·Armando will hold an extra
office hour on Monday, Oct 4, from 4 to 5, in 611 Soda. He will also have his regular
office hour from 5 to 6 in 511 Soda on the same day.
·PA2 starter kit updated.The toString method
for Token was modified so that we can all agree on the format for outputting
the line number and char number of the token.If you started on PA2 already, you can simply replace the Token class
with the new one in LookaheadLexer.java..
step 4 in PA2, it is up to you on how to implement char counting.You are not required to use actions to
·Instructions for Remote
Testing PA2 can be found at the projects page.
Remote Testing infrastructure is
running every hour
Remote Testing and submit If you still don't see
in your PA1/tests/ directory when you update with CVS, please contact firstname.lastname@example.org
right away. Don't forget to include you login in your email.
An Errata section has been added to the
A couple of bugs were fixed in the reference implementation. Some inputs
that matched the reference under the old test may no longer match.
September 2. A Couple of FAQ
from yesterday's lab.
I changed the java compliance level to
1.4, but eclipse still complains about asserts.
It's not enough to change the "Compiler compliance level" to 1.4
you must also uncheck the box that says "Use default compliance
settings", and change both "Generated .class files compatibility
" and "Source compatibility" to 1.4 as well.
On step 10 of section 3.2, I went to
Run/Run…, but I don't see any "Arguments".
If this is the case, select "Java Application", and click on the
"New" button. Under "Name", type "PA1", and
also type "PA1" under project and under Main class. Then, under
the arguments tab, you can fill in the arguments.
August 30. Welcome to the
CS164 Fall 2004 web site. Check this page regularly the latest announcements.
The first discussion
sections will be held in the 330 Soda lab.
While 330 Soda is our nominal lab, you
can do your work in any lab where Eclipse is running. (This will get
harder in PA4 and PA5, though, as you will need to run your code on a x86 machine,but there are
solutions. But we'll burn that bridge when we get to it.)
To get access to 330 Soda after hours,
students should go to 387 Soda or 253 Cory to have their card keys enabled
for this semester. During the day, students should just heed the sign on
the door that says "Just Push". :-)
Class account forms will be handed out
during the recitations on Wed, Sep 1. Don't discard the form after
you change your password! You
will need the original password to create a CVS directory, and also to
change the password on the Windows account (because changing the password
on the Unix account doesn't change the password on the Windows account,
and vice versa).
You may use any account for your work
(including your home Mac, Linux, Windows, AIX, or HP-UX), but you will
have to use your course account as a CVS repository, which is how you
submit your solutions.
This course will use the Eclipse
programming environment (so don't even ask about your dad's emacs or vi :). If you want to code on your home
machine, download Eclipse here.
You will also need the plugin for remote
testing, available on our Software page.
If you are impatiently waiting on the waiting list:
Make sure to file an appeal form in
Soda 390by Friday Sep 3, !
Do not contact the class staff, but
instead contact Michael-David Sasson (msasson@cs, 379 Soda, 3-6002)
For waiting list policy details: see here
and the FAQ.
Still, pick up a class account and
start doing the homework.
If you are a lucky holder of one of the
following accounts, the password listed on the account form will not get
you into the departmental Windows system. Sorry about this. To fix the
problem, you need to append the string W2k to the end of the password
given on the account form. You don't need to fix anything to log into the
Solaris machines; only Windows is affected.