# Computer Language Engineering (SMA 5502)

- Institution: Massachusetts Institute of Technology
- Department: Electrical Engineering and Computer Science
- Taught by: Prof. Martin Rinard, Prof. Saman Amarasinghe
- Term: Fall 2005
- Level: Undergraduate
- Language: English
- Subjects: Computer science, Engineering, Languages and linguistics, Art, architecture and design
- Source: [MIT OpenCourseWare](https://ocw.mit.edu/courses/6-035-computer-language-engineering-sma-5502-fall-2005/)
- Licence: [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/) (Non-commercial use only.)
- Syllabus: [at the source](https://ocw.mit.edu/courses/6-035-computer-language-engineering-sma-5502-fall-2005/pages/syllabus/)
- Readings: [at the source](https://ocw.mit.edu/courses/6-035-computer-language-engineering-sma-5502-fall-2005/pages/readings/)
- Who can watch: Tweens profiles and older (sources give no ratings; placed by Invisible Network from the source's own words)

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.

This course was also taught as part of the Singapore-MIT Alliance (SMA) programme as course number SMA 5502 (Computer Language Engineering).

## Lectures

1. [L1: Course Administration Information and Overview](https://invisiblenetwork.ai/learn/mit/6-035-computer-language-engineering-sma-5502-fall-2005/f67cf6ff13ed), 50 min (Video)
2. [R1: Scanner Parser Project](https://invisiblenetwork.ai/learn/mit/6-035-computer-language-engineering-sma-5502-fall-2005/2e1bb59fbda3), 49 min (Video)
3. [L8: Unoptimized Code Generation](https://invisiblenetwork.ai/learn/mit/6-035-computer-language-engineering-sma-5502-fall-2005/97e2c9b40e2c), 58 min (Video)
4. [L9: Unoptimized Code Generation (cont.)](https://invisiblenetwork.ai/learn/mit/6-035-computer-language-engineering-sma-5502-fall-2005/f3c879e3361a), 56 min (Video)
5. [L14: Instruction Scheduling](https://invisiblenetwork.ai/learn/mit/6-035-computer-language-engineering-sma-5502-fall-2005/d0da160d1efd), 52 min (Video)
6. [L15: Instruction Scheduling (cont.)](https://invisiblenetwork.ai/learn/mit/6-035-computer-language-engineering-sma-5502-fall-2005/d03d9aa1ea60), 50 min (Video)
7. [L16: Register Allocation](https://invisiblenetwork.ai/learn/mit/6-035-computer-language-engineering-sma-5502-fall-2005/ecd7ee46e6fa), 51 min (Video)
8. [L17: Putting it all Together](https://invisiblenetwork.ai/learn/mit/6-035-computer-language-engineering-sma-5502-fall-2005/32bfd43d676c), 40 min (Video)
