Какова математическая модель класса Python?

10

Я понимаю, что классическая модель из лямбда-статей не подходит для Python.

И замыкания не являются математической моделью реализации системы Python.

Так что это за модель?

alinsoar
источник
Если бы я знал модель, я думал, что смогу найти подробную книгу (например, sicp для lisps), которая описала бы процесс построения системы с нуля.
alinsoar
4
Связанный: stackoverflow.com/q/2469824 . Я удалил ваш второй вопрос из основной части вашего поста (Как построить систему Python с нуля), потому что здесь он не подлежит обсуждению. Если вы хотите знать, как разработать настоящий рабочий язык программирования, вам следует изучить такие вещи, как парсеры, лексеры и компиляторы.
Роберт Харви
Спасибо ! Второй вопрос был эквивалентен первому! Если я знаю модель, я могу найти документ, который описывает ее практически, чтобы показать, как собрать ядро ​​системы!
alinsoar
Отличный вопрос !!! :)
Maxood

Ответы:

7

Основное отличие Python от моделей из классических работ по лямбда-исчислению состоит в том, что Python является мультипарадигмальным языком. В большинстве работ, в которых рассматривается лямбда-исчисление, рассматривается чисто функциональный язык без сложностей, связанных с добавлением других парадигм (таких как ООП или логическое программирование).

Исходя из вопроса и ваших комментариев, я понимаю, что вы заинтересованы в основах таких мультипарадигмальных языков. В этом случае я настоятельно рекомендую Питера ван Роя и Сейфа Хариди «Концепции, методы и модели компьютерного программирования» . Книга в основном о языке Моцарта / Оз, который сам по себе является довольно академическим языком. Однако книга очень четко демонстрирует, как начать с очень маленького базового языка и построить поверх него объектно-ориентированное, функциональное и логическое программирование (и все в одном базовом языке).

Что касается фактической математической модели, большинство языков программирования имеют только неформальную или полуформальную спецификацию. Редко вы находите такую, в основе которой лежит собственная теория, такая как лямбда-исчисление. Есть много различных математических моделей, которые были изобретены и более или менее применимы. Интересно то, что существует общее различие между различными подходами к моделированию семантики программирования: семантика может быть описана денотационно, оперативно или алгебраически. Если вы хотите пойти еще глубже, тогда начните читать немного об Объединяющих Теориях Программирования , хотя и с жесткой кривой обучения.

Фрэнк
источник