Язык форт: Язык программирования Форт / Хабр

Язык программирования Форт / Хабр

Первая реакция у многих людей, с которыми мне приходилось говорить о Форте: «Это, наверное, разновидность Фортрана?». К сожалению, уровень осведомленности околокомпьютерного сообщества насчет этого совершенно непохожего на остальные языка программирования достаточно низок. В этой статье мы попробуем разобраться с тем, что представляет собой Форт, и почему этот язык программирования не используется повсеместно.

Окунемся в историю Форта (Forth). В начале 1970х годов Чарльз Мур занялся разработкой программного обеспечения для микроЭВМ, управляющей работой радиотелескопа. Поскольку программирование на Ассемблере привело к неуправляемости разработки довольно сложной программы, а для использующейся микроЭВМ из-за аппаратных ограничений не было языка высокого уровня, Чарльз Мур приступил к созданию компактного и мощного языка программирования, позволившего с блеском решить поставленные перед ним задачи. Успех нового языка программирования определился тем, что на ограниченных ресурсах устройства была создана быстрая и функциональная программа, позволившая делать намного больше, чем первоначально планировалось в техническом задании.


Форт (от англ. forth — вперед, получившееся из-за необходимости сократить слово fourth — четвертый, до пяти букв из-за ограничений операционной системы на длину имени файла) в 1976 году стал стандартным языком для программирования для американского астрономического общества. Благодаря высокой степени переносимости и компактности, а также быстродействию, Форт до 1990х активно применялся во множестве приборов с микроконтроллерным управлением (спектрограф на Шаттле, микромодули управления искусственными спутниками Земли, для системы управления в аэропорту Эр-Рияда, системах компьютерного зрения, автоматизации анализа крови и кардиологического контроля, карманных переводчиках). Форт выступает прародителем такого широко известного языка управления печатью как PostScript.

По своей структуре Форт представляет собой набор примитивов — слов, которые участвуют в определении других слов. Важная особенность Форта — использование стека для передачи параметров между словами, такая конструкция позволяет очень гибко и просто реализовывать сложные концепции. Наборы слов, относящиеся к определенной области, могут выделяться в словари. Иерархическая структура словарей позволяет естественно организовывать наследование слов от словаря-родителя. Базовый словарь форта составляет менее четырех десятков слов, и уже он позволяет получать полноценные программы расширением исходного словаря.

Форт сам для себя является метасистемой — в нем объединены функции компилятора и интерпретатора, Форт может использоваться без поддержки со стороны операционной системы и использоваться для того, чтобы компилировать самого себя, в том числе и на другие платформы.

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

До сих пор популярна тема создания Форт-процессоров, система команд которых является машинным представлением наиболее часто используемых слов-примитивов. Благодаря минимализму базовой Форт-системы это легко реализуемо, тем более что программируемые матрицы логических элементов сейчас достигли таких размеров, что Форт-процессор интегрируется на оставшиеся после программирования основной логики 10% вентилей как бонус. Это что-то из разряда такого: «А в углу нашей маленькой и уютной детской комнатки незаметно расположился аквариум с бегемотом».

Легкость написания Форт-систем привела к огромному разнообразию существующих реализаций — не писал свой Форт только ленивый фортер. Большое количество систем, достаточно плохо совместимых, поскольку имеется три стандарта Форта: Форт-79, Форт-83 и ANSI-Форт-94. Стандарты, хотя и описывают необходимый минимум слов для реализации, но дают огромный простор для самостоятельных изменений, что повсеместно и происходит. Существуют реализации Форта написанные на Ассемблере, Си, Питоне, Паскале, Яве, а также созданные с помощью целевых компиляторов других Форт-систем.

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

Таким образом, по частоте использования, высокоуровневый язык программирования Форт находится даже ниже уровня Ассемблера. При решении проблем, требующих написания ассемблерного кода Форт имеет много преимуществ: компактность кода, структурный ассемблер, позволяющий легко внедрять в тело ассемблерных слов высокоуровневые определения. Для тех, кто хочет изучать и использовать Ассемблер, я бы порекомендовал начать это с изучения Форта, как я в свое время и сделал. Результатом такого метода обучения будет намного более быстрое и качественное освоение Ассемблера, тем более, что после изучения основ вам обязательно захочется сделать свою Форт-систему (как ни говори, практика — кузница умения).

Для меня Форт дал много — после освоения языка я стал замечать, что код в Дельфи стал более коротким и понятным, появилась привычка документировать основные методы и поля объектов (поскольку в Форте очень желательно описывать стековые диаграммы для каждого слова).

Благодаря изучению книги «Проектирование и программная реализация экспертных систем на персональных ЭВМ» Таусенда и Фохта, я почерпнул много информации о внутренней логике работы таких языков как Лисп и Пролог. Книга Келли и Спайса «Язык программирования ФОРТ» привела меня к четкому пониманию того, как можно написать свой язык программирования и что такое Форт-ассемблер. Для совершенствования стиля программирования оказалась совершенно неоценимой по влиянию на меня книга Лео Броуди «Способ мышления — Форт».

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

Дмитрий Спицын

  • http://www.forth.org.ru/ — Russian FORTH Interest Group — на сайте размещена большая подборка книг и статей по Форту, много ссылок на существующие Форт-системы, интересующимся очень рекомендуется посетить
    http://www.nncron.ru/index_ru.shtml — продвинутый планировщик задач под Windows, пример коммерчески успешной программы на языке Форт
    http://winglion.ru/ — самодельный Форт-процессор, сайт содержит достаточно толковый форум по Форту
    http://www.msyst.ru/quark.htm — Форт-система с поддержкой OpenGL в виде . dll
    http://ronware.org/ — кроссплатформенный Форт Windows 32bit (x86) — Linux 32bit (x86) — WinCE (ARM)
    http://forth.gsfc.nasa.gov/ — список систем NASA, управляемых Фортом

Язык Форт в СССР и России

Баранов С.Н.

Язык Форт стал известным в нашей стране начиная с конца 70-х годов. Возникнув в США – первая официальная публикация появилась в 1974 г. [1] – этот язык вскоре получил заметное признание как быстрое и эффективное средство создания содержательных приложений для микропроцессорных устройств, где особенно важна
была максимальная экономия оперативной памяти. В США была вскоре создана «Форт-группа по интересам» [2],
действующая и поныне, поставившая своей задачей стандартизовать этот язык и популяризировать его.

В то время шло бурное развитие микропроцессорной техники, появились первые отечественные микропроцессоры, одним из которых был К580ИК80 – аналог процессора Intel 8080. В Вычислительном центре Ленинградского университета тогда образовалась группа по созданию программного обеспечения (ПО) для микроЭВМ на базе этого микропроцессора, которой руководил Б. А. Кацев. Обладая замечательным организаторским талантом и известностью в промышленности, он привлек к
этой работе талантливых молодых сотрудников ВЦ. Были заключены договоры с московскими отраслевыми институтами НИЦЭВТ и
НИИ СЧЕТМАШ на разработку ПО для создаваемых ими терминалов на базе процессора К580ИК80. Основными вычислительными
мощностями ВЦ в то время были машина ЕС ЭВМ 1030 и уже выводимые из эксплуатации М-220 и М-222; поэтому для отладки разрабатываемого ПО было решено сделать на ЕС ЭВМ кросс-систему
для К580, включавшую ассемблер и эмулятор кода.

Разработка кросс-ассемблера велась на языке PL/I и заняла
больше полугода. Исходный код по тем представлениям оказался
огромен – более тысячи строк на PL/I. Для его трансляции приходилось снимать все параллельно идущие пакетные задания и отдавать весь резерв оперативной памяти (а всего ее было, кажется,
512К) транслятору с PL/I.

Эмблема Форт-группы по интересам

Специальный выпуск журнала BYTE
(август 1980) о языке Форт

В это время нам попался экземпляр журнала (кажется, это был
Dr. Dobb’s Journal), в котором был приведен листинг ассемблера для
Intel 8080 на языке Форт, состоявший всего из 54 строчек текста,
треть которого занимала таблица знакомых нам мнемоник ассемблерных команд. При этом авторы
утверждали, что это полный ассемблер, охватывающий все режимы и особенности команд Intel 8080! Было потрачено немало
времени на выяснение того, как это сделано (через конструкции
CREATE DOES>), но как только мы это поняли, то сразу оценили всю мощь и красоту этого подхода. Разумеется, никаких
других текстов о Форте у нас в этот момент не было и надо было только понять, как указанная последовательность Форт-слов
может работать именно так, как требуется. Только впоследствии мы узнали, что в журнале BYTE за 1980 г., целый выпуск
которого был посвящен этому языку [3], было опубликовано
много ярких и красивых примеров его использования.

В Форте оказалось замечательным то, что очень кратким
способом можно вводить новые базовые конструкции языка
программирования, максимально соответствующие специфике
решаемой задачи. По сути был предложен механизм метаязыка,
позволяющий задавать новые абстрактные типы данных вместе
с их реализацией на любом уровне абстракции, вплоть до машинного кода данного процессора, что позволяло добиваться
максимальной производительности рабочего кода. Например,
столь важные понятия переменной и константы могут быть
весьма элегантно определено как:

:VARIABLE CREATE 0 , DOES>; : CONSTANT CREATE , DOES> @;

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

Сразу стали делать реализацию Форта на ЕС ЭВМ – единственной доступной тогда машине. Реализация
была сделана на ассемблере и работала замечательно быстро. Через нее уже раскруткой была получена реализация Форта на самом Форте, исходный текст которой вошел потом в виде приложения в первую крупную монографию о нем на русском языке [4]. Параллельно с этим была сделана реализация Форта на дисплейном комплексе ЕС-7970 [5], на котором затем был написан ряд приложений для него.

Начались работы по реализации сложных проектов на языке Форт. Один из них вошел в кандидатскую
диссертацию В.А. Кириллина «Инструментальная система разработки языковых средств микропроцессорной
техники», защищенную в 1985 г. Там, в частности, были реализованы переносимые трансляторы с языков Паскаль и Бейсик, работавшие на дисплейном комплексе ЕС-7970, для которого Форт-система уже была сделана.
Дальнейшей популяризации Форта активно содействовал И.В. Романовский [6].

Основной журнал по языку Форт,
выходивший в США с 1983 г.

Из соответствующих технических журналов были известны
только названия: Byte, Datamation, Dr.Dobb’s Journal, Forth
Dimensions. Еще мы узнали о ежегодных конференциях по языку
Форт в университете г. Рочестера, штат Нью-Йорк, которые проводил
Institute for Applied Forth Research, Inc. , но получить эти журналы или
попасть на эту конференцию было совершенно нереально. Оказалось,
что с 1983 г. этот институт издает журнал Journal of Forth Applications
and Research, что в рамках Ассоциации по вычислительной технике
(ACM – Association for Computing Machinery) существует SIGForth
(Special Interest Group) по языку Форт со своими SIGForth Bulletin и
Newsletters, а в Европе проводятся ежегодные конференции по Форту.
А.Л. Сахаров, работавший тогда в Библиотеке АН СССР, в течение
нескольких лет включал журнал Journal of Forth Applications and Research
в постоянную подписку БАН.

Обнаружилось, что в Институте кибернетики Академии наук Эстонской ССР есть группа, занимающаяся разработкой Фортпроцессора [7] по специальному заказу, и один из ведущих разработчиков – А.Г. Астановский учился в Ленинграде, так что нашлись общие связи и интересы. Усилиями этой группы несколько публикаций
по нашим разработкам вошли в тематический сборник «Программирование микропроцессорной техники», регулярно издававшийся этим
институтом; в 1982 г. прошла конференция по Форту, организованная
М. Томбаком на базе Тартуского университета.

Примерно в 1980 г. в рамках Комиссии ГКНТ по технологии программирования, руководимой И.В. Вельбицким из Института кибернетики АН УССР, была создана Рабочая
группа по микропроцессорной технике (руководитель Р.К. Рауд из Института кибернетики АН ЭССР). В этой
группе выделилось отдельное направление по языку Форт, которое
активно поддерживали и развивали В.П. Котляров, С.Н. Баранов,
Г.М. Погосянц и А.Б. Либеров
.

Первая отечественная монография
по языку Форт

Выход уже упомянутой монографии [4], написанной на базе накопленного опыта и разработанных Форт-систем, стал заметной вехой
на пути развития Форта в СССР. Первый тираж составил 50 тыс. экземпляров, но затем издательство получило столько запросов с мест,
что пришлось допечатать еще 50 тысяч – редкий случай в практике! К
этому времени уже был известен ряд отечественных Форт-систем на
базе стандартов fig-Forth и Forth-83: Форт-СМ (С. Б. Кацев,
И.А. Шендриков
), Форт-Тарту (Р.В. Вяйнасте, А.Е. Юурик), ФортК580 (В.А. Кириллин, А.А. Клубович, Н.Р. Ноздрунов), Форт-ЕС
(С.Н. Баранов), Форт-Искра-226 (Г.В. Лезин), Форт-М6000
(В.Н. Патрышев), Форт-БЭСМ-6 (И.А. Агамирзян), Форт-Эльбрус
(А.Е. Соловьев), что ясно говорит о большом интересе к этому языку.
В монографии последовательно излагались принципы Форта и приводился исходной текст форт-системы с ядром для системы команд ЕС
ЭВМ. Впоследствии, с появлением персональных ЭВМ были сделаны
и получили распространение отечественные форт-системы для IBM
PC под управлением MS-DOS – Астро-Форт (И.Р. Агамирзян) и БетаФорт (С.Н. Баранов).

На волне перестройки в апреле 1988 г. усилиями Б.А. Кацева и
Н.Р. Ноздрунова в Ленинграде был создан кооператив «Форт-Инфо» – один из первых тогда в городе кооперативов в области программирования и вычислительной техники. Его ядро
составили тогдашние сотрудники лаборатории системного программирования математико-механического факультета Ленинградского университета. Их непосредственной задачей стала разработка и развитие новых программных технологий на базе языка Форт. Заметным результатом первых трех лет работы кооператива стало
создание самого быстрого в СССР микропроцессора, 16-разрядного Форт-процессора Дофин-1610 для систем
управления и систем реального времени. Процессор превосходил известный в то время аналог i8086 по быстродействию в 50 раз и выпускался опытными партиями в НПО «Интеграл», г.Минск. Впоследствии кооператив
был преобразован в инновационно-техническую фирму «Технофорт».

Волею случая, упомянутая выше монография [4]
была сразу же замечена активистами Форта в США, и
один из ее авторов С.Н. Баранов получил приглашение
приехать в США на очередную рочестерскую конференцию по языку Форт летом 1989 года. Было много
чисто технических трудностей по организации этой
поездки, которая оформлялась через Президиум АН
СССР за счет принимающей стороны, но, тем не менее,
это произошло. В течение нескольких последующих
лет благодаря налаженным и постоянно укрепляемым
контактам советские «фортисты» смогли участвовать в
ежегодных конференциях в США и Европе с докладами
и демонстрациями своих достижений, обмениваясь
опытом и новыми идеями в этой области с мировой
«Форт-элитой». В 1992 г. при поддержке кооператива
«Форт-Инфо» даже удалось привезти в Рочестер группу
студентов ЛГУ, которые потом были трудоустроены на
летнюю практику в несколько американских фирм,
представители которых участвовали в конференциях –
совершенно новый опыт в этот переходный период нашей истории! Некоторые компании-разработчики
Форт-продуктов в США и Европе – MMS, MPE, DeltaT, Silicon Composers и другие – проявили явный интерес к «русскому опыту» и установили партнерство с
нашими организациями и специалистами.

Участники Рочестерской конференции 1989 г.

Участники Рочестерской конференции 1989 г.

Тогда же, при поддержке кооператива «ФортИнфо», был организован ряд конференций по языку
Форт в СССР, как в рамках собраний Рабочей группы по микропроцессорной технике, так и в качестве самостоятельных мероприятий. Состоялись ответные визиты директора Forth Institute г-на Л. Форсли и проф.
Н. Солнцева из университета Мак-Мастер (Канада) в Ленинград, Москву и Новосибирск. В 1991 г. вышел первый номер журнала «ФОРТ в исследованиях и разработках», к сожалению, не получивший продолжения. В
1996 и 1999 гг. очередные 12-я [8] и 15-я [9] европейские конференции по Форту EuroFORTH прошли в СанктПетербурге в гостинице «Русь» при содействии СПИИРАН. Ведущую роль их в организации и проведении взяли на себя его сотрудники С.Н. Баранов, И.П. Поднозова, Е.М. Игнашкина, М.Ю. Колодин и М.Л. Гасаненко,
защитивший в 1996 г. кандидатскую диссертацию «Механизмы исполнения кода в открытых расширяемых системах на основе шитого кода» и продолжавший работать в этом направлении [10].

В 1991 г. в Ленинграде было создано местное отделение Ассоциации вычислительной техники по языку
Форт, проработавшее несколько лет, в течение которых в отделение поступали полные комплекты всех периодических научно-технический изданий этой ассоциации (свыше 30 наименований). Эти журналы затем сдавались в Библиотеку Академии наук, что было важным
подспорьем для поддержания полноты фондов БАН при
практически прекратившемся бюджетном финансировании на приобретение научно-технической литературы.

Сертификат об учреждении отделения ACM по
языку Форт в Ленинграде

В это же время стали появляться переводные книги
о языке Форт и его практических применениях ([11],
[12], [13]), стимулировавшие дальнейшие разработки в
этой области. Например, познакомившись с аппаратной
реализацией клеточных автоматов, над которой
Т. Тоффоли и Н. Марголус работали в MIT [12],
С.Н. Баранов сделал ее программную реализацию непосредственно на своей системе Бета-Форт. За счет тщательного программирования основного ядра получившаяся реализация Beta-CAM [14] вполне успешно работала на самой первой IBM PC с процессором i8080, что
поразило упомянутых специалистов, когда они увидели ее демонстрацию, и они пригласили автора посетить MIT сразу после Рочестерской конференции 1991 г. Аналогично, А.Л. Кутузов разработал на базе подхода К. Таунсенда [13] экспертную систему для IBM PC, которая
затем использовалась в учебном процессе в СПбГПУ.

В 1993 г. тиражом 50 тыс. экземпляров вышла монография Ю.А. Семенова о языке Форт [15], в которой
обобщался опыт работ в этой области в ИТЭФ (в настоящее время – Федеральное государственное унитарное
предприятие «Государственный научный центр Российской Федерации – Институт теоретической и экспериментальной физики»). Ее особо ценным для разработчиков качеством были приложения, содержащие, в частности, исходный текст Форт-интерпретатора для процессора Intel 80286 на макроассемблере MASM, реализующий стандарт fig-Forth, и ряда других программ.

Распад СССР и переход на рыночные отношения внесли серьезные коррективы в отношение к Форту. Энтузиастов и знатоков Форта поубавилось, поскольку основная масса программистов стала работать в компаниях, где
основными языками были Си/Си++ и Джава. Интересно отметить, что Джава использует ту же, что и Форт, двухуровневую структуру кода: исходный текст переводится в промежуточное представление (байт-код), которое затем интерпретируется виртуальной машиной. Особенность Форта, позволившая ему быстро занять свою нишу в
производстве ПО для микропроцессорной технике – прямой доступ ко всем ресурсам процессора – в дальнейшем
оказалась одновременно и его уязвимостью в отношении безопасности создаваемого ПО. Идеология Форта – все
можно – открывает доступ к самомодификации кода и проникновению программных вирусов, а также снижает
возможности непосредственного переноса кода на другие платформы. Язык Джава отчасти решает эту проблему
тем, что не разрешает непосредственно исполнять команды процессора, защищая тем самым свое «ассемблерное
ядро» от непосредственного доступа со стороны исполняемого кода достаточно сложным механизмом сертификации своих приложений. В Форте же нужна особая самодисциплина при программировании.

Тем не менее, работы по Форту в стране и в мире продолжали развиваться. Важным аргументом в пользу
его принятия промышленностью стало опубликование в 1994 г. ANSI-стандарта языка Форт [16], заменившего
собой предыдущий неофициальный стандарт Форт-83. Новый стандарт явился результатом длительной работы
Технического комитета X3J14, который снял прежние ограничения на 16-разрядность адресного пространства и
ввел необходимую систематизацию в структуру языка. С начала 2000-х годов ведется обновление этого стандарта, осуществляемое группой энтузиастов и компаний, продолжающих использовать этот язык. Их форумом
служат ежегодные европейские конференции EuroForth, проводимые с 1985 г. Очередная 27-я конференция
состоится 23–25 сентября 2011 г. в Вене на базе Венского технического университета [17].

Интересно, что один из проектов по реализации ANSI-стандарта языка Форт выполнялся уже в 1994–1995 гг.
по заказу компании Моторола в ЗАО «ИДУ», созданном на базе СПИИРАН и возглавлявшемся тогда
С.Н. Барановым. В этом проекте участвовали, в частности, В.А. Кириллин, А.А. Клубович и Д.С. Преображенский, ставшие впоследствии авторитетными специалистами по языку Джава и его реализациям, а куратором проекта со стороны Моторолы был А. Л. Сахаров, уехавший ранее в США и получивший там работу.

В конце 80-х годов С.Н. Барановым была разработана технология переноса больших программ на другие
платформы на базе языка Форт, включавшая автоматизированное построение транслятора с входного языка по
записи его грамматики регулярными выражениями, которые рассматривались как текст на языке Форт [18]. В
частности, так была успешно перенесена на персональную ЭВМ IBM PC известная система символьных вычислений SAC-2, написанная на специальном языке ALDES. За счет дополнительного контроля типов, включенного в систему переноса, были даже выявлены две ошибки в первоначальных алгоритмах библиотеки SAC-2, остававшиеся незамеченными в течение многих лет ее использования на больших ЭВМ. По результатам этой и
смежных работ С.Н. Баранов защитил в 1990 г. докторскую диссертацию «Перенос и реализация больших пакетов компьютерной алгебры на базе Форт-технологии».

Важным достижением следует также считать применение Форт-технологии в школьной информатике. В
начале 90-х годов по заданию Санкт-Петербургского филиала Института новых технологий была выполнена
реализация полного языка Лого для отечественной школьной ЭВМ «Электроника УКНЦ» [19], некоторое время
использовавшаяся в ряде школ Санкт-Петербурга и Москвы до массового перехода на персональные ЭВМ на
базе IBM PC. Благодаря особенностям Форта, вся машинная графика работала замечательно быстро, несмотря
на ограниченные возможности процессора и малый объем памяти. Для минимизации требований к оперативной
памяти был разработан специальный механизм отчуждения готового программного продукта от инструментальной Форт-системы [20], в которой он разрабатывался. Исходя из главного слова приложения (аналога
функции main в Си), из ядра Форта выбирались только те слова, на которые обнаруживались ссылки в процессе
автоматического построения их транзитивного замыкания. Более того, если не предполагался динамический
поиск слов по имени в процессе работы приложения, то из выбранных словарных статей удалялся заголовок,
так что в отчужденном продукте оставались «усеченные» словарные статьи, состоящие только из поля кода и
поля параметров. В результате объем приложения получался замечательно малым – примерно 8К для полной
реализации языка Лого.

Интересные разработки в том же направлении интерпретативных языков программирования вел в Академгородке Новосибирска А.А. Берс, предложивший понятие «рабочая смесь» [21], ставшего концептуальной основой при разработке ПО рабочей станции «Мрамор». Представленная им в 1993 г. к защите кандидатская диссертация по результатам этих исследований была единодушно оценена оппонентами и членами совета как докторская, защита которой состоялась в 1994 г. в Москве. По совету и при поддержке Андрея Александровича
был сделан подробный анализ феномена Форта, опубликованный в издаваемом Институтом систем информатики СО РАН сборнике [22].

Подводя итог, можно сказать, что вот уже более 30 лет Форт продолжает активно существовать и привлекать талантливых программистов своими возможностями «делать все» очень качественно, малыми силами и
достаточно быстро. Несмотря на сократившуюся долю в приложениях для встроенных применений, он попрежнему находит своих сторонников и приверженцев, позволяющих им успешно вести свои разработки в современных рыночных условиях.

Список литературы

  1. Moore C.H. FORTH: A New Way to Program a Mini-Computer. – Astronomy and Astrophysics Supplement, 1974, vol.5. –
    P.497–511
  2. Forth Interest Group – http://www.forth.org/index.html
  3. BYTE, Vol.5, No 8, August, 1980
  4. Баранов С.Н., Ноздрунов Н.Р. Язык Форт и его реализации. – Л.: Машиностроение, Ленинградское отделение, 1988. –
    156 с.
  5. Баранов С.Н., Кириллин В.А., Ноздрунов Н.Р. Реализация языка Форт на дисплейном комплексе ЕС-7970. – В кн.:
    Программирование микропроцессорной техники. Таллин: Институт кибернетики АН ЭССР, 1984. – С. 41-49
  6. Бураго А.Ю., Кириллин В.А., Романовский И.В. ФОРТ – язык для микропроцессоров. Л.: Знание, 1989. – 36 с.
  7. Астановский А.Г., Ломунов В.Н. Процессор, ориентированный на язык Форт. – В кн.: Программирование микропроцессорной техники. Таллин: Институт кибернетики АН ЭССР, 1984. – С. 50-67
  8. EuroForth 1996. – http://www.forth.org/bournemouth/euro/index.html
  9. EuroForth 1999. – http://www.forth.org.ru/~mlg/ef99/EF99repo.html
  10. Гасаненко М.Л. Одностековая реализация бэктрекинга для языка Форт. – Труды СПИИРАН. 2002. Вып. 1. Т. 1. СПб.:
    Наука, 2002. – С. 211–223
  11. Броуди Л. Начальный курс программирования на языке Форт. – М.: Финансы и статистика, 1990. – 352 с.
  12. Тоффоли Т., Марголус Н. Машины клеточных автоматов. – М.: Мир, 1991. – 280 с.
  13. Таунсенд К., Фохт Д. Проектирование и программная реализация экспертных систем на персональных ЭВМ. – М.:
    Финансы и статистика, 1990. – 314 с.
  14. Баранов С.Н. Клеточные автоматы на персональной ЭВМ.– Природа, 1992 ,№9.–С.17-23
  15. Семенов Ю.А. Программирование на языке Форт. – М.: Радио и связь, 1991. – 241 с.
  16. American National Standard for Information Systems. Programming Languages. Forth. –
    http://www.openfirmware.info/data/docs/dpans94.pdf – 210 р.
  17. EuroForth 2011. – http://www.complang.tuwien.ac.at/anton/euroforth/ef11/
  18. Баранов С.Н. Реализация системы символьных вычислений МИНИСАК на языке Форт. – В кн.: Математические методы построения и анализа алгоритмов. Л.: Наука, 1990. – С.3-15
  19. Баранов С.Н., Преображенский Д.С. Лого на Форте. – Пролог, 3(5), 1993. – С.6–10
  20. Баранов С.Н. Отчуждение программного продукта в системе Бета-Форт. – В кн.: Проблемы технологии программирования. СПб: СПИИРАН, 1992. – С.139–147
  21. Берс А.А. Об объектной ориентации и организации архитектуры программных систем. – В кн.: Актуальные вопросы
    технологии программирования. Л.: ЛИИАН,1989.–С.4–15
  22. Баранов С.Н., Колодин М.Ю. Феномен Форта. – В кн.: Системная информатика, вып.4, Новосибирск: ИСИ СО РАН,
    1995. – С.193–271.

Об авторе: Санкт-Петербургский институт информатики и автоматизации РАН (СПИИРАН)

[email protected]
Материалы международной конференции SORUCOM 2011 (12–16 сентября 2011 года)
Статья помещена в музей 31.01.2012 с разрешения авторов

Факультет современного языка — Государственный университет Форт-Хейс (FHSU)

Свободное владение иностранными языками говорит о многом для профессиональной универсальности

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

Изучите язык успеха

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

Наши программы помогут вам продемонстрировать передовое мышление, обостренное чувство интеллекта и культуры, которые откроют вам двери в наш глобальный деловой мир или международную академическую среду.

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

Получите возможность изучать язык другой страны с помощью ценного практического обучения:

  • Будьте готовы к десяткам профессий
  • Испытайте увлекательную курсовую работу и пообщайтесь с поддерживающими преподавателями и сотрудниками с опытом путешествий по всему миру
  • Воспользуйтесь уникальными внеклассными мероприятиями и студенческими ресурсами в рамках разнообразного факультета

Программы

Поскольку способность говорить на другом языке укрепляет ваши связи с другими культурами и делает вас более востребованным на рынке труда в стране и во всем мире, курсы современных языков часто сочетаются с другими специальностями посредством дополнительных вариантов получения двойного диплома. Более 95 процентов наших ведомственных специальностей соискатели двойной степени, с парами степеней, таких как сестринское дело/испанский, бизнес/испанский или испанский/педагогическое образование.

  • Бакалавриат
  • Несовершеннолетние/Сертификаты

Откройте для себя наши программы

Карьера

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

Найди свое будущее

Преподаватели и сотрудники

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

Познакомьтесь со своим факультетом

Предстоящие события

05
9 апреля0005

Обучение НДТК

CT_137
Среда, 5 апреля 2023 г., с 8:00 до 17:00.
Нат
… Более

05
Апрель

05
9 апреля0005

Рамадан

Другой
Среда, 5 апреля 2023 г. , 18:30–22:00
Организация
… Более

06

апреля

Обучение НДТК

CT_137
Четверг, 6 апреля 2023 г., с 8:00 до 17:00.
Нати
… Более

Дополнительные мероприятия

Дополнительные ресурсы

Кредит за предварительное обучение

Колледжи и факультеты

Специальности, второстепенные направления и программы

Академические программы

Поступление

Языки и обучение

Преподавание и обучение0001

  • Домашний отдел

  • Грамотность — Учебная программа и инструкция

    • Искусство английского языка

    • Социальные исследования

    • Медиа-услуги библиотеки

    • FBISD читает

  • STEM — Учебный план и инструкция

    • Математика

    • Наука

    • Технологические приложения

      • Клубы компьютерного кодирования

      • Академия кодирования и кинематографистов

      • Конкурс робототехники и кодирования

      • Витрина STEM

        • STEM Showcase_Победители видеоигр

      • Кинофестиваль

        • Правила кинофестиваля

  • Многоязычные программы

    • Двуязычный

    • английский как второй язык

    • Мировые языки — Учебный план и инструкция

  • Одаренный и талантливый

  • Оценка

    • Государственное и национальное тестирование

    • Кампусы, внедряющие оценку на основе стандартов

    • Pre-K — Руководство для 1-го класса

  • Учебные ресурсы

    • Учебные материалы

      • Элементарные ресурсы

      • Ресурсы средней школы

      • Ресурсы средней школы

        • Высшая школа английского языка (ELA)

        • Высшая математика

        • HS Наука

        • Высшая школа социальных исследований

        • HS Мировые языки

      • Дополнительные учебные ресурсы

      • Утвержденные приложения, веб-инструменты и программное обеспечение

    • Информация об использовании учебных ресурсов

    • Программа О-ЛАБ

      • Летняя лаборатория

    • Домашнее обучение

  • Руководства и ресурсы по выбору курсов

  • Списки школьных принадлежностей

  • Универсальный скринер: Ренессанс 360

  • Кампусы, внедряющие оценку на основе стандартов

  • Кампусы, внедряющие систему оценивания на основе стандартов

  • Рекомендации Pre-K-1st Grade

  • В Fort Bend мы считаем, что изучение второго языка является неотъемлемой частью полного образования, которое готовит учащихся к тому, чтобы занять свое место в 21 веке в качестве граждан мира. Наши программы дают учащимся возможность устно и письменно общаться на своем втором языке культурно приемлемыми способами.

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

     

    Ведущий с языками Видео:    http://vimeo.com/77166262

     

    Каждый курс включает обзор, отражающий последовательность прохождения курса. Обзоры определяются округом и отражают соответствие основным знаниям и навыкам Техаса.

Расширить все