Яка математична модель класу Пітона?


10

Я розумію, що класична модель з лямбда-паперів не дійсна для Python.

І закриття не є математичною моделлю впровадження системи Python.

То яка модель?


Якщо я знаю модель, я подумав, що можу знайти докладну книгу (наприклад, sicp for lisps), яка б описувала процес побудови системи з нуля.
alinsoar

4
Пов'язане: stackoverflow.com/q/2469824 . Я видалив ваше друге запитання з основної частини вашої публікації (Як побудувати систему Python з нуля), тому що це тут невиправдано. Якщо ви хочете знати, як розробити фактичну робочу мову програмування, вам слід розглянути такі речі, як парсери, лексери та компілятори.
Роберт Харві

Дякую ! Друге питання було рівнозначним першому! Якщо я знаю модель, я можу знайти документа, який описує її практично, так що показує, як побудувати ядро ​​системи!
alinsoar

Чудове запитання !!! :)
Maxood

Відповіді:


7

Основна відмінність Python від моделей від класичних статей з обчислення лямбда полягає в тому, що Python є мовою багатопарадигми. Більшість робіт, які розглядають лямбда-числення, вважають чистою функціональною мовою, без складностей, пов'язаних із додаванням інших парадигм (наприклад, OOP або логічне програмування).

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

Що стосується фактичної математичної моделі, то більшість мов програмування мають лише неофіційну або напівформальну специфікацію. Рідко ви знайдете таку, яка має таку правильну теорію, як обчислення лямбда. Існує маса різних математичних моделей, які були винайдені і більш-менш застосовні. Цікавим є те, що існує загальна відмінність різних підходів до моделювання семантики програмування: семантика може бути описана денотаційно, оперативно чи алгебраїчно. Якщо ви хочете піти ще глибше, то читати трохи про Об’єднаючі теорії програмування - це початок, хоч і важкий із крутою кривою навчання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.