Computer language engineering

Bachelor's degree

In Maynard (USA)

Price on request

Description

  • Type

    Bachelor's degree

  • Location

    Maynard (USA)

  • Start date

    Different dates available

6.035 is a course within the department's "Computer Systems and Architecture" concentration. This course analyzes issues associated with the implementation of high-level programming languages. Topics covered include: fundamental concepts, functions, and structures of compilers, basic program optimization techniques, the interaction of theory and practice, and using tools in building software. The course features a multi-person project on design and implementation of a compiler that is written in Java® and generates MIPS executable machine code. This course is worth 8 Engineering Design Points.

Facilities

Location

Start date

Maynard (USA)
See map
02139

Start date

Different dates availableEnrolment now open

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Subjects

  • Programming
  • Engineering
  • Project
  • Design
  • Java

Course programme

Lectures: Four sessions / week, 1 hour / session


Recitations: One session / week, 1 hour / session


MIT course 6.170 and proficiency in Java®


The lectures, problem sets and exams of 6.035 are structured around the compiler project, which is divided into five segments. Each segment addresses a separate aspect of compiler construction. Each segment (except the first) consists of a series of lectures, a programming assignment and a problem set or an in-class quiz.


At the beginning of a segment, the programming assignment will be given. Next, a series of lectures will introduce the material. The remaining time of the segment will be devoted to the project, thus no classes will be held. Each group should schedule a weekly "project review" meeting with your TA to discuss the design decisions, project progress and group status. A segment comes to an end on the due date of the project assignment. The calendar outlines the schedule and Handout 4 "Project Overview" expands on the project details. In addition to the projects, there will be three in-class quizzes and four paper assignments, which will include a one-on-one paper discussion with a staff member.


The main course work of 6.035 is the design and implementation of a compiler. In each segment of the course, a part of the compiler will be constructed. The five segments are the scanner and parser, semantic checker, code generator, data-flow optimizer, and instruction optimizer. All the five assignments are group projects.


As in previous years, we are offering two versions of this compiler project, an 18-unit version and a 12-unit version. All members of a project group should register for the same number of units. All students should register for 6.035 (12 units). Those wishing to do the more ambitious project should also register for 6.907 (6 units) by Add Date. A professor's signature is not required on an Add form for 6.907. The grade for the six extra units will be based solely on the project.


The 12-unit version of the project is for the health-conscious: You will be served Decaf to get a hands-on experience of building a simple yet complete compiler. In the 18-unit version of the project, you will be served a strong, steaming Espresso to enable you to also experience some of the real world problems that arise in building industrial-strength compilers.


We offer the more difficult project and the six extra units to provide interested students with an opportunity to gain a deeper understanding of the issues involved in building a compiler. This should be seen as the reason for undertaking the 18-unit version of the course, not simply to get extra six units.


The due dates will be the same for both versions of the project.


Each group needs to schedule a weekly meeting with the TA to discuss the project status. This is a critical meeting where the students have a chance to clarify the implementation details of the project. Student participation will provide the TA's feedback on the competency and contribution of each student.


The TA will set his own office hours and will spend those hours each week in his office. This will provide additional "face time" with the TA. These hours will be announced later. If you wish to see the TA at some other time, call or send e-mail to arrange a meeting.


The overall grade for the class will be assigned using the following weights:


Make sure you understand how your final grade will be calculated. Additional details about how the project grade is calculated are available in the projects section.


One of the new features of 6.035 this year is that we will be expecting you to read papers we hand out, then come and discuss the paper one-on-one with one of the professors or TAs. This section will describe what we are expecting to accomplish with this new feature and what we are expecting from you when you read the paper and discuss it with us.


Finally, write a 150 to 200 word summary of the paper to prepare for the one-on-one meeting.


Incompletes are only given in unusual circumstances, and only when work has been completed satisfactorily up to the point when the incomplete was requested. Quoted from the MIT Course Catalog: "The grade of I is to be used only for subjects for which a minor portion of the work required has not been completed, and when a passing grade is expected when completed."


The "Department Guidelines Relating to Academic Honesty" require that we inform you of our expectations regarding academic conduct. For homework assignments and the first project assignment, you are permitted to discuss the problem requirements and background material with anyone. However, the actual solutions you hand in should be your own individual work. For rest of the project assignments, you may discuss background material, problem requirements, approaches to problems, and design with anyone, but you may not view any code written for 6.035 by anyone, including past students. The actual coding should be the work of your group only. All exams are to be done individually. In the past, many academic misconduct cases have come about because of poor judgment on the part of students who find themselves in the position of starting an assignment late or feel that they are incapable of completing an assignment. Please bear in mind that the long-term consequences of an academic misconduct case will do much more damage to your career than the worst possible grade you can get in 6.035. Please think through the issues now so that don't lose perspective if you find yourself temporarily tired, stressed, desperate, and tempted to violate the policy on collaborative work during the semester. Dealing with academic misconduct cases requires an enormous amount of nonproductive effort for the course staff. We will not be happy if we have to deal with one of these cases this semester, and we will prosecute to the fullest extent provided for by the University relations.


Don't show me this again


This is one of over 2,200 courses on OCW. Find materials for this course in the pages linked along the left.


MIT OpenCourseWare is a free & open publication of material from thousands of MIT courses, covering the entire MIT curriculum.


No enrollment or registration. Freely browse and use OCW materials at your own pace. There's no signup, and no start or end dates.


Knowledge is your reward. Use OCW to guide your own life-long learning, or to teach others. We don't offer credit or certification for using OCW.


Made for sharing. Download files for later. Send to friends and colleagues. Modify, remix, and reuse (just remember to cite OCW as the source.)


Learn more at Get Started with MIT OpenCourseWare


Computer language engineering

Price on request