Skip to content

csklub/course-compiler-construction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 

Repository files navigation

Course: Compiler Construction

Our first attempt at auditing select Computer Science courses.

ℹ️ You can suggest what we should do next here

Motivation

Even if you are not a CS major, this will make you a better software engineer -- by understanding the things that make your code talk to the machine.

Primary Course

Meeting Schedule

  • Saturdays 7 - 8 AM EAT, if missed, Sundays 7 - 8 PM EAT.
  • Starts: Jan 14, 2023
  • Ends: April 29, 2023
  • Meeting Link: shared on the mailing-list
  • Invite Only for now.

Course Schedule

  • This is self-paced, but our general agreed pace (for the slowest) should be 2 weeks to cover 1 week of the Coursera course. So we will take 14 weeks for the 7 c/weeks.

compilers-session image

Communication

  • MAIN: For posterity, let's use the mailing-list - compilers-cs-ke@googlegroups.com (alias: compilers@cs.ke)
  • See all the past communications here - https://groups.google.com/g/compilers-cs-ke
  • For quick chats, we can use the Slack Channel, #course-compiler-construction

Course Structure

  • Module 0: Machine Lanaguage - Key concepts: op codes, mnemonics, binary machine language, symbolic machine language, assembly, low-level arithmetic, logical, addressing, branching, and I/O commands, CPU emulation, low-level programming.
  • Module 1: Virtual Machine, Part I - Key concepts: two-tier compilation (overview), virtualization, virtual machines, VM abstraction, stack processing, pointers, VM implementation, VM translators.
  • Module 2: Virtual Machine, Part II - Key concepts: branching, functions, function call-and-return, dynamic memory management, stack processing, pointers, standard mapping, VM implementation.
  • Module 3: High-Level Language - Key concepts: procedural programming, object-based programming, classes, methods, functions, constructors, list processing, recursion, developing interactive applications, graphics optimization.
  • Module 4: Compiler I (Syntax Analysis) - Key concepts: tokenizing, grammars, parsing, parse trees, XML / mark-up, compilation.
  • Module 5: Compiler II (Code Generation) - Key concepts: compiling procedural code, compiling the construction and manipulation of arrays and objects, code generation techniques, recursive compilation engine, symbol tables, memory management.
  • Module 6: Operating System - Key concepts: running-time analysis, resource allocation, heap management, input handling, vector graphics, fonts, textual outputs, type conversions, string processing, booting, OS implementation issues.

Recordings

  • Will be shared privately on our mailing-list.
  • Will adhere to our privacy terms.

Reference Material / Further Reading

Tools, etc.

Limited Registration

This first pilot program is invite-only for now. However, if you really reaaally want to join, fill in the form here - https://forms.gle/da7fKkjv6fRwW1oS8

📨 For any enquiries, you can reach us on compilers@cs.ke

Releases

No releases published

Packages

No packages published