Explore advanced programming language concepts, including continuations, types, and polymorphism, with hands-on Scala implementation.
Explore advanced programming language concepts, including continuations, types, and polymorphism, with hands-on Scala implementation.
This advanced course in programming languages delves into sophisticated concepts and their implementations. Building on foundational knowledge, it covers continuations, continuation-passing style, operational semantics, type systems, and polymorphism. Students will implement interpreters using Scala and rigorously discuss concepts using operational semantics. The course aims to enhance students' ability to quickly learn new languages, evaluate language suitability for specific tasks, design domain-specific languages, and understand the impact of language design on thought and communication. Through a combination of theoretical understanding and practical implementation, students will gain a deep insight into the inner workings of programming languages.
Instructors:
English
What you'll learn
Understand and implement continuations and continuation-passing style
Apply small-step and big-step operational semantics to language features
Design and implement type systems for various language constructs
Master type checking and type inference algorithms
Explore parametric and subtype polymorphism in language design
Implement interpreters for advanced language features using Scala
Skills you'll gain
This course includes:
7 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 an in-depth exploration of advanced programming language concepts and their implementations. It is structured into seven modules, each focusing on specific aspects of language design and theory. The curriculum begins with continuations and continuation-passing style, progressing through operational semantics, type systems, type inference, and polymorphism. Students learn to implement these concepts using the Scala programming language, gaining practical experience in interpreter design. The course emphasizes both theoretical understanding through formal semantics and practical application through coding exercises. Key topics include first-class continuations, low-level representations of interpreters, various forms of operational semantics, type rules and checking, type inference algorithms, and different types of polymorphism. Throughout the course, students develop skills in analyzing and implementing complex language features, preparing them for advanced work in language design and compiler construction.
Week 1
Module 1 · 2 Hours to complete
Week 2
Module 2 · 1 Hours to complete
Week 3
Module 3 · 1 Hours to complete
Week 4
Module 4 · 1 Hours to complete
Week 5
Module 5 · 1 Hours to complete
Week 6
Module 6 · 1 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.
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.