Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[1]

(определение слов Форта в машинных кодах). Можно описать слова, которые будут создавать в словаре совершенно новые типы данных, использовать Форт для модификации самого языка, для операций с большими объемами данных в памяти компьютера и даже для того, чтобы реализовать новые языки программирования. Конечно, изучение этих вопросов может быть трудным. И, хотя мы осветим большую их часть, вы сможете хорошо программировать на языке Форт раньше, чем овладеете ими всеми. Форт предоставляет вам мощные средства для управления работой компьютера, присущие другим языкам программирования, включая машинный язык, но вам эти мощные средства скорее всего не потребуются.

Существует одна причина, из-за которой Форт иногда оказывается действительно трудным. Дело в том, что в стандартах языка и в поставляемых потребителям реализациях языка отсутствуют некоторые слова для выполнения основных или важных функций, предусмотренных другими языками. В таких случаях программист вынужден сам написать слова, которые должны выполнять эти важные функции. Например, старый стандартный Форт83 не содержит операций над числами с плавающей запятой, в нем нет трансцендентных функций (тригонометрических, логарифмической); не определены стандартами операции с символами и символьными строками (например, извлечение отдельных слов из текста), работа с файлами данных, графические возможности. Нет в стандарте и слова, позволяющего вводить числа в процессе исполнения программы. К счастью, во многих поставляемых реализациях Форта предусмотрены слова, позволяющие преодолеть эти ограничения, а Форт настолько мощный, что позволяет самому написать такие слова, если знать, как это сделать. И мы вас этому научим.

Кроме того, 1994 году вышел новый стандарт fans], в который включена большая часть из выше перечиленного. И в конце концов всегда остается доступ в Сеть, используя которую вы можете найти исходные тексты программ, сразу подходящих для решения ваших задач или требующих некоторой адаптации. Если эти программы не комплектуются документацией достаточного качества, свяжитесь с их авторами по электронной почте - в этом случае вы можете не только получить консультацию, но возможно появится новая версия программы, в создании которой вы сами примете участие. Именно в этом и зключается смысл движения Open Source7 !

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

Почему же стандартный Форт так бедно определен ? Чтобы понять это, надо немного познакомиться с историей его создания и естественно учесть что в его развитии не участвовала та критическая масса програмистов и поставщиков коммерческого ПО, как это случилось с языками типа C++, Python, Perl, Java и т.п.

7http: www.fsf.org

8возможно придется приложить некоторые усилия к их адаптации к вашей версии форт-системы

версия 26 октября 2005 г.ФОРТ


1.4Из перевода [thinking]

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

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

Необходимо написание новой книги по языку: существующие книги давно устарели, необходимо очень подробно, понятно и в то же время легко читаемо и без традиционной для российских книг зауми (самый rulez в этом плане Броуди) описать сложные технологии форт-программирования: написание ассемблеров, целевых компиляторов, форт-систем для специфических систем типа самодельных компьютеров и промышленных контроллеров, парсеров и синтаксических анализаторов, сложных расширений языка (например ООП), написание легко переносимых программ и т.п. Также возможно стоит уделить внимание современным технологиям в железе, особенно flex-технологии "гибкой логики" с использованием ПЛИС (CPLD, FPGA) и систем на кристалле (System on Chip, SoC).

В качестве базы я решил взять [starting, orange, thinking, green] и написать on-line книгу учитывая современное состояние языка. Первоначально это будет простая компиляция этих книг, которая в дальнейшем будет редактироваться и модифицироваться, в том числе и с вашим участием.

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

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

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

1.5© Ю. А. Семенов

Статья является введением к книге: Семенов Ю. А., "Программирование на языке Форт", М., "Радио и связь", 1991 г.

В 1971 г. Чарльз Мур разработал язык для управления оптическим телескопом и, считая его языком четвертого поколения, назвал FOURTH (четвертый). Однако на ЭВМ, на которой он работал, символьные имена могли иметь только пять букв. Так FOURTH стал

FORTH (Форт). Несмотря на конкуренцию других языков программирования, в частно-

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

Язык Форт использовался для математического обеспечения корабля многоразового использования типа Shuttle, разведывательного 1802 (Avco Inc.) и других искусственных спутников Земли, для разработки телеигр (GameFORTH), при создании фильмов Star Wars, Batlle Beyond the Stars и Star Trek, для системы управления полетами в аэропорту Эр-Рияда (400 ЭВМ и 36 ООО датчиков) [24].

В 1976 г. Комитет международного астрономического союза принял Форт в качестве стандартного языка программирования. Позднее Форт применялся для создания эксперт-

ФОРТверсия 26 октября 2005 г.


ных систем, систем искусственного зрения, автоматизации анализа крови и кардиологического контроля, систем машинного перевода с 20 языков (Craig М100, карманный

В СССР этот язык используется для систем управления базами данных экономических задач, для программ управления экспериментом, мониторинга состояния пациентов.

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

Язык Форт иногда называют форт-системой, так как он содержит программы для работы с внешними устройствами, файлами, средства обработки прерываний, редактор и т.д.. Преимущество Форта заключается прежде всего в скорости написания и отладки программ, а также в их компактности. Если программу на Фортране или Паскале можно написать и отладить за неделю, то такую же программу на Форте за несколько часов. По сравнению с Бейсиком и некоторыми другими интерпретаторами Форт позволяет составить программу в несколько раз более быстродействующую. Он проигрывает Ассемблеру по скорости исполнения программы не более чем в 1.5-2 раза. Применение же форт-ассемблера позволяет получить еще больший выигрыш в быстродействии.

Экономное использование оперативной памяти ЭВМ и внешней памяти (диска), возможность автономного функционирования (в отсутствие операционной системы), интерактивный характер делают Форт особенно привлекательным в небольших автоматизированных системах измерения и контроля, хотя известны случаи использования Форта на ЕС ЭВМ для организации сложных вычислительных процесс сов [36]. Хорошо написанная программа на Форте занимает в памяти меньше места, чем аналогичная, составленная на Ассемблере (здесь не учитывается место, занимаемое процедурами базового словаря Форта).

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

Какие же особенности обеспечили Форту шанс выжить в конкурентной борьбе с другими системами ?

Для Форта, включая программы управления терминалом и диском, требуется 5-8 Кбайт оперативной памяти, а для Паскаля 48 Кбайт (здесь, правда, не учитывается место, занимаемое операционной системой). С учетом этого выигрыш по памяти оказывается существенно больше. При необходимости базовый словарь Форта может быть сокращен до 1 Кбайт. Программа на Форте может быть исполнена сразу после написания, так как не требует редактора связей.

Форт допускает рекурсию, т.е. программа может обращаться к самой себе (что недопустимо в Фортране).

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

При работе с форт-ассемблером исполняемая программа практически идентична программе, написанной в машинных кодах, но программист избавлен от длительной трансляции и редактирования связей (программа сразу готова к исполнению). Проигрыш по памяти и скорости исполнения программы в этом случае не превышает 20-30%.

Список операторов Форта открыт для пользователя и может быть расширен по его



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15]