Я розумію, що класична модель з лямбда-паперів не дійсна для Python.
І закриття не є математичною моделлю впровадження системи Python.
То яка модель?
Я розумію, що класична модель з лямбда-паперів не дійсна для Python.
І закриття не є математичною моделлю впровадження системи Python.
То яка модель?
Відповіді:
Основна відмінність Python від моделей від класичних статей з обчислення лямбда полягає в тому, що Python є мовою багатопарадигми. Більшість робіт, які розглядають лямбда-числення, вважають чистою функціональною мовою, без складностей, пов'язаних із додаванням інших парадигм (наприклад, OOP або логічне програмування).
З питання та ваших коментарів я вважаю, що вас цікавлять основи такої багатопарадигмічної мови. У цьому випадку я можу настійно запропонувати концепції, методики та моделі комп’ютерного програмування Пітера ван Роя та Сейфа Хариді . Книга в основному стосується мови Моцарта / Оза, яка сама по собі є досить академічною мовою. Однак книга дуже наочно демонструє, як почати з дуже невеликої основної мови та побудувати на ній об'єктно-орієнтаційне, функціональне та логічне програмування (і все це в межах однієї основної мови).
Що стосується фактичної математичної моделі, то більшість мов програмування мають лише неофіційну або напівформальну специфікацію. Рідко ви знайдете таку, яка має таку правильну теорію, як обчислення лямбда. Існує маса різних математичних моделей, які були винайдені і більш-менш застосовні. Цікавим є те, що існує загальна відмінність різних підходів до моделювання семантики програмування: семантика може бути описана денотаційно, оперативно чи алгебраїчно. Якщо ви хочете піти ще глибше, то читати трохи про Об’єднаючі теорії програмування - це початок, хоч і важкий із крутою кривою навчання.