Digital Systems Construction / Nisan & Schocken / Spring
Final Grades: The
final grades in the course are available in the Mazkirut. The grades were
computed using the following weights for each project:
|VM Design I||9|
|VM Design II||9|
|Compiler Design I||9|
|Compiler Design II||9|
|OS Implementation I||8|
|OS Implementation II||8|
Error correction: The multiplication and division algorithms that appear in chapter 10 contain a mistake. Please download the corrected algorithms (Make sure you download this file after 17:00).
OS project deadline: In order to let you work on the OS project with a clear mind, we delay the submission dates to a time when there will be less examination pressure. Levels 0 and 1are due on July 7. Level 2 is due on July 18. If you want to submit the entire project earlier you are welcome to do so.
June 11 class: This class meeting will be devoted to answering questions about the OS project implementation. If you have no questions, there's no reason to come.
Error correction: The API of the appendChar
method in the Sack
Specification document was wrong (last page). The correct text should
be: "Method String appendChar(char c) -- appends c to this string
and returns this string. Level 0."
The error has been fixed, so if you want you can print again the last page of
There will be no class meeting on June 4.
Do: Project 10 (Operating System) is available. Levels 0 and 1 are due on June 11. Level 2 is due on June 18. If you want to submit the entire project earlier you are welcome to do so. That's the last project in this course ...
Before you start to work on the Operating Systems project, you must download a new version of the compiler.
Chapter 10 (Operating Systems), which is also available, is identical to what was distributed in the last class (except for the first page, which is an introduction). Therefore, if you have the printout that was distributed in class, there is not need to print this chapter.
Compiler and O/S book chapters: The compiler chapter which is presently published in the site is old and out-of-date, and therefore it includes inconsistencies with the current spec and design documents. We are leaving it on the site since it still gives some useful examples of the code generation that you have to do in Stage II of the compiler design. BUT, once again, you should note that many details in these examples are no longer valid in the present generation of the compiler. The operating system chapter will be published in a few days.
Do: Stage 2 of Project 9 (Semantic Synthesis) is due on June 2.
Learn: On May 28 we will start discussing the Operating System.
Parser test files: The parser test files (*.cmp) in the Compiler Project had a small mistake in them. Please re-download these files (make sure you downloaded them after 20:30).
Do: The Compiler Project is available. Stage 1 of this project is due on May 23.
IMPORTANT: In the VM II project, the Sys.vm file in the fullTest program contains the line "push constant -1". Those of you who supported negative constants - it's fine. However, Since the VM spec only requires positive constants, you can use this Sys.vm instead of the one in the project. The rest remains the same.
Since this is a late notice, and since it seems that many of you have difficulties with this project (VM II), you can submit it in the 13/5 instead of the 12/5. There are also some suggestions for simple debugging of function calls in the newsgroup - take a look.
Download: New versions of all the simulators and software needed for the course are available. You should download the two files simulators.zip and translators.zip, then read the "readme" file in each one of them and follow the instructions. (The "translators.zip" file replaces what we previously called "software.zip" file).
Do: Project 8 is available. It is due on May 16. If you have questions about this project, they will be answered on the special Friday meeting this week (May 10, at 13:10 in Computer Room #3).
Learn: There is no class on Tuesday. On Friday, May 10, at 13:10 in Computer Room #3, we will give an overview of the Jack programming language. Please mark your calendars.
Do: We assume that you are working full-speed on the VM project. If not, you should.
Read: A Jack specification document is available. You should read this document early this week.
Think: Your next project, which should be handed in on May 16 (only 4 days after you hand in VM II), is to write a simple computer game, using the Jack programming language. Each pair of students can create any game that you want. As a general rule, the games should be similar to those that you can play on your cellular phones (e.g. snake). You should start thinking about which game you want to implement ASAP. More instructions on this project will published soon, so stay tuned.
Project 7 (the Virtual Machine) now includes all 4 stages. If you've started to work on part I of this project, you may want to download only the Project 7-part II materials.
Also, you may want to read Chapter 7-Part II of the book, which deals with the VM handling of objects and arrays. The last part of this chapter, dealing with the calling protocol and its implementation (part 2 of Stage II of project 7), will be ready only in the summer, so don't count on it. Use the spec documents instead.
Because of the midterms week (which, by the way, presents a problem only to the 2nd year students in the course), we are delaying the submission deadline of the VM I project to May 8, and the VM II project to May 12. On May 7 (IDC Graduation Day) there will be no class, so we will schedule a special meeting this week on another day. Please stay tuned and check the site for the VM II project publication and for the self-study activities that will follow.
Good luck in the midterms. Writing some methods for the VM Translator could be a great way to relax between one exam to another.
IMPORTANT: The project7.zip file that contains the test programs (.vm, .tst & .cmp files) for part I of the VM project had a mistake in it. Please download the new version of this file.
MILUIM PROBLEMS: If your partner is on miluim, it is perfectly OK to hook up with another person whose partner is also in miluim. As long as there are two names on the targil, we don't care who they are. If you cannot find a partner, you should submit partial work. The students who are in miluim will get special help or ptorim when they return from miluim.
Learn: On April 23 we will continue to discuss the Virtual Machine architecture and implementation.
Do: The first part of the Virtual Machine Project (#7a) is available and is due on April 28 (for a few hours yesterday some of the links in the project page did not work -- now everything is OK). You should strat working on this project right away, in preparation to our class meeting on April 23.
Read: Chapter 7 (Virtual Machines) has been updated and re-published in the site on April 20. If you read an earlier version of this chapter before, you must read the new version. Sorry about this.
New Submission date: Due to the special nature of the present week, project 6 (hardware) can be submitted no later than Sunday April 21 (instead of April 18).
IMPORTANT: The hardware map given in Chapter 6 had some omissions. Sorry about this. A modified hardware map is available -- you better take a look it before you complete the hardware project.
Lecture: Today we will start discussing the Virtual Machine.
Due dates: The architecture project (#6) is available and is due on April 18. The assembler projects (#5a and #5b) are due on April 11.
Modified assembly spec: Some of you may have noticed that our assembler sets the a-bit of the "comp" field in a way which is inconsistent with the "Hack architecture and assembly spec" document. Indeed, the original spec document contained a bug. To fix the problem, print the 1-page correct version and replace it with page 6 in the original spec. Alternatively, if you haven't done it yet, you can print the entire spec document, which is now correct. Thanks to Ariel Rak for discovering this bug.
New software version: A new version of the software suite is available, containing the Assembler shown in the last lesson. Please download and install now. If you have a previous installation of the software suite, erase it before installing the new version.
Project deadline: The Assembly Programming mini-project and the Assembler project are both due on April 11, 2002 (if you finish earlier, please submit).
New submission guidelines: From now on, the name of the zip file that you submit must be proj-id1-id2.zip, where "proj" is the project name, and "id1" and "id2" are the student ID's, where id1<id2 (i.e. something like SequentialChips-02938473-03173843.zip).
Project grades list: Check out the new grades page.
New simulators version: A new version of the simulators suite is available. Please download and install now. You should extract it to an empty directory on your computer AS IS, without changing the default directories structure.
For the next class meeting, read the Hack platform and assembly language specification. You don't have to understand every detail -- just the general spirit -- and bring a printed copy to class.
Project deadline: The Sequential Chips project is due on March 19, 2002.
A new TDL specification has been published. The Logic Gates project (x points) and the Combinational Chips project (4x points) are both due on March 12, 2002. The numbers in parentheses reflect the relative weights of these projects in the overall course grade.
If one or more students in a pair have an exam next week, you can hand in the projects on March 14, 2002 (write the student name, exam title, and exam date on the email accompanying the project submission).
In preparation to the next lecture on March 5, read chapter 4 of the book.
Although there is no class meeting in the first week of the semester, you must start studying on your own. In the first lecture of this course (on March 5) we will assume that you have already read chapters 1,2,3 of the book.
Chapters 1 and 3 include material which should be familiar from previous CS courses. Chapter 2 is very important.
If you feel adventurous (and *after* reading chapter 2), you can start going through the hardware simulator tutorial (500K download) In particular, go through the first part of the tutorial, up to (and not including) "Clocked Chips".
Welcome aboard! All the materials related to the course are available in this Web site, including the full-text of the course textbook, the homework assignments, and all the necessary software tools. In addition, the site is the official place for posting all the on-going announcements related to taking this course (what to do, and when). If you are a student in this course, you must make yourself a habit to visit this site at least twice a week.
Last Update: 12/08/2002