PEP 638. Немного lisp и php для Питона
Что мы получим, если PEP 638 примут.
На прошлой неделе Марк Шеннон опубликовал черновик очередного предложения по улучшению Питона за номером 638.
Суть предложения сводится к реализации в Питоне поддержки макросов. Макросы, по задумке Шеннона, должны позволять модифицировать абстрактное синтаксическое дерево на этапе компиляции.
Предполагается, что поддержка макросов даст следующие плюсы:
Итак, на этапе перегонки в байткод, кодогенератор, увидев макрос, передаст ассоциированному обработчику абстрактное синтаксическое дерево. Обработчик выдаст в ответ дерево, которым будет замещено первое. Предлагается также поддержка специального синтаксиса для импорта (на этапе компиляции) макросов.
Таким образом, автор надеется привнести в Питон гибкость, в некотором роде похожую на ту, которой характеризуется
А для гигиеничности и упрощения отладки в макросах предлагается придерживаться нескольких правил именования генерируемых переменных, в частности начинать имена со знака доллара
Те из вас, кто видел такой код на Си, в котором «макрос на макросе сидит и макросом погоняет», быть может вздрогнули от описанного.
С одной стороны этот PEP предлагает гибкость. С другой: если он будет принят, лишь здравый смысл будет отделять нас от возможного ада макросов.
Тренируй здравый смысл!
Суть предложения сводится к реализации в Питоне поддержки макросов. Макросы, по задумке Шеннона, должны позволять модифицировать абстрактное синтаксическое дерево на этапе компиляции.
Предполагается, что поддержка макросов даст следующие плюсы:
- Позволит лучше контролировать увеличение сложности Питона (например, снизить потребность в модификации интерпретатора для поддержки новой функциональности);
- Позволит проще создавать прототипы для будущих изменений в языке и обкатывать их;
- Позволит создавать подключаемые расширения, специализированные для работы в какой-то конкретной области (например, для машинного обучения).
Итак, на этапе перегонки в байткод, кодогенератор, увидев макрос, передаст ассоциированному обработчику абстрактное синтаксическое дерево. Обработчик выдаст в ответ дерево, которым будет замещено первое. Предлагается также поддержка специального синтаксиса для импорта (на этапе компиляции) макросов.
Таким образом, автор надеется привнести в Питон гибкость, в некотором роде похожую на ту, которой характеризуется
lisp.А для гигиеничности и упрощения отладки в макросах предлагается придерживаться нескольких правил именования генерируемых переменных, в частности начинать имена со знака доллара
$ (и мне это что-то смутно напоминает).Те из вас, кто видел такой код на Си, в котором «макрос на макросе сидит и макросом погоняет», быть может вздрогнули от описанного.
С одной стороны этот PEP предлагает гибкость. С другой: если он будет принят, лишь здравый смысл будет отделять нас от возможного ада макросов.
Тренируй здравый смысл!
Категории
Область
Интерпретатор
На заметку
Зарегистрированные пользователи могут публиковать свои мнения относительно Книг, Видео, Статей других авторов и прочего в разделе Обсуждений.