COM SCI C237A
Prototyping Programming Languages
Computer Science · 4 units · Graduate courses (200-299)
How different programming language paradigms provide dramatically different ways of thinking about computation and offer trade-offs on many dimensions, such as modularity, extensibility, expressiveness, and safety. Concrete exploration of three major programming paradigms—functional, object-oriented, and logic programming—by prototyping implementations of languages in each. Analysis of prototypes to shed light on design and structural properties of each language and paradigm and to allow easy comparison against one another. Hands-on experience implementing new abstractions, both as stand-alone languages and as libraries in existing languages. Concurrently scheduled with course C137A.
Letter grading.
Requisites
Official UCLA wording
Enforced requisite: course 131.
BruinTree reads · Prerequisite
confidence 1.00 · from textRequires
Everything that has to come before this course, not just the courses named in the requisite above.
COM SCI C237A
- COM SCI 131Programming Languages
- COM SCI 33Introduction to Computer Organization
- COM SCI 32Introduction to Computer Science II
- COM SCI 35LSoftware Construction
- COM SCI 31Introduction to Computer Science I
1 direct requisite. The whole upstream is here — 6 courses over 3 levels. Every course here opens its own tree.
Unlocks
What this course is a requisite for, and what those courses lead to in turn.
COM SCI C237A
- COM SCI C237BProgramming Language Design
1 course lists this as a requisite. The whole downstream is here — 1 course over 1 level. Every course here opens its own tree.





