Welcome to Programming Languages (PL)!

This course introduces you to the fundamental concepts, structure, and design of programming languages. Rather than focusing on a single language, you will explore how different programming languages are constructed, classified, and implemented. Topics include syntax and semantics, language paradigms, grammar specification, parsing techniques, and the compilation process.

Throughout the course, you will analyze and compare programming languages, apply formal methods such as BNF and context-free grammars, and study how programs are translated and executed. You will also be challenged to learn and demonstrate a new programming language, strengthening your adaptability and problem-solving skills. By the end of this course, you will have a deeper understanding of how programming languages work and be better prepared to learn and evaluate new languages throughout your computing career.