Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Язык программирования (и ОС) ФОРТ (FORTH)


Информационный Канал Subscribe.Ru

0005: история языка [green]

[green]
=============================================================================
С.Н. Баранов, Н.Р. Ноздрунов
Язык Форт и его реализации
Лениград, "Машиностроение" Ленинградское отделение, 1988 ============================================================================= Язык программирования Форт (англ. forth -- вперед и одновременно сокращение от fourth -- четвертый), которому посвящена эта книга, появился в начале 1970-х гг. в США. Его изобретатель Чарльз Мур первоначально применил его для разработки программного обеспечения микроЭВМ, управляющей работой радиотелескопа [27]. Преимущества работы с языком Форт вместо применявшегося ранее Ассемблера были настолько велики, что вскоре он стал использоваться и на других специализированных ЭВМ. Быстрый рост популярности языка Форт начался с середины 1970-х гг., когда появились персональные ЭВМ. Оказалось, что этот язык позволяет обходится сравнительно небольшим набором возможностей первых персональных ЭВМ, превращая их в удобный и эффективный инструмент для самой разной работы. К середине 1980-х гг. Форт выдвинулся на третье место после языков Бейсик и Паскаль в качестве средства программирования для персональных ЭВМ, и рост его применения продолжается [7, с. 54]. Широкое распространение получили коммерческие программные продукты, написанные на Форте: системы обработки текстов, пакеты машинной графики, трансляторы, видеоигры [24, 30]. Стихийно быстрое распространение Форта и его практический успех обусловили необходимость стандартизации языка. В 1983 г. был опубликован стандарт "Форт-83" [3, 23, 26], в соответствии с которым ведется изложение материала в этой книге. Едва появившись, Форт вызвал ожесточенные споры среди профессионалов-программистов, является ли Форт еще одним языком (если языком, то какого уровня -- высокого или низкого), операционной системой, интерпретатором или компилятором. Одни считали Форт шагом вперед в развитии программирования, другие -- ошибочным выбросом в сторону. К настоящему времени становится ясным, что Форт представляет собой самостоятельный унифицированный подход к разработке программного обеспечения, который действительно позволяет решать практические задачи -- от небольших игровых программ до больших систем программного обеспечения, работающих в реальном времени [21, 7, с. 56]. Унификация состоит в том, что Форт предполагает последовательное и систематическое использование очень небольшого числа "правил". Например, "мостом" между аппаратурой и прикладной задачей служит всего один язык программирования (Форт), в то время как при традиционном подходе этот разрыв заполняется в несколько приемов разнородными инструментальными средствами (ассемблер, универсальные языки высокого уровня, проблемно-ориентированные языки, средства операционной системы). Система программирования на Форте (форт-система) обычно обеспечивает полный набор средств поддержки для разработки и исполнения программ: операционную систему, интерпретатор для диалогового исполнения, компилятор, ассемблер, текстовый редактор и обслуживающие программы. Все эти компоненты являются расширениями Форта и написаны на том же Форте. Таким образом, Форт является одновременно и системой для пользователя, и собственной метасистемой, т.е. системой, описывающей саму себя (см. приложение 1). В соответствии с общим принципом Форта в форт-системе используется минимум правил и накладывается минимум ограничений, т.е. она обходится почти без синтаксиса, жестко контролируемых интерфейсов для взаимодействия модулей, закрытых для пользователя областей памяти, имеет лишь незначительный по объемы встроенный контроль ошибок. Это обеспечивает максимум возможностей для программиста, включая возможность изменять, добавлять или удалять любую часть системы, позволяет расширять систему в заданном направлении и вместе с тем сохраняет ее относительную независимость от аппаратуры. Разумеется, Форт имеет и свои недостатки. Многие программисты считают, что форт-тексты трудно читаемы из-за применяемой в Форте обратной польской формы и различных неочевидных манипуляций со стеком. В некоторых форт-системах отсутствуют средства для получения независимого программного продукта. Вызывают возражение отсутствие контроля типов при взаимодействии модулей и незащищенность форт- системы от неправильных действий программиста. В то же время становится ясно, что методология Форта находится в общем русле поисков в области технологии программирования, хотя в настоящее время практически отсутствуют работы по методологическим и технологическим аспектам его применения, сравнимые по значимости с исследованиями для традиционных языков [13, 14, 19]. В целом цикл разработки программного продукта остается неизменным: анализ, проектирование, программирование, отладка. Однако лишь на первых двух этапах применяется традиционная технология "сверху -- вниз". Программирование и отладка ведутся по методу "снизу -- вверх". Благодаря этому отпадает необходимость в модулях-заглушках и в повторных тестированиях всего цикла и позволяет выполнить его несколько раз за то же время. При разработке форт-программ наблюдается к вычленению относительно замкнутых групп модулей, каждая из которых проходит свой цикл разработки. При этом обычно размер модуля составляет от 1 до 3 строк текста, что резко контрастирует с традиционными языками. Для целей промышленного производства программ сочетание методологии Форта с существующими [14] представляется весьма перспективным, однако практические разработки в этой области пока не известны. В нашей стране также шли поиски принципов, аналогичных тем, которые ныне определяют язык Форт, в большей степени исходя из теоретических основ программирования [10]. Эти работы привели к созданию интересных систем ДССП [9], КОМФОРТ [12], системы программирования на основе понятия "рабочей смеси" [5, 17] и других. Интерес к языку Форт возрастал по мере получения сведений о нем и достижения собственных результатов в этой области [2, 6, 18, 20]. Усилиями энтузиастов созданы самостоятельные реализации Форта, которые получают распространение наряду с заимствованными реализациями (см. приложение 2). Язык Форт включается в программное обеспечение школьных компьютеров. Ведутся работы по аппаратной реализации этого языка [12]. В 1985 г. в рамках Рабочей группы по технологии программирования микропроцессорной техники при Комиссии по технологии программирования при ГКНТ была создана целевая подгруппа по языку Форт и родственным системам, задачей которой является обобщение и распространение опыта практического применения этих средств в различных областях. С 1978 г. в США выходит журнал FORTH Dimensions -- основное периодическое издание для массовых пользователей языка Форт. С 1979 г. проводятся ежегодные конференции, материалы которых, отражающие последние достижения в развитии форт-подхода, публикуются в виде сборников. С 1983 г. издается журнал The Journal of FORTH Application and Research (шифр ГПНТБ V1467) -- издание для программистов- профессионалов. Журналы BYTE (шифр B1841) и Dr. Dobb's Journal (шифр W9464) посвящают языку Форт специальные выпуски. До сих пор знакомству широких кругов программистов нашей страны с этим языком препятствовало отсутствие сколько-нибудь обстоятельных публикаций о нем на русском языке. Данная книга является первой такой публикацией и написана с целью дать подробное и по возможности простое введение в язык Форт. Мы надеемся, что знакомство с интересными принципами этого языка позволит читателям по-новому взглянуть на свою программистскую практику и будет полезно во всех отношениях. Приложение 2: Распространенные форт-системы ----------------------------------------------------------------------------- Фиг-форт. Система разработана в 1978-1980 гг. группой из 9 системных программистов в США -- Группой по языку Форт (FORTH Interest Group), желавших сделать этот язык удобным средством программирования для персональных ЭВМ [28]. Система реализована для цел ого ряда ЭВМ с различной архитектурой. В нашей стране получила распространение на ЭВМ СМ-4 с операционными системами ОС РВ, РАФОС и без операционной системы. Ее ядро, написанное на макроязыке ассемблера, занимает от 4 до 5 К байт и после загрузки в памят ь ЭВМ позволяет вводить следующие определения уже непосредственно на языке Форт. Общий объем словаря -- около 8 К (220 слов). В реализации применен косвенный шитый код. Имеются загружаемый ассемблер и текстовый редактор. Форт-СМ. Система разработана в Ленинграде С.Б. Кацевым (ЛГУ) и И.А. Шендриковым (ЛИТМО) на основе стандарта "Форт-83". Используется с 1985 г. на ЭВМ СМ-3, СМ-4, ДВК, "Электроника-60", БК0010. Словарь включает около 350 слов, его общий объем -- 10.5 К. В зависимости от генерации может работать под операционными системами ОС РВ, РАФОС или без операционной системы с перфоленточной загрузки. В реализации применен косвенный шитый код. Имеются связь с файловой системой соответствующей ОС, загружаемый структур ный ассемблер с метками, строковый и экранный редакторы, целевая компиляция. Форт-Тарту. Система разработана в ВЦ Тартусского государственного университета Р.В. Вяйнасте и А.Э. Юуриком для операционных систем ОС РВ (используется с 1983 г.) и UNIX (с 1985 г.). Ядро системы занимает 8 К байт и включает 270 слов. Система является ра сширением стандарта "Фиг-форт". В реализации применен прямой шитый код. Имеется встроенный ассемлер, в оттранслированном виде занимающий 1 К байт. Встроенный текстовый редактор для ОС РВ имеет только строковый режим, для ОС UNIX реализован экранный вариа нт. Система используется в учебном процессе и как инструментальное средство для НИР [20]. Форт-К580. Система разработана в ЛГУ В.А. Кириллиным, А.А. Клубовичем и Н.Р. Ноздруновым для микропроцессора К580. Используется с 1983 г. Система легко переносится на любое оборудование на базе К580, в частности она успешно перенесена на ЕС-7970, СМ-1800 (под управлением ОС CPM), К1-10, КТС ЛИУС, КУВТ Yamaha, КУВТ "Корвет" и большое число мелкосерийных микроЭВМ. Включена в комплект заводской поставки ЕС-7970 в составе программного комплекса ЯНУС. Ядро системы занимает от 8 до 12 К байт и насчитывает око ло 300 слов. Система является расширением стандарта "Форт-83", включает все стандартные расширения и ряд слов для взаимодействия с операционной системой и аппаратурой устройств, а также для разработки и отладки программ. Имеются отдельно загружаемые паке ты для работы с числами в формате с плавающей точкой, для диалогового обучения языку Форт, для целевой компиляции и построения конечного программного продукта, размещаемого в ПЗУ и (или) ОЗУ. В реализации применен прямой шитый код. Встроенный структурный ассемблер разрешает использование меток. Имеется два текстовых редактора -- построчный и поэкранный. Форт-ЕС. Система разработана в Ленинградском институте информатики и автоматизации АН СССР (ЛИИАН) С.Н. Барановым для ЕС ЭВМ [2] под управлением ОС ЕС и СВМ ЕС. Ядро системы занимает 13 К байт и насчитывает 350 слов. Система является расширением стандарт а "Форт-83", включает все стандартные расширения и ряд слов для взаимодействия с операционной системой, для работы с четырехбайтными машинными адресами, для разработки и отладки программ. Имеются отдельно загружаемые пакеты для работы с числами в формате с плавающей точкой, для связи с файловой системой, для справочной подсистемы с диалоговым учебником по языку Форт. В реализации применен косвенный шитый код. Встроенный структурный ассемблер разрешает использование меток. Текстовый редактор работает в р ежимах построчного и поэкранного редактирования. Система имеет отдельно загружаемый пакет целевой компиляции и средства для построения независимого программного продукта. Форт-Искра-226. Эта развитая операционная система на базе языка Форт [6] разработана в Институте социально-экономических проблем (ИСЭП) АН СССР. Используется с 1986 г. Включена в комплект заводской поставки ЭВМ "Искра-226". Объем -- около 32 К байт (свыш е 400 слов). Система базируется на стандарте "Фиг-форт", расширенном рядом в соответствии с ее функциональным назначением. Среди них встроенный диспетчер, средства для параллельного выполнения директив, работа с файлами и базами данных, работа с адресным пространством до 128 К байт. Важным встроенным средством является программная реализация элементарных математических функций и операций для работы с плавающей точкой. В реализации применен прямой шитый код. Встроенный экранный редактор имеет режим работ ы с окнами. Форт-М6000. Система разработана В.П. Патрышевым (Ленинград) для ЭВМ М6000 под управлением ДОС РВ, РТЕ-2 и для работы без операционной системы. Используется с 1985 г. Ядро занимает 14 К байт (300 слов). Система ориентирована на стандарт "Форт-83". В реали зации использован прямой шитый код. Имеются своя файловая система, средства для связи с операционной системой, строковый редактор, ориентированный на файловую систему. Форт-БЭСМ-6. Система разработана в Институте теоретической астрономии (ИТА) АН СССР И.Р. Агамирзяном для ЭВМ БЭСМ-6. Используется с 1984 г. Работает под управлением ОС ДИСПАК и имеет интерфейс с файловой системой КРАБ. Общий объем -- 24 К байт (500 слов) . По входному языку система ближе всего к стандарту "Фиг-форт", вместе с тем используется ряд слов из стандарта "Форт-83". Сравнительно большой объем памяти связан с отсутствием в ЭВМ БЭСМ-6 байтовой адресации. Для представления стандартного двухбайтного значения используется шестибайтное машинное слово БЭСМ-6. По той же причине для работы с байтовыми значениями вместо слов C@, C! и других введен ряд специальных слов. Из-за особенностей системы команд в реализации применен подпрограммный шитый код. Это позволяет включать ассемблерные вставки непосредственно в шитый код и наоборот -- высокоуровневые слова как обращения к подпрограммам внутрь ассемблерных определений. Прототипом для встроенного ассемблера является ассемблер МАДЛЕН БЭСМ-6. В качестве текс тового редактора используется стандартный редактор операционной системы. Форт-Эльбрус. Система разработана на математико-механическом факультете ЛГУ А.Е. Соловьевым для МВК "Эльбрус". Работает с 1986 г. под управлением ОС "Эльбрус". Ядро занимает 4.5 К байт (200 слов). Система ориентирована на стандарт "Форт-83", имеет ряд сп ециальных инструментальных слов и средства для связи с процедурами на языке Эль-76. ================ http://akps.ssau.ru forth@km.ru FidoNet SU.FORTH 2:5057/18.29 tel.: +7 8462 28 9910 (work), 15 4313 (home)

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.forth
Отписаться
Вспомнить пароль

В избранное