Есть разница. Пока вы написали переводчик для языка на Python. Создание синтаксического анализатора для языка поверхностей и перевод его в s-выражения, включающие базовую библиотеку Racket, в основном означают, что полученный код работает на нативном языке. Вы можете скомпилировать «код стека» и получить двоичный файл.
В Python вы можете написать компилятор калькулятора, который компилирует код в python и позволяет динамическую компиляцию, так что python создает байт-код, который выполняет код на нативном языке, но у него нет функций, позволяющих писать на других языках в python ,
Racket - это не один язык, а скорее похожий на язык, похожий на Scheme, с системами для написания нового языка, который в действительности становится модулем для Racket. Затем вы можете написать что-нибудь на одном языке и, возможно, импортировать это как библиотеку на другом. Похоже на Parrot, где идея заключалась в том, что Python и Perl будут иметь одинаковое время выполнения и что они могут совместно использовать библиотеки.
В качестве примера вы можете загрузить Algol60 в Racket, самый успешный язык программирования, разработанный комитетом и предшественник большинства современных языков программирования. Python и C являются диалектами Алгола!
Могу поспорить, что вы могли бы написать синтаксический анализатор Python и базовую библиотеку Python таким образом, чтобы вы могли передавать его другим библиотекам, созданным на python, и получить полный запуск Python под Racket. После этого вы можете просто импортировать другой код ракетки, как если бы он был написан на Python, и использовать его напрямую, или вы можете импортировать библиотеки Python и использовать его на любом из других языков, поддерживаемых Racket.
Единственное, что сделало бы это еще слаще, было бы, если бы они могли создать ядро Racket под компилятором нанопроходов Chez Scheme. Тогда вы сможете скомпилировать все, что поддерживает Racket, практически во что угодно.