Написание компилятора C в 500 строк Python
Несколько месяцев назад мне захотелось написать компилятор C на 500 строк Python. Сложно ли это? О да, даже если отказаться от многих функций. Но, в то же время, это ужасно интересно, а результат оказался на удивление функциональным и несложным для понимания!
Кода получилось слишком много, чтобы разобрать его полностью в одной статье, поэтому тут будет просто обзор решений, принятых в ходе работы, фрагментов, которые пришлось вырезать, и общей архитектуры компилятора. Это должно сделать код более доступным.
Решения, решения
Первым и наиболее важным решением стало то, что компилятор будет однопроходным. 500 строк — слишком мало для определения и преобразования абстрактного синтаксического дерева! Что это значит?
https://habr.com/ru/companies/cloud4y/articles/760400/
👉@BookPython
Несколько месяцев назад мне захотелось написать компилятор C на 500 строк Python. Сложно ли это? О да, даже если отказаться от многих функций. Но, в то же время, это ужасно интересно, а результат оказался на удивление функциональным и несложным для понимания!
Кода получилось слишком много, чтобы разобрать его полностью в одной статье, поэтому тут будет просто обзор решений, принятых в ходе работы, фрагментов, которые пришлось вырезать, и общей архитектуры компилятора. Это должно сделать код более доступным.
Решения, решения
Первым и наиболее важным решением стало то, что компилятор будет однопроходным. 500 строк — слишком мало для определения и преобразования абстрактного синтаксического дерева! Что это значит?
https://habr.com/ru/companies/cloud4y/articles/760400/
👉@BookPython
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Мини-курс Django
Приветствие
Часть 1: Установка и старт проекта
Часть 2: Создание и управление User
Часть 3: Проект и приложения
Часть 4: Models Модели
Часть 5: Model Relations
Часть 6: HTML rendering View
Часть 7: API View на Django REST Framework
Часть 8: Фронтенд клиент на vue.js
источник
👉@BookPython
Приветствие
Часть 1: Установка и старт проекта
Часть 2: Создание и управление User
Часть 3: Проект и приложения
Часть 4: Models Модели
Часть 5: Model Relations
Часть 6: HTML rendering View
Часть 7: API View на Django REST Framework
Часть 8: Фронтенд клиент на vue.js
источник
👉@BookPython