Языки программирования. Лекция №2. Как разрабатывать
Лекция №2 Как разрабатывать. Личная история от Алексея Евгеньевича Недоря — ведущего специалиста в области языков программирования и компиляторов. Организовано сообществом "Ворчалки о программировании" (https://t.me/vorchalki_o_prog) Вы узнаете: - Исторический контекст: Как создавались «Кронос» (33-разрядный советский компьютер), компиляторы Modula-2 и операционная система Excess в конце 1980-х. - Философия разработки: Почему иногда правильные ограничения и отказ от сложности (семантического анализа, макросов, зависимостей) могут ускорить создание компилятора в разы. - Эволюция языков: От Modula-0 и Modula-2 к Modula-X: какие расширения (динамические массивы, форматный вывод) были критически важны, а от чего стоило отказаться. - Современный подход: Как принципы «минимальной зависимости» и «переноса нагрузки с семантики на синтаксис» привели к созданию нового, простого и эффективного языка, на который была переписана большая система за неделю. - Дискуссия о будущем: Почему современные языки еще далеки от идеала, зачем нужны специализированные операционные системы и как управление памятью связано с безопасностью. 00:00 – Введение. О чём будет лекция. 01:03 – Почему автор не читает книги по созданию языков. 04:09 – Легендарный проект «Кронос»: 33-разрядный компьютер и его ПО. 10:13 – Как за 6 недель написать компилятор Modula-0, убрав семантику. 14:00 – Архитектура ОС Excess: динамическая загрузка модулей на Modula-2. 16:22 – Как распад СССР повлиял на технологическое развитие. 24:50 – Критика Modula-2. Зачем нужны динамические массивы. 31:31 – Проблема форматного вывода и переменного числа аргументов. 34:55 – Почему автор не любит макросы. 40:45 – Боль и сложность разработки на Delphi под Windows. 44:19 – Решение: создать свой простой и быстрый язык с нуля. 50:48 – Упрощённая система типов «в стиле Forth». 53:47 – Оператор «проверка» — ключевой элемент для надёжности. 57:01 – Модульность «как у класса» и сборка программы «из кусков». 01:01:19 – Как устроен табличный компилятор нового языка. 01:07:58 – Главный секрет: минимизация зависимостей для скорости. 01:09:01 – Почему нельзя адаптировать старые инструменты к новым задачам. 01:16:42 – Зачем создавать свои операционные системы, а не использовать готовые. 01:20:20 – Идея: начать с абстрактной виртуальной машины. 01:23:15 – Как писать «правильные» программы и управлять памятью. 01:29:26 – Защита информации через архитектуру языка.
Лекция №2 Как разрабатывать. Личная история от Алексея Евгеньевича Недоря — ведущего специалиста в области языков программирования и компиляторов. Организовано сообществом "Ворчалки о программировании" (https://t.me/vorchalki_o_prog) Вы узнаете: - Исторический контекст: Как создавались «Кронос» (33-разрядный советский компьютер), компиляторы Modula-2 и операционная система Excess в конце 1980-х. - Философия разработки: Почему иногда правильные ограничения и отказ от сложности (семантического анализа, макросов, зависимостей) могут ускорить создание компилятора в разы. - Эволюция языков: От Modula-0 и Modula-2 к Modula-X: какие расширения (динамические массивы, форматный вывод) были критически важны, а от чего стоило отказаться. - Современный подход: Как принципы «минимальной зависимости» и «переноса нагрузки с семантики на синтаксис» привели к созданию нового, простого и эффективного языка, на который была переписана большая система за неделю. - Дискуссия о будущем: Почему современные языки еще далеки от идеала, зачем нужны специализированные операционные системы и как управление памятью связано с безопасностью. 00:00 – Введение. О чём будет лекция. 01:03 – Почему автор не читает книги по созданию языков. 04:09 – Легендарный проект «Кронос»: 33-разрядный компьютер и его ПО. 10:13 – Как за 6 недель написать компилятор Modula-0, убрав семантику. 14:00 – Архитектура ОС Excess: динамическая загрузка модулей на Modula-2. 16:22 – Как распад СССР повлиял на технологическое развитие. 24:50 – Критика Modula-2. Зачем нужны динамические массивы. 31:31 – Проблема форматного вывода и переменного числа аргументов. 34:55 – Почему автор не любит макросы. 40:45 – Боль и сложность разработки на Delphi под Windows. 44:19 – Решение: создать свой простой и быстрый язык с нуля. 50:48 – Упрощённая система типов «в стиле Forth». 53:47 – Оператор «проверка» — ключевой элемент для надёжности. 57:01 – Модульность «как у класса» и сборка программы «из кусков». 01:01:19 – Как устроен табличный компилятор нового языка. 01:07:58 – Главный секрет: минимизация зависимостей для скорости. 01:09:01 – Почему нельзя адаптировать старые инструменты к новым задачам. 01:16:42 – Зачем создавать свои операционные системы, а не использовать готовые. 01:20:20 – Идея: начать с абстрактной виртуальной машины. 01:23:15 – Как писать «правильные» программы и управлять памятью. 01:29:26 – Защита информации через архитектуру языка.
