Sign Up Sign in
📌 Очень жаль, что всем известный персонаж решил начать войну. Мы молимся за Украину и за мир!
Дмитрий Сошников

Дмитрий Сошников

Дмитрий Сошников - инженер-программист, читает лекции по различным темам информатики. Он увлечен образованием и уделяет особое внимание высококачественному образовательному контенту: кратким и понятным анимированным лекциям с заметками в реальном времени.
58 0

Категории

Все
JavaScript

JavaScript

Другое

Другое

Другое (System Programming)

Другое (System Programming)

Курсы

Язык программирования с LLVM

Язык программирования с LLVM

Programming Language with LLVM
Как работают языки программирования под капотом? В чем разница между компилятором и интерпретатором? Что такое виртуальная машина и JIT-компилятор? А в чем разница между функциональным и императивным программированием?Есть много вопросов, когда речь идет о реализации языка программирования!Проблема с "курсами по компиляторам" в школе заключается в том, что такие курсы обычно представлены как "тяжелая ракетная наука", которая п
Премиум
Теория автоматов: внутри машины регулярных выражений

Теория автоматов: внутри машины регулярных выражений

Automata Theory: inside a RegExp machine
Машины состояний - фундаментальное понятие, используемое сегодня во многих практических приложениях, начиная от программирования пользовательского интерфейса, такого как React, автоматизированных систем ответов, лексического анализа в парсерах и теории формальных языков, например, машина регулярных выражений, и заканчивая жизненными случаями, такими как обычные светофоры, торговые автоматы и другие.Машины состояний основаны на более крупной теоре
Премиум
Typechecker (типизатор) с нуля

Typechecker (типизатор) с нуля

Building a Typechecker from scratch
Нетипизированные программы часто подвержены ошибкам, исключениям времени выполнения и могут затруднить процесс отладки. Именно поэтому многие языки программирования в производственной среде реализуют статический типизатор - дополнительный модуль, цель которого - повысить безопасность программ и упростить разработку.Проверка типов или вывод типов? Что такое теория типов и типовые суждения? Слабо или сильно типизированный мой язык? И как мне на сам
Премиум
Создание Виртуальной Машины для Языка Программирования

Создание Виртуальной Машины для Языка Программирования

Building a Virtual Machine for Programming Language
Как языки программирования работают под капотом? В чем разница между компилятором и интерпретатором? Что такое виртуальная машина и JIT-компилятор? А как насчет разницы между функциональным и императивным программированием? Когда дело доходит до реализации языка программирования, возникает так много вопросов! Проблема с «классами компиляторов» в школе заключается в том, что такие классы обычно представляются как некая «ракетостр
Удален по просьбе правообладателя
Создание Парсера с Нуля

Создание Парсера с Нуля

Building a Parser from scratch
Разбор или синтаксический анализ - один из первых этапов проектирования и реализации компилятора. Хорошо продуманный синтаксис вашего языка программирования - это большая мотивация, по которой пользователи предпочтут и выберут именно ваш язык. Примечание: это практическое занятие по созданию парсера с рекурсивным спуском вручную.
Удален по просьбе правообладателя
Алгоритмы Синтаксического Анализа

Алгоритмы Синтаксического Анализа

Parsing Algorithms
Парсинг или синтаксический анализ - один из первых этапов проектирования и реализации компилятора. Хорошо продуманный синтаксис вашего языка программирования - большая мотивация, по которой пользователи предпочтут и выберут именно ваш язык.
Удален по просьбе правообладателя
Основы интерпретации

Основы интерпретации

Building an Interpreter from scratch
Семантика языков программирования. Как языки программирования работают под капотом? В чем разница между компилятором и интерпретатором? Что такое виртуальная машина и JIT-компилятор? А как насчет разницы между функциональным и императивным программированием?
Удален по просьбе правообладателя
Основы сборщиков мусора

Основы сборщиков мусора

Garbage Collection Algorithms
Утечки памяти и висячие указатели являются основными проблемами ручного управления памятью. Вы удаляете родительский узел в связанном списке, забывая сначала удалить все его дочерние узлы - и ваша память просачивается. Вы удаляете цепочку объектов в правильном порядке - но вдруг ваша программа падает, так как вы забыли о втором владельце этого ресурса, который теперь пытается разыменовать нулевой указатель.
Удален по просьбе правообладателя