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

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

Внутри CPYTHON: гид по интерпретатору Python
Автор: Шоу Энтони
Дата выхода: 2023
Издательство: Питер
Количество страниц: 352
Размер файла: 2.6 MB
Тип файла: 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.

Похожее:

Список отзывов:

Нет отзывов к книге.