Systems 2: Software Architecture and Design-From virtual machines to compilers
CS4382.01
Course Description
Summary
Have you ever wondered what a computer is and how it actually works? In this course, we鈥檒l answer the software half of this question. We will start with virtual machines and develop a high-level language, write a compiler, and an operating system. By the end, we will have developed a software hierarchy that makes the hardware we designed in Systems 1: Hardware Architecture and Design (CS 2114) useable. We will begin by developing a virtual machine, an important layer that allows software to operate without considering the specifics of the underlying hardware. Then, we will develop a high-level programming language, designed to be both powerful and user-friendly (reminiscent of Java). And finally we will design and implement a compiler that translates human-readable code into a structured format that the virtual machine understands,. Our exploration of the software hierarchy will culminate in developing an operating system, the ultimate orchestrator of hardware and software resources. Our operating system will manage tasks such as executing programs, memory access, and input/output operations, making the computer you have developed effective for a wide variety of tasks. By the end of the course, you will have a comprehensive understanding of the software stack that powers modern computer systems. You will also gain hands-on experience in developing the components that enable computers to perform complex tasks, from running applications to managing system resources. This course will also equip you with the knowledge and skills to bridge the gap between raw hardware and the high-level applications that we interact with daily, completing your journey from circuits to a fully operational modern computer. Topics include: virtual machines, operating systems, high-level language design, operating systems, assembly language. Evaluation will be based on active engagement, projects, and a comprehensive final examination.Prerequisites
CS 2114, plus experience programming in a modern language.
Please contact the faculty member : darcyotto@bennington.edu