Master programming language fundamentals, from syntax to semantics, and learn to implement interpreters using Scala.
Master programming language fundamentals, from syntax to semantics, and learn to implement interpreters using Scala.
Dive into the world of programming languages with this comprehensive course. Learn to quickly adapt to new languages, evaluate their suitability for specific tasks, and understand when to design domain-specific languages. The course covers fundamental concepts such as syntax, semantics, and interpreters, using Scala for implementation. You'll explore topics ranging from basic language constructs to advanced concepts like lambda calculus, recursive functions, and garbage collection. By the end of the course, you'll have a deep understanding of how programming languages work and the ability to apply these concepts in practical scenarios.
4.6
(12 ratings)
2,574 already enrolled
Instructors:
English
What you'll learn
Understand fundamental concepts of programming language design
Implement interpreters for various language constructs using Scala
Evaluate and compare different programming languages effectively
Master concepts like first-order and first-class functions
Understand lambda calculus and its role in programming languages
Learn about recursive functions and their implementation
Skills you'll gain
This course includes:
10 Hours PreRecorded video
7 assignments
Access on Mobile, Tablet, Desktop
FullTime access
Shareable certificate
Get a Completion Certificate
Share your certificate with prospective employers and your professional network on LinkedIn.
Provided by
Top companies offer this course to their employees
Top companies provide this course to enhance their employees' skills, ensuring they excel in handling complex projects and drive organizational success.
There are 7 modules in this course
This course provides a comprehensive introduction to programming language concepts and their implementation. It covers fundamental aspects such as syntax and semantics, as well as more advanced topics like first-order and first-class functions, lambda calculus, and recursive functions. The course emphasizes practical implementation using the Scala programming language to create interpreters for various language concepts. Students will learn about identifiers, arithmetic expressions, scoping rules, and mutable data structures. The curriculum also includes important topics in language design and implementation such as garbage collection and lazy evaluation. Throughout the course, students will gain skills in evaluating and comparing different programming languages, understanding their underlying structures, and implementing key features.
Programming Languages: Syntax and Semantics
Module 1 · 2 Hours to complete
Programming Languages with Identifiers
Module 2 · 1 Hours to complete
First-Order Functions and First-Class Functions
Module 3 · 2 Hours to complete
Lambda Calculus and Recursive Functions
Module 4 · 2 Hours to complete
Mutable Data Structures and Variables
Module 5 · 2 Hours to complete
Garbage Collection and Lazy Evaluation
Module 6 · 2 Hours to complete
Final Exam
Module 7 · 30 Minutes to complete
Fee Structure
Payment options
Financial Aid
Instructor
Leading Research in Computing and Information Security
Sukyoung Ryu is a Professor and Head of the School of Computing at the Korea Advanced Institute of Science and Technology (KAIST). Her research encompasses programming languages, software engineering, and information security. Ryu has been recognized with research awards from Google and Distinguished Paper Awards from ACM SIGSOFT. Currently, she serves as an associate editor for IEEE Transactions on Software Engineering (TSE) and is a member of ACM SIGPLAN CARES. She holds a B.S., M.S., and Ph.D. in Computer Science, all from KAIST. Prior to her position at KAIST, Ryu worked at Sun Microsystems and Harvard University.
Testimonials
Testimonials and success stories are a testament to the quality of this program and its impact on your career and learning journey. Be the first to help others make an informed decision by sharing your review of the course.
4.6 course rating
12 ratings
Frequently asked questions
Below are some of the most commonly asked questions about this course. We aim to provide clear and concise answers to help you better understand the course content, structure, and any other relevant information. If you have any additional questions or if your question is not listed here, please don't hesitate to reach out to our support team for further assistance.