Почему имеют интерпретаторы языка быть записанными на выходном языке? [дубликат]

gray = cv2.cvtColor(cv2.UMat(imgUMat), cv2.COLOR_RGB2GRAY)

UMat является частью Transparent API (TAPI) , помогая написать один код для реализаций CPU и OpenCL.

7
задан Community 23 May 2017 в 12:01
поделиться

4 ответа

Это не так о записи интерпретатора сам по себе - больше о записи интерпретатора на высокоуровневом языке, не в C. Идеально, выполнение так позволяет изменять детали реализации и создания более модульного интерпретатора.

Для конкретного случая PyPy, пишущий интерпретатор и базовые объекты в (R) Python позволяет перенастраивать PyPy для целей (C, JVM.NET, JavaScript, и т.д.), и также позволяет заменять аспекты, такие как сборщик "мусора".

7
ответ дан 7 December 2019 в 03:22
поделиться

Я уверен, что существует много различных причин того, чтобы сделать его. В некоторых случаях это - потому что Вы действительно полагаете, что язык является лучшим инструментом... настолько пишущим интерпретатор языка, или компилятор на самом языке может рассматриваться как форма dogfooding. Если Вы действительно интересуетесь этим предметом, следующая статья является действительно удивительным чтением о разработке писка. Текущая версия писка является smalltalk временем выполнения, записанным в smalltalk.

http://users.ipa.net/~dwighth/squeak/oopsla_squeak.html

2
ответ дан 7 December 2019 в 03:22
поделиться

Дополнительное преимущество - то, что, если Вы реализуете хорошие отладчики и IDE для Вашего выходного языка, они также работают на Ваш исходный язык.

0
ответ дан 7 December 2019 в 03:22
поделиться

Таким образом, вы можете доказать, что целевой язык - серьезный бизнес, потому что способность заставить его компилировать что-то является признаком того, что это хороший язык.

Хорошо, C ++ и Java также создают компиляторы ... так что, возможно, этот аргумент только наполовину так хорош, как может показаться.

0
ответ дан 7 December 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: