Шитый код: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показано 37 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''Косвенный шитый код''' (''англ.'' 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 гарвардской архитектуры], которая не позволяет исполнять [[ЯМК|код ЯМК]] из области данных.
'''Косвенный шитый код''' (''англ.'' 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 гарвардской архитектуры], которая не предусматривает исполнение [[ЯМК|кода языка МК]] из [[Регистр памяти данных|области данных]].


[[Каллисто]] компилирует входной поток текста в ''шитый код'', который потом исполняется [[Адресный интерпретатор|адресным интерпретатором]].
[[Текстовый интерпретатор]] компилирует входной поток текста на языке [[Каллисто]] в ''шитый код'', который потом исполняется [[Адресный интерпретатор|адресным интерпретатором]].


К сожалению, сейчас (по состоянию на март 2016 года) [[адресный интерпретатор]] написан на [[ЯМК|языке МК]], что сильно ограничивает быстродействие [[Каллисто]]. Оптимизация [[Адресный интерпретатор|адресного интерпретатора]] по быстродействию, как и прошивка его в ПЗУ [[микроконтроллер]]а является задачей, важной для успеха [[Каллисто]].
== История ==
Первые годы определения слов высокого уровня хранились в Форте в виде массива из укороченных имён слов, составлявших определение. Это приводило к большим накладным расходам, ведь при исполнении каждое слово искалось по своему имени в словаре.


== История ==
Применённый в [[Каллисто]] ''косвенный шитый код'' впервые появился в Форте в 1970 году на IBM 1130, когда Форт был переделан из кросс-компилятора для терминала IBM 2250 в родную среду разработчика для IBM 1130. Тогда же в Форте появился словарь, связанный список статей, содержащих [[поле имени]] (счётчик и три первые буквы) и [[поле кода]]. Это произошло за пять лет до публикации работы Dewar по косвенному шитому коду в Communications of the ACM в 1975 году.
Впервые ''косвенный шитый код'' появился в Форте 1971-73 годах, когда Чак Мур перенёс транслятор на DEC PDP-11 в [https://en.wikipedia.org/wiki/National_Radio_Astronomy_Observatory National Radio Astronomy Observatory] (''англ.'', [https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%80%D0%BB%D0%BE%D1%82%D1%81%D0%B2%D0%B8%D0%BB%D0%BB_%28%D0%92%D0%B8%D1%80%D0%B3%D0%B8%D0%BD%D0%B8%D1%8F%29 Шарлотсвилл]) и с тех пор разные варианты ''шитого кода'' применяется в подавляющем числе различных реализаций Форта.
 
''Косвенный шитый код'' был применён в 1971-73 годах, когда Чак Мур перенёс транслятор на DEC PDP-11 в [https://en.wikipedia.org/wiki/National_Radio_Astronomy_Observatory National Radio Astronomy Observatory] (''англ.'', [https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%80%D0%BB%D0%BE%D1%82%D1%81%D0%B2%D0%B8%D0%BB%D0%BB_%28%D0%92%D0%B8%D1%80%D0%B3%D0%B8%D0%BD%D0%B8%D1%8F%29 Шарлотсвилл]). С тех лет разные варианты ''шитого кода'' применяются в подавляющем числе различных реализаций Форта.


Существуют реализации Форта, генерирующие при компиляции обычный машинный код, подобно компиляторам с обычных языков программирования. С другой стороны, выпускаются форт-процессоры, система команд которых оптимизирована для исполнения ''шитого кода'':
Существуют реализации Форта, генерирующие при компиляции обычный машинный код, подобно компиляторам с обычных языков программирования. С другой стороны, выпускаются форт-процессоры, система команд которых оптимизирована под исполнение ''шитого кода''.
* В России разработаны и выпускается отечественные форт-процессоры K1881BE1T и [https://ru.wikipedia.org/wiki/%D0%A2%D0%A4-16 К1894ВГ1Т].
* Защищённый от радиации форт-процессор [https://en.wikipedia.org/wiki/RTX2010 RTX2010] ''(англ.)'' основан на разработках Чака Мура и используется в зарубежных космических аппаратах.


Первый форт-компьютер был построен John Davies в Англии около 1973 года. Примерно в это время английская обсерватория Jodrell Bank открыла для себя Форт, изменила набор инструкций под Форт и построила форт-компьютер, очень быстрый для своего времени.
== Ссылки ==
* James R.Bell, "Threaded Code", "Communications of ACM", Vol.16, No.6, 370-72.
* [https://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%82%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4 Шитый код] на Википедии


Также в 1973 году Dean Sanderson из компании General Logic разработал форт-компьютер, в котором была инструкция NEXT. Позже Dean Sanderson перешёл в FORTH Inc.


{{нет иллюстраций}}
{{нет иллюстраций}}
{{заготовка}}
{{заготовка}}
[[Категория:Каллисто]]
[[Категория:Каллисто]]

Текущая версия от 07:52, 14 января 2018

Косвенный шитый код (англ. indirect-threaded code) имеет то преимущество, что его высокоуровневые подпрограммы не содержат машинных кодов (Баранов-Ноздрунов, стр. 47). Эта замечательная особенность косвенного шитого кода позволила реализовать Каллисто на «Электронике МК-161» — машине гарвардской архитектуры, которая не предусматривает исполнение кода языка МК из области данных.

Текстовый интерпретатор компилирует входной поток текста на языке Каллисто в шитый код, который потом исполняется адресным интерпретатором.

История[править]

Первые годы определения слов высокого уровня хранились в Форте в виде массива из укороченных имён слов, составлявших определение. Это приводило к большим накладным расходам, ведь при исполнении каждое слово искалось по своему имени в словаре.

Применённый в Каллисто косвенный шитый код впервые появился в Форте в 1970 году на IBM 1130, когда Форт был переделан из кросс-компилятора для терминала IBM 2250 в родную среду разработчика для IBM 1130. Тогда же в Форте появился словарь, связанный список статей, содержащих поле имени (счётчик и три первые буквы) и поле кода. Это произошло за пять лет до публикации работы Dewar по косвенному шитому коду в Communications of the ACM в 1975 году.

Косвенный шитый код был применён в 1971-73 годах, когда Чак Мур перенёс транслятор на DEC PDP-11 в National Radio Astronomy Observatory (англ., Шарлотсвилл). С тех лет разные варианты шитого кода применяются в подавляющем числе различных реализаций Форта.

Существуют реализации Форта, генерирующие при компиляции обычный машинный код, подобно компиляторам с обычных языков программирования. С другой стороны, выпускаются форт-процессоры, система команд которых оптимизирована под исполнение шитого кода.

Ссылки[править]

  • James R.Bell, "Threaded Code", "Communications of ACM", Vol.16, No.6, 370-72.
  • Шитый код на Википедии


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.