IMG_5657 - Version 2

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.