Редактирование: Шитый код

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

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

Текущая версия Ваш текст
Строка 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 гарвардской архитектуры], которая не предусматривает исполнение [[ЯМК|кода ЯМК]] из [[Регистр памяти данных|области данных]].


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


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


Применённый в [[Каллисто]] ''косвенный шитый код'' впервые появился в Форте в 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 Шарлотсвилл]). С тех лет разные варианты ''шитого кода'' применяются в подавляющем числе различных реализаций Форта.
Существуют реализации Форта, генерирующие при компиляции обычный машинный код, подобно компиляторам с обычных языков программирования. С другой стороны, выпускаются форт-процессоры, система команд которых оптимизирована под исполнение ''шитого кода''.
 
== Форт-процессоры ==
Первый форт-компьютер был построен John Davies в Англии около 1973 года. Примерно в это время [https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%81%D0%B5%D1%80%D0%B2%D0%B0%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%94%D0%B6%D0%BE%D0%B4%D1%80%D0%B5%D0%BB%D0%BB_%D0%91%D1%8D%D0%BD%D0%BA английская обсерватория Джодрелл Бэнк] открыла для себя Форт, изменила набор инструкций под Форт и построила форт-компьютер, очень быстрый для своего времени.
 
В том же 1973 году Dean Sanderson из компании General Logic разработал форт-компьютер, в котором была аппаратная инструкция NEXT. Позже Dean Sanderson перешёл работать в FORTH Inc.
 
Чак Мур, автор языка Форт, отказался от участия в разработке стандарта ANSI для языка Форт, чтобы посвятить всё своё время разработке «железного» процессора, достойного языка Форт. Эволюция Форта в программно-аппаратную систему привела к возникновению языка {{colorForth}} и [http://www.greenarraychips.com/ мультикомпьютерной микросхемы GA144].


Существуют реализации Форта, генерирующие при компиляции обычный машинный код, подобно компиляторам с обычных языков программирования. С другой стороны, выпускаются форт-процессоры, система команд которых оптимизирована под исполнение ''шитого кода''.
Защищённый от радиации форт-процессор [https://en.wikipedia.org/wiki/RTX2010 RTX2010] ''(англ.)'' основан на разработках Чака Мура и десятилетиями используется в зарубежных космических аппаратах. В частности, RTX2010 использовался в [https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%D0%BB%D1%8B_%28%D1%81%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D0%B5%D0%BC%D1%8B%D0%B9_%D0%B0%D0%BF%D0%BF%D0%B0%D1%80%D0%B0%D1%82%29 спускаемом аппарате «Филы»] КА «Розетта» (миссия к комете 67P/Чурюмова — Герасименко), работавшего на поверхности кометы с 12 ноября 2014 года по 19 июня 2015 года. Это первая в истории посадка на комету, драматическая и довольно захватывающая, но в целом успешная.
 
В России разработаны и выпускаются отечественные форт-процессоры, например K1881BE1T и [https://ru.wikipedia.org/wiki/%D0%A2%D0%A4-16 К1894ВГ1Т]. Перенос [[Каллисто]] на один из этих микропроцессоров позволит достичь максимальной производительности.


== Ссылки ==
== Ссылки ==
* James R.Bell, "Threaded Code", "Communications of ACM", Vol.16, No.6, 370-72.  
* James R.Bell, "Threaded Code", "Communications of ACM", Vol.16, No.6, 370-72.  
* Randy Dumse, "The R65F11 FORTH Chip," "FORTH Dimensions", Vol.5, No.2, p.25.
* [https://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%82%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4 Шитый код] на Википедии
* [https://ru.wikipedia.org/wiki/%D0%A8%D0%B8%D1%82%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4 Шитый код] на Википедии


Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)

Шаблоны, используемые на этой странице: