
Schedule in Fall 2025: Tue & Thu 12:30pm - 1:45pm
Course description
Comparative Programming Languages (CPL) is the study of programming paradigms as embodied in high-level programming languages. The goal is to understand their principles, strengths, and limitations. The course examines how different paradigms—such as imperative-OO, scripting, functional, and logic—shape the design, understanding, and implementation of software. Through comparative analysis, CPL highlights the trade-offs between expressiveness, efficiency, and reliability, while also exploring the historical and theoretical motivations behind each paradigm, including promting as an abstract form of PL.
The course CPL at UA
Week 1 & 2
⁃ Introduction (slides, video)
⁃ Abstract Machines (slides, video)
Week 3 & 4
⁃ Functional Programming in OCAML (slides, video)
⁃ The NORMA interpreter
⁃ Homework 1
Week 5
⁃ Building functional interpreters (slides, video)
⁃ The interpreters (AlmostPCF, Inter I, Inter II, FullPCF)
Week 6, 7 & 8
⁃ Imperative PL: Syntax and Semantics (slides, video)
⁃ The interpreter TinyC
⁃ The interpreters for parameter passing (ValueC, RefeC, NameC)
⁃ Homework 2
Week 9 & 11 &12
⁃ Mid Term exam
⁃ Imperative PL: Verification and Hoare Logic (slides, video)
⁃ Video of the proof of undecidability of termination
⁃ Frama-C Verification (slides, video)
⁃ Homework 3
Week 13
⁃ Course Project
⁃ Coding by Prompting: Some theory and some experiments (slides)
Week 14 & 15
⁃ Logic languages (slides, video)
⁃ Writing an interpreter in Prolog (Norma.pl)
⁃ Closing (slides, video) & Homework 4
Week 16
⁃ Final exam
Grading Scale and Policies
The grading is based on Homeworks and Exams (mid-term and final) according to this mapping:
● Midterm exam (15%): in person exam with multiple-choice and open-response questions
● Final exam (45%) composed in the following way: 15% In-person exam with multiple-choice and open-response questions on 12/17/2025; 30% Evaluation of a final-year project completed in groups of three to five students
● Homeworks assignments (40%). There will be 4 homework assignments, assigned typically on Tuesdays and due in no more than 2 weeks.
All roundings will be made upward.
The final project will be assigned after the midterm exam. Students, organised in groups of max 5 min 3 students, will have 3 weeks to complete it, and all projects must be submitted before the end of the course.
The final grade is obtained according to the following mapping A: 100-91, B: 90-71, C: 70-51, D: 50-41, E: 40-31, F: 30-0. Without prior arrangement, missed exams and late homework assignments are not graded for credit. In exceptional and documented circumstances extra time can be requested.
