Внутри CPYTHON: гид по интерпретатору Python

Внутри CPYTHON: гид по интерпретатору Python

Внутри CPYTHON: гид по интерпретатору Python

Автор: Энтони Шоу
Дата выхода: 2023
Издательство: Издательский дом «Питер»
Количество страниц: 352
Размер файла: 6,9 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Об авторе 13 

О группе редакторов 13 

Предисловие 14 

Введение 16 

Как использовать эту книгу 17 

Дополнительные материалы и учебные ресурсы 18 

Загрузка исходного кода CPython 21 

Что в исходном коде? 22 

Настройка среды разработки 24 

IDE или редактор? 24 

Настройка Visual Studio 25 

Настройка Visual Studio Code 28 

Настройка Vim 36 

Выводы 40 

Компиляция CPython 41 

Компиляция CPython на macOS 42 

Компиляция CPython на Linux 44 

Установка специализированной версии 46 

Знакомство с Make 46 

Make-цели CPython 48 

Компиляция CPython на Windows 51 

Профильная оптимизация 56 

Выводы 58 

Грамматика и язык Python 59 

Почему CPython написан на C, а не на Python 60 

Спецификация языка Python 62 

Генератор парсеров 66 

Повторное генерирование грамматики 67 

Выводы 71 

Конфигурация и ввод 73 

Конфигурация состояния 75 

Структура данных конфигурации среды выполнения 77 

Конфигурация сборки 79 

Сборка модуля из входных данных 80 

Выводы 85 

Лексический анализ и парсинг с использованием синтаксических деревьев 87 

Генерирование конкретного синтаксического дерева 88 

Парсер/токенизатор CPython 91 

Абстрактные синтаксические деревья 96 

Важные термины 104 

Пример: добавление оператора «почти равно» 104 

Выводы 109 

Компилятор 110 

Исходные файлы 111 

Важные термины 111 

Создание экземпляра компилятора 112 

Флаги будущей функциональности и флаги компилятора 114 

Таблицы символических имен 116 

Основная компиляция 121 

Ассемблер 128 

Создание объекта кода 131 

Использование Instaviz для вывода объекта кода 133 

Пример: реализация оператора «почти равно» 134 

Выводы 139 

Цикл вычисления 140 

Исходные файлы 141 

Важные термины 141 

Построение состояния потока 142 

Построение объектов кадров 143 

Выполнение кадра 150 

Стек значений 153 

Пример: добавление элемента в список 157 

Выводы 161 

Управление памятью 163 

Выделение памяти в C 163 

Проектирование системы управления памятью Python 167 

Аллокаторы памяти CPython 169 

Область выделения объектной памяти и PyMem 178 

Область выделения сырой памяти 181 

Нестандартные области выделения памяти 181 

Санитайзеры выделенной памяти 183 

Арена памяти PyArena 185 

Подсчет ссылок 186 

Сборка мусора 192 

Выводы 201 

Параллелизм и конкурентность 203 

Модели параллелизма и конкурентности 205 

Структура процесса 205 

Многопроцессорный параллелизм 208 

Многопоточность 230 

Асинхронное программирование 242 

Генераторы 243 

Сопрограммы 249 

Асинхронные генераторы 254 

Субинтерпретаторы 255 

Выводы 259 

Объекты и типы 260 

Примеры этой главы 261 

Встроенные типы 262 

Типы объектов 263

Тип type 264 

Типы bool и long 268 

Тип строки Юникода 272 

Словари 282 

Выводы 287 

Стандартная библиотека 288 

Модули Python 288 

Модули Python и C 290 

Набор тестов 293 

Запуск набора тестов в Windows 293 

Запуск набора тестов в Linux или macOS 294 

Флаги тестирования 295 

Запуск конкретных тестов 295 

Модули тестирования 296 

Вспомогательные средства тестирования 297 

Выводы 298 

Отладка 299 

Обработчик сбоев 299 

Компиляция поддержки отладки 300 

LLDB для macOS 301 

GDB 305 

Отладчик Visual Studio 307 

Отладчик CLion 309 

Выводы 314 

Бенчмаркинг, профилирование и трассировка 315 

Использование timeit для микробенчмарка 316 

Использование набора тестов производительности Python 318 

Профилирование кода Python с использованием cProfile 322 

Профилирование кода C с DTrace 325 

Выводы 330 

Что дальше? 331 

Создание расширений C для CPython 331 

Улучшение приложений Python 332 

Участие в проекте CPython 333 

Дальнейшее обучение 336 

Приложение. Введение в C для Python-программистов 338 

Препроцессор C 338 

Базовый синтаксис C 341 

Выводы 348 

Благодарности 349

 CPython, самая популярная реализация Python, абстрагируется от сложностей ОС и предоставляет платформу для создания масштабируемых и высокопроизводительных приложений. Каждому python-разработчику на какой-то стадии необходимо будет узнать, как работает CPython. Это позволит в полной мере использовать его мощь и оптимизировать приложения. Вы разберетесь с основными концепциями внутреннего устройства CPython и научитесь: читать исходный код интерпретатора CPython и свободно ориентироваться в нем; вносить изменения в синтаксис Python и компилировать их в вашу собственную версию CPython; понимать внутреннюю реализацию таких структур, как списки, словари и генераторы; управлять памятью CPython; масштабировать код Python за счет параллелизма и конкурентного выполнения; дополнять базовые типы новой функциональностью; выполнять наборы тестов; профилировать и проводить бенчмарк Python-кода и исполнительной среды; отлаживать код C и Python на профессиональном уровне; изменять или обновлять компоненты библиотеки CPython, чтобы они могли использоваться в будущих версиях.

 

 5 причин купить эту книгу:

  1. Первое исчерпывающее описание внутренних механизмов Python.

  2. Вы сумеете читать исходный код интерпретатора CPython и свободно ориентироваться в нем.

  3. Вооружившись углубленным пониманием CPython, усовершенствуете ваши Python-приложения.

  4. Создадите собственные расширения Python на языке С.

  5. И научитесь управлять памятью в CPython.


Похожее: