Найважливішими математичними формалізаціями, розглянутими в даному курсі, є ламбда-числення і комбінаторна логіка.
Ще в 1924 р. М. Шейнфінкель (Moses Schonfinkel) розробив просту (simple) теорію функцій, яка фактично була обчисленням об'єктів-функцій і передбачила появу ламбда-числення - математичної формалізації, що підтримує мови функціонального програмування (тобто програмування в термінах функцій ).
Розглянемо особливості об'єктно-орієнтованого підходу до програмування в порівнянні з функціональним підходом. Нагадаємо, що класифікація підходів до програмування була побудована нами у вступній лекції.
Платформа. NET Framework надає середовище для підтримки створення та виконання інтероперабельних гетерогенних додатків. Основними особливостями даної платформи є не залежить від мови середовище виконання (Common Language Runtime, CLR) і бібліотека класів. NET
Уявімо побудову денотаціонної семантики найважливіших конструкцій мови програмування C #.
Нагадаємо, що історія розвитку теорії та практики семантичного аналізу мов програмування були розглянуті у вступній лекції.
Викладемо апарат об'єктно-орієнтованого підходу до програмування.
Перш ніж будуть викладені математично строгі визначення (у тому числі в термінах теорії дескрипцій), спробуємо сформувати попереднє уявлення про основні сутності даного підходу.
Поняття класу є фундаментальним в ООП і служить основою для створення об'єктів. В описі класу визначаються дані (тобто змінні) і код (тобто методи), який маніпулює цими даними. Об'єкти є екземплярами класу.
Обговоримо основи дисципліни типів у рамках. NET. Нагадаємо, що історія розвитку математичної формалізації для типових теорій викладена у вступній лекції, а основа теорії типів - у лекції 6.