Нед Батчелдер: Реализация микр... Заметка
Planet Python на русском

Нед Батчелдер: Реализация микроязыка: Кальций

Я написал крошечную реализацию языка: Calcium. Он предназначен для демонстрации того, как реализуются языки вроде Python. Он содержит токенизатор, парсер, AST, компилятор, байт-коды и исполнительный движок, все примерно в 300 строках кода. Я сделал это, потому что часто вижу вопрос: разве Python не интерпретируемый? Почему говорят, что он компилируемый? (Кстати, я также ответил на это в предыдущем посте в блоге: Интерпретируемый Python или компилируемый? Оба варианта.) Может быть трудно объяснить, что ваша программа на Python никогда не превращается в явную последовательность нативных инструкций процессора, что люди часто подразумевают под "компилируемым". Поэтому я написал Calcium, чтобы иметь его под рукой в следующий раз, когда этот вопрос возникнет. Я думаю, будет полезно иметь возможность показать код исполнительного движка, читающего байт-коды и выполняющего их. Это также может стать интересной отправной точкой для тех, кто хочет поэкспериментировать с реализацией языка. В нем почти ничего нет, поэтому есть много простых вещей (комментарии?), которые можно добавить.