Python для профи. Интерпретаторы, эмуляторы, графика и машинное обучение /Дэвид Копек/(2026)

Благодаря семи проектам на Python, представленным в этой книге, вы сможете получить представление о некоторых фундаментальных принципах в области информатики. В каждой главе автор пошагово описывает завершенный проект раскрывающий один из конкретных аспектов программирования, не прибегая к сложной математике и запутанному коду.
Издание адресовано программистам на языке Python среднего и продвинутого уровней, желающим закрепить знания и заполнить возможные пробелы в образовании.
Оглавление:
От издательства..................................................................................................... 10
Благодарности....................................................................................................... 12
Введение............................................................................................................... 14
Часть I ИНТЕРПРЕТАТОРЫ....................................................................................... 19
Глава 1. Минимально возможный язык программирования........................................ 20
Что такое Brainfuck?............................................................................................... 20
Что определяет полноту языка по Тьюрингу?............................................................ 21
Как работает Brainfuck............................................................................................ 22
Структура интерпретатора....................................................................................... 27
Реализация Brainfuck на Python................................................................................ 28
Получение исходного файла.................................................................................... 29
Создание интерпретатора........................................................................................ 29
Запуск интерпретатора............................................................................................ 33
Тестирование интерпретатора.................................................................................. 34
Практические приложения....................................................................................... 37
Упражнения............................................................................................................ 38
Глава 2. Создание интерпретатора языка BASIC......................................................... 39
Основы NanoBASIC.................................................................................................. 40
История BASIC........................................................................................................ 40
Парадигма, синтаксис и семантика NanoBASIC........................................................... 41
Операторы GOTO, GOSUB и RETURN.......................................................................... 45
Стиль и особенности NanoBASIC............................................................................... 46
Пример программы NanoBASIC.................................................................................. 47
Формализация синтаксиса NanoBASIC....................................................................... 48
Реализация NanoBASIC............................................................................................. 53
Токенизатор............................................................................................................ 54
Узлы....................................................................................................................... 58
Ошибки................................................................................................................... 61
Парсер.................................................................................................................... 63
Среда выполнения................................................................................................... 72
Запуск программы.................................................................................................... 77
Тестирование NanoBASIC.......................................................................................... 77
Практические приложения........................................................................................ 82
Упражнения............................................................................................................. 83
Часть II ИСКУССТВО И ВЫЧИСЛЕНИЯ......................................................................... 84
Глава 3. Ретрообработка изображений....................................................................... 85
Что такое дизеринг?................................................................................................. 85
Начало работы......................................................................................................... 88
Алгоритм дизеринга.................................................................................................. 90
Файловый формат MacPaint........................................................................................ 95
Преобразование байтов в биты.................................................................................. 96
Реализация кодирования по длине последовательности............................................... 98
Тестирование кодирования по длине последовательности............................................103
Преобразование в MacBinary......................................................................................104
Сведение всего воедино............................................................................................108
Результаты................................................................................................................109
Практические приложения..........................................................................................112
Упражнения...............................................................................................................113
Глава 4. Стохастический алгоритм живописи................................................................114
Как это работает........................................................................................................114
Опции командной строки.............................................................................................120
Формат SVG................................................................................................................121
Алгоритм ...................................................................................................................124
Основная реализация..................................................................................................125
Настройка...................................................................................................................125
Вспомогательные методы.............................................................................................128
Пробы........................................................................................................................129
Вывод изображения.....................................................................................................132
Результаты.................................................................................................................134
Практические приложения...........................................................................................138
Упражнения................................................................................................................139
Часть III ЭМУЛЯТОРЫ...................................................................................................141
Глава 5. Создание виртуальной машины CHIP-8.............................................................142
Виртуальные машины...................................................................................................142
Виртуальная машина CHIP-8.........................................................................................144
Регистры и память........................................................................................................145
Инструкции..................................................................................................................146
Реализация..................................................................................................................150
Цикл выполнения..........................................................................................................151
Аргументы командной строки.........................................................................................154
Настройка VM и вспомогательные функции......................................................................154
Графика........................................................................................................................157
Выполнение инструкций.................................................................................................160
Тестирование VM...........................................................................................................166
Запуск игр....................................................................................................................167
Практические приложения.............................................................................................169
Упражнения..................................................................................................................170
Глава 6. Эмуляция игровой консоли NES.........................................................................172
О платформе NES..........................................................................................................173
Аппаратная платформа..................................................................................................174
Программное обеспечение.............................................................................................176
Создание эмулятора.......................................................................................................177
Планирование структуры...............................................................................................177
Создание главного цикла...............................................................................................178
Эмуляция картриджа.....................................................................................................181
Эмуляция центрального процессора...............................................................................185
Принципы работы PPU...................................................................................................212
Реализация PPU.............................................................................................................222
Тестирование эмулятора................................................................................................233
Игровой процесс...........................................................................................................236
Практические приложения.............................................................................................240
Упражнения..................................................................................................................241
Часть IV ОЧЕНЬ ПРОСТОЕ МАШИННОЕ ОБУЧЕНИЕ............................................................242
Глава 7. Классификация с помощью k-ближайших соседей...............................................243
Становление машинного обучения..................................................................................243
Как работает KNN..........................................................................................................245
Реализация классификации с помощью KNN....................................................................247
Классификация рыб.......................................................................................................250
Классификация рукописных цифр...................................................................................254
Практические приложения..............................................................................................258
Упражнения...................................................................................................................259
Глава 8. Регрессия с помощью k ближайших соседей........................................................260
Как работает регрессия KNN...........................................................................................260
Реализация регрессии с помощью KNN.............................................................................262
Прогнозирование веса рыб.............................................................................................263
Прогнозирование недостающей части рукописной цифры.................................................264
Практические приложения.............................................................................................268
Упражнения..................................................................................................................269
Послесловие.................................................................................................................270
Что мы сделали и что будет дальше................................................................................270
Об изучении компьютерных технологий..........................................................................271
Интерпретаторы............................................................................................................273
Компьютерное изобразительное искусство.......................................................................273
Эмуляторы.....................................................................................................................274
Машинное обучение.......................................................................................................274
Приложение. Побитовые операции..................................................................................276
Обзор двоичной системы счисления................................................................................276
Распространенные побитовые операции..........................................................................278
Сдвиг влево ()........................................................................................................279
ИЛИ (|).........................................................................................................................280
И (&)............................................................................................................................281
XOR (^)........................................................................................................................282
Дополнение (~).............................................................................................................283
Предметный указатель...................................................................................................284
Благодарности....................................................................................................... 12
Введение............................................................................................................... 14
Часть I ИНТЕРПРЕТАТОРЫ....................................................................................... 19
Глава 1. Минимально возможный язык программирования........................................ 20
Что такое Brainfuck?............................................................................................... 20
Что определяет полноту языка по Тьюрингу?............................................................ 21
Как работает Brainfuck............................................................................................ 22
Структура интерпретатора....................................................................................... 27
Реализация Brainfuck на Python................................................................................ 28
Получение исходного файла.................................................................................... 29
Создание интерпретатора........................................................................................ 29
Запуск интерпретатора............................................................................................ 33
Тестирование интерпретатора.................................................................................. 34
Практические приложения....................................................................................... 37
Упражнения............................................................................................................ 38
Глава 2. Создание интерпретатора языка BASIC......................................................... 39
Основы NanoBASIC.................................................................................................. 40
История BASIC........................................................................................................ 40
Парадигма, синтаксис и семантика NanoBASIC........................................................... 41
Операторы GOTO, GOSUB и RETURN.......................................................................... 45
Стиль и особенности NanoBASIC............................................................................... 46
Пример программы NanoBASIC.................................................................................. 47
Формализация синтаксиса NanoBASIC....................................................................... 48
Реализация NanoBASIC............................................................................................. 53
Токенизатор............................................................................................................ 54
Узлы....................................................................................................................... 58
Ошибки................................................................................................................... 61
Парсер.................................................................................................................... 63
Среда выполнения................................................................................................... 72
Запуск программы.................................................................................................... 77
Тестирование NanoBASIC.......................................................................................... 77
Практические приложения........................................................................................ 82
Упражнения............................................................................................................. 83
Часть II ИСКУССТВО И ВЫЧИСЛЕНИЯ......................................................................... 84
Глава 3. Ретрообработка изображений....................................................................... 85
Что такое дизеринг?................................................................................................. 85
Начало работы......................................................................................................... 88
Алгоритм дизеринга.................................................................................................. 90
Файловый формат MacPaint........................................................................................ 95
Преобразование байтов в биты.................................................................................. 96
Реализация кодирования по длине последовательности............................................... 98
Тестирование кодирования по длине последовательности............................................103
Преобразование в MacBinary......................................................................................104
Сведение всего воедино............................................................................................108
Результаты................................................................................................................109
Практические приложения..........................................................................................112
Упражнения...............................................................................................................113
Глава 4. Стохастический алгоритм живописи................................................................114
Как это работает........................................................................................................114
Опции командной строки.............................................................................................120
Формат SVG................................................................................................................121
Алгоритм ...................................................................................................................124
Основная реализация..................................................................................................125
Настройка...................................................................................................................125
Вспомогательные методы.............................................................................................128
Пробы........................................................................................................................129
Вывод изображения.....................................................................................................132
Результаты.................................................................................................................134
Практические приложения...........................................................................................138
Упражнения................................................................................................................139
Часть III ЭМУЛЯТОРЫ...................................................................................................141
Глава 5. Создание виртуальной машины CHIP-8.............................................................142
Виртуальные машины...................................................................................................142
Виртуальная машина CHIP-8.........................................................................................144
Регистры и память........................................................................................................145
Инструкции..................................................................................................................146
Реализация..................................................................................................................150
Цикл выполнения..........................................................................................................151
Аргументы командной строки.........................................................................................154
Настройка VM и вспомогательные функции......................................................................154
Графика........................................................................................................................157
Выполнение инструкций.................................................................................................160
Тестирование VM...........................................................................................................166
Запуск игр....................................................................................................................167
Практические приложения.............................................................................................169
Упражнения..................................................................................................................170
Глава 6. Эмуляция игровой консоли NES.........................................................................172
О платформе NES..........................................................................................................173
Аппаратная платформа..................................................................................................174
Программное обеспечение.............................................................................................176
Создание эмулятора.......................................................................................................177
Планирование структуры...............................................................................................177
Создание главного цикла...............................................................................................178
Эмуляция картриджа.....................................................................................................181
Эмуляция центрального процессора...............................................................................185
Принципы работы PPU...................................................................................................212
Реализация PPU.............................................................................................................222
Тестирование эмулятора................................................................................................233
Игровой процесс...........................................................................................................236
Практические приложения.............................................................................................240
Упражнения..................................................................................................................241
Часть IV ОЧЕНЬ ПРОСТОЕ МАШИННОЕ ОБУЧЕНИЕ............................................................242
Глава 7. Классификация с помощью k-ближайших соседей...............................................243
Становление машинного обучения..................................................................................243
Как работает KNN..........................................................................................................245
Реализация классификации с помощью KNN....................................................................247
Классификация рыб.......................................................................................................250
Классификация рукописных цифр...................................................................................254
Практические приложения..............................................................................................258
Упражнения...................................................................................................................259
Глава 8. Регрессия с помощью k ближайших соседей........................................................260
Как работает регрессия KNN...........................................................................................260
Реализация регрессии с помощью KNN.............................................................................262
Прогнозирование веса рыб.............................................................................................263
Прогнозирование недостающей части рукописной цифры.................................................264
Практические приложения.............................................................................................268
Упражнения..................................................................................................................269
Послесловие.................................................................................................................270
Что мы сделали и что будет дальше................................................................................270
Об изучении компьютерных технологий..........................................................................271
Интерпретаторы............................................................................................................273
Компьютерное изобразительное искусство.......................................................................273
Эмуляторы.....................................................................................................................274
Машинное обучение.......................................................................................................274
Приложение. Побитовые операции..................................................................................276
Обзор двоичной системы счисления................................................................................276
Распространенные побитовые операции..........................................................................278
Сдвиг влево ()........................................................................................................279
ИЛИ (|).........................................................................................................................280
И (&)............................................................................................................................281
XOR (^)........................................................................................................................282
Дополнение (~).............................................................................................................283
Предметный указатель...................................................................................................284
Автор: Дэвид Копек
Перевод: В.И. Бахура
Издательство: Books.kz
ISBN: 978-6-01140-652-9
Жанр: Компьютерная литература, Python
Формат: PDF
Качество: Изначально электронное (ebook)
Иллюстрации: Цветные и черно-белые
Размер: 20.5 MB
Внимание! У Вас нет прав для просмотра скрытого текста.

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.