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