Шитый код: различия между версиями
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
'''Косвенный шитый код''' (''англ.'' indirect-threaded code) имеет то преимущество, что его высокоуровневые подпрограммы не содержат машинных кодов (Баранов-Ноздрунов, стр. 47). Эта замечательная особенность ''косвенного шитого кода'' позволила реализовать [[Каллисто]] на машине [https://ru.wikipedia.org/wiki/%D0%93%D0%B0%D1%80%D0%B2%D0%B0%D1%80%D0%B4%D1%81%D0%BA%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0 гарвардской архитектуры], которая не позволяет исполнять [[ЯМК|код ЯМК]] из области данных. | '''Косвенный шитый код''' (''англ.'' indirect-threaded code) имеет то преимущество, что его высокоуровневые подпрограммы не содержат машинных кодов (Баранов-Ноздрунов, стр. 47). Эта замечательная особенность ''косвенного шитого кода'' позволила реализовать [[Каллисто]] на [[МК-161|«Электронике МК-161»]] — машине [https://ru.wikipedia.org/wiki/%D0%93%D0%B0%D1%80%D0%B2%D0%B0%D1%80%D0%B4%D1%81%D0%BA%D0%B0%D1%8F_%D0%B0%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D0%B0 гарвардской архитектуры], которая не позволяет исполнять [[ЯМК|код ЯМК]] из области данных. | ||
[[Каллисто]] компилирует входной поток текста в ''шитый код'', который потом исполняется [[Адресный интерпретатор|адресным интерпретатором]]. | [[Каллисто]] компилирует входной поток текста в ''шитый код'', который потом исполняется [[Адресный интерпретатор|адресным интерпретатором]]. |
Версия от 01:22, 25 марта 2016
Косвенный шитый код (англ. indirect-threaded code) имеет то преимущество, что его высокоуровневые подпрограммы не содержат машинных кодов (Баранов-Ноздрунов, стр. 47). Эта замечательная особенность косвенного шитого кода позволила реализовать Каллисто на «Электронике МК-161» — машине гарвардской архитектуры, которая не позволяет исполнять код ЯМК из области данных.
Каллисто компилирует входной поток текста в шитый код, который потом исполняется адресным интерпретатором.
К сожалению, сейчас (по состоянию на март 2016 года) адресный интерпретатор написан на языке МК, что сильно ограничивает быстродействие Каллисто. Оптимизация адресного интерпретатора по быстродействию, как и прошивка его в ПЗУ микроконтроллера является задачей, важной для успеха Каллисто.
История
Впервые косвенный шитый код появился в Форте 1971-73 годах, когда Чак Мур перенёс транслятор на DEC PDP-11 в National Radio Astronomy Observatory (англ., Шарлотсвилл) и с тех пор разные варианты шитого кода применяется в подавляющем числе различных реализаций Форта.
Существуют реализации Форта, генерирующие при компиляции обычный машинный код, подобно компиляторам с обычных языков программирования. С другой стороны, выпускаются форт-процессоры, система команд которых оптимизирована для исполнения шитого кода:
- В России разработаны и выпускается отечественные форт-процессоры K1881BE1T и К1894ВГ1Т.
- Защищённый от радиации форт-процессор RTX2010 (англ.) основан на разработках Чака Мура и используется в зарубежных космических аппаратах.
Первый форт-компьютер был построен John Davies в Англии около 1973 года. Примерно в это время английская обсерватория Jodrell Bank открыла для себя Форт, изменила набор инструкций под Форт и построила форт-компьютер, очень быстрый для своего времени.
Также в 1973 году Dean Sanderson из компании General Logic разработал форт-компьютер, в котором была инструкция NEXT. Позже Dean Sanderson перешёл в FORTH Inc.
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |