Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

CS445: Compiler Design

Spring 2023

About the Course: This course is an introduction to compiler design and construction. In this course you will apply concepts from the theory of computation (CS385) in the design and construction of a compiler. You will learn algorithms and techniques used to build system-level translation tools such as assemblers, macro processors, interpreters, and compilers. You will learn how to implement features of compilers, interpreters, and other software-based translation systems. You will understand the behavior of compilers, and how programming languages may be designed  in response to constraints imposed by the compilation process.

Prerequisites: CS210 and CS385.

Textbook: No textbook is required for this course. The textbook“Compiler Construction and      Practice”, by Kenneth C. Louden ISBN: 0534939724, Cengage Learning, is highly recommended. The course is structured around this textbook. In lieu of this book, any decent compiler book will be helpful.

Course Website: http://www2.cs.uidaho.edu/~mdwilder/cs445

Contact Info:  My email address is [email protected] and my office is in JEB 226.

Office Hours: My office hours are MWF 12:30 – 1:20. This is the best time to meet and discuss matters about the course. If this time doesn’t work for you, just send me an email and we will schedule to meet at another time.

Class Meeting Time: MTWR 2:30 – 3:20 in EP 202.

Support: Computer Science Assistance Center (CSAC): JEB 211D M-F 9:00-4:00.

Assignments and Expectations: This is a hands-on course wherein we apply concepts from the theory of computation to build a compiler. Time management and software engineering skills are crucial in this course. You will be guided in the phase-structured development of a compiler, and  you must complete each phase of the compiler in the time and order presented. Only programs that compile and run will be graded. It is of paramount importance that you submit assignments on time and develop software that meets the specification of each assignment. You will receive detailed specifications and instructions for each assignment. You may develop your assignments on any machine that you want, but the code that you submit for your assignments must compile and run on  the course server. Homeworks are required to adhere to specified input and output formats. Points will be deducted for any superfluous or missing inputs or outputs.

Late Assignments: Assignments are due on or before the date and time specified on the assignment. Late assignments will not be accepted without a Very Good excuse. A Very Good excuse almost always contains a written note from a legal, medical, or university authority detailing specific reasons why you were not able to complete the assignment within the prescribed time.

Exams:  There will be a midterm exam and a comprehensive final exam in the course. The exams will be administered on the following dates:

Midterm Exam: 6 March

Final Exam: 8 May (3PM – 5PM)

Grading:

Assignments (75%)

Exams         (25%)

________________

Total         (100%)

The letter grade you earn in this course will be determined as follows:

A: 100% - 90%

B: 89.9% - 80%

C: 79.9% - 70%

D: 69.9% - 60%

F: 59.9% - 0%

The Course Server: The course server is cs-445.cs.uidaho.edu. All homeworks submitted in this   course must compile and run on the course server. There are no exceptions to this. If you are attempting to access the course server from off campus, you must first connect to the VPN. Details regarding the request of and use of the VPN are available through campus ITS. All of your homeworks are built using the devtoolset-7 toolchain, which includes g++ 7.3.1 that gives you access to most (if not all) of C++17. When building and testing your code on the course server, you should execute the command

scl enable devtoolset-7“bash”

when you first login. This will ensure that you are using the same toolchain that your program will be built and tested with. Be advised that if you execute the scl command within a shell, you will   have to execute the“exit”command twice to close that shell.

Academic Honesty: As a student enrolled at the University of Idaho, you are bound by the UI Student Code of Conduct. Article II, Section A.1 of this code addresses academic dishonesty. This code states“Academic honesty and integrity are core values at a university and the faculty finds that even one incident of academic dishonesty may merit expulsion. Instructors and students are jointly responsible for maintaining academic standards and integrity in university courses. In addition to any disciplinary sanctions imposed under the Code, additional consequences for academic dishonesty may be imposed by the course instructor, including issuing a grade of F in the course. Any grade issued by the course instructor, whether as a result of academic dishonesty or not, constitutes an academic evaluation and is not disciplinary action.”Academic honesty is vital in preserving the integrity of any academic institution. The Student Code of Conduct outlines the expected behavior of all students in all classes at UI. It can be found at                                       http://www.uidaho.edu/student-affairs/dean-of-students/student-conduct/student-code-of-conduct.

Please do your own work in this course unless the instructor specifically directs otherwise. Academic dishonesty will be severely penalized.

University of Idaho Classroom Learning Civility Clause:  In any environment where people   gather to learn, it is essential that all people feel as free and safe as possible in their participation. To this end, it is expected that everyone in this course will be treated with mutual respect and civility, with an understanding that all of us (students, instructors, professors, guests, and teaching assistants) will be respectful and civil to one another in discussion, in action, in teaching, and in learning. Should you feel that our classroom interactions do not reflect an environment of civility and respect, you are encouraged to meet with your instructor during office hours to discuss your concern. Additional resources for expression of concern or requesting support include the Dean of Students office and staff (885-6757), the UI Counseling and Testing Center’s confidential services (885-6716), or the UI Office of Human Rights, Access, and Inclusion (885-4285).

Center for Disability Access and Resources Reasonable Accommodations Statement:

Reasonable accommodations are available for students who have documented temporary or per- manent disabilities. All accommodations must be approved through the Center for Disability Access and Resources located in the Bruce M. Pitman Center, Suite 127 in order to notify your  instructor(s) as soon as possible regarding accommodation(s) needed for the course.

• Phone: (208) 885-6307

• Email: [email protected]

• Website: www.uidaho.edu/current-students/cdar