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


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




[5]

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

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

2.3.5 Модульность

Существенное движение вперед произошло с внедрением "структурированного программирования", методологии, основанной на том, что, как показал опыт, большие задачи проще решаются, если рассматривать их как совокупность меньших задач [1]. Каждый такой кусочек называется модулем. Программы состоят из модулей внутри других модулей.

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

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

Рис.1-2. Проект структурированной программы, [skip]

3 История языка

В отличие от других языков программирования Форт не является плодом коллективного труда какого-либо комитета или коллектива ученых, он родился в голове одного человека - Чарльза X. Мура. В начале 60-х годов Мура стало все больше не удовлетворять время и затраты труда, требовавшиеся для разработки программ на существовавших тогда ЭВМ. В течение нескольких лет он создал основы прототипа языка Форт, пользуясь для этого такими языками, как Алгол, Кобол, PL/I и ассемблер для IBM/360. Мур дал своему языку название FORTH, считая, что это будет язык для ЭВМ четвертого (fourth) поколения, однако ему приходилось работать на ЭВМ, которая допускала только пять букв названия, этим и объясняется такое необычное имя языка Форт. В 1971 г. Мура пригласили на работу в Национальную Радиоастрономическую обсерваторию для разработки программ сбора и обработки данных, получаемых с радиотелескопа. В процессе этой работы и появилась первая современная реализация языка Форт (а вторым в мире программистом на этом языке стала сотрудница Мура Элизабет Ратер), который был принят в качестве основного языка программирования в Американском астрономическом обществе. К 1973 г. потребность в языке стала настолько большой, что Мур и Ратер создали новую фирму Forth Inc., президентом которой стала Э. Ратер. Фирма разработала несколько версий языка Форт для различных марок ЭВМ, мини- и микро-ЭВМ, в том числе наиболее современную версию под названием PolyFORTH. По мнению специалистов фирмы Forth Inc., наиболее важные применения языка Форт в настоящее время связаны с работой программно-управляемого оборудования в реальном масштабе времени, хотя еще в 1974 г. фирма разработала на языке Форт административную систему для управления

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


базой данных объемом 300 млн. бит информации. Сейчас фирма Forth Inc. сосредоточила свои усилия на обработке изображений, робототехнике и управлении сервоприводами. Недавно появились программы для таких применений, как автоматизация проверки накопителей на гибких магнитных дисках, для первого прототипа коммерческого устройства по электрофорезному разделению биологических материалов на космическом корабле многоразового использования, для сервосистем роботов, управляемых голосом, а также для контроля почти всех операций в новом главном аэропорте Саудовской Аравии.

Однако популярностью язык Форт обязан не только своим авторам Муру и Ратер и фирме Forth Inc.. Базовый язык Форт общедоступен и бесплатно распространяется заинтересованной группой FORTH Interest Groop (FIG), множество фирм поставляет различные по своим возможностям коммерческие версии языка, но еще важнее то, что организована группа по стандартизации языка Форт для того, чтобы написанные на нем программы могли бы работать на различных компьютерах с минимальными затратами на их адаптацию. Группа FIG была создана в конце 70-х гг. активными программистами и почитателями языка, которые хотели сделать его еще более популярным. Существует множество организаций, в том числе несколько отделений этой группы в США и других странах мира, однако основная деятельность группы направлена на распространение базового диалекта языка, FIGFORTH (которая реализована на многих мини- и микроЭВМ) и издание журнала FORTH Dimensions, выходящего раз в два месяца. Содержание журнала показывает, что редакция проявляет интерес как к модификации и расширению самого языка, так и к решению прикладных задач. Кроме издания журнала и распространения языка каждый год, начиная с 1980-го, группа FIG созывает конференцию под названием FORTH Modification Laboratory (FORML), целью которой является встреча пользователей и системных программистов для обсуждения вопросов дальнейшего развития языка. Кроме этой конференции Институт прикладных исследований фирмы Applied FORTH Research ежегодно организует в Рочестере (США) конференцию по применению Форта (Rochester FORTH Application Conference). Институт публикует труды конференции и, кроме того, профессиональный журнал Journal of FORTH Application and Research, содержащий рефераты, библиографические ссылки на материалы по языку Форт и материалы студенческих исследований.

Группа по стандартизации первоначально возникла в рамках Международного объединения астрономов. На встрече в Национальной обсерватории Китта (США) в мае 1977 г. был выработан глоссарий языка Форт под шифром AST.01, а после нескольких встреч в Европе, наконец, в феврале 1978 г. в Утрехте (Голландия) был разработан стандарт 1977 г. (FORTH-77), адресованный прежде всего пользователям микроЭВМ. В октябре 1979 г. встреча на острове Каталина закончилась разработкой стандарта FORTH-79, который распространяется на ЭВМ всех типов. Осенью 1983 г. состоялась встреча по разработке стандарта 1983 г, утвержденного в 1984 г, как FORTH-83. Стандарт Форт-83 отличается от стандарта Форт-79 некоторыми деталями, но не отличается от него по существу. Некоторые специалисты, в том числе и поставщики коммерческих версий языка, считают, что изменения 1983 г. в лучшем случае не привели к совершенствованию языка, в худшем же - внесли некоторую путаницу, поэтому как Форт-83, так и Форт-79 имеют равное распространение, и мы рассматриваем здесь обе версии. Несмотря на то, что некоторые изменения могут привести к смешению обеих версий, были все же некоторые разумные, хотя и не очень важные причины внесения этих различий.

С момента издания книги был выпущен новый стандарт ANS FORTH 94, и теперь ситуация аналогична описанной выше - существуют множество форт-систем, полностью или частично соответствующих стандарту 83 или 94. В новом стандарте было добавлено множество расширений базового словаря (плавающая точка, файлы, динамическая память и т.д.), но до сих пор есть множество фортеров, которых не устраивают какие-то особенности нового стандарта.


Целью стандартизации было создание единого набора слов (глоссария), чтобы можно было легко переносить программы с одного компьютера на другой (особенно если они сильно отличаются по ОС и железу, например ПК на интеловских процессорах и ZX Spectrum). Стандарт определяет минимальный набор обязательных слов и необязательный набор расширяющих слов, например ассемблер и слова из контролируемого списка, выполняющие точно определенные функции. К сожалению, в стандарте нет никаких указаний на такие важные компоненты, как числа, символьные строки, на организацию файлов данных (см. замечание выше). Концепции группы стандартизаторов частично были приведены в статье ее председателя У. Рэгсдейла: "Самой трудной задачей разработки языка является принятие решения о том, что следует отбросить. Стандартизаторы сталкиваются с задачей установления равновесия между практически полезными функциями и простейшими функциями, обеспечивающими пользователю возможность дополнить программные средства, чтобы решать прикладные задачи". В результате получилось так, что во всех поставляемых версиях Форта возникает необходимость в добавлении собственных функционально важных слов, что противоречит идее свободной переносимости программ между различными компьютерами.

Почему же все-таки в Форт не включены слова для выполнения функций, безусловно предусмотренных в других языках программирования ? Частично это объясняется традиционными применениями языка, отчасти интересами группы FIG и многочисленных пользователей языка Форт, в особенности любителей, и частично возражениями группы по стандартизации. Во-первых, традиционной областью применения языка было управление установками в реальном масштабе времени, где Форт подходит наилучшим образом. Операции со строковыми данными, ввод и вывод чисел, работа с файлами, связь с операционной системой и другие качества здесь не столь важны, как при решении более практических задач, например при проведении инженерных расчетов или в деловой сфере. Во-вторых, основной задачей группы FIG было распространение простейшей версии языка FIGFORTH и, как отмечается в журнале FORTH Dimensions, большинство членов FIG проявляет интерес скорее к модификациям языка, чем к применению его в повседневной жизни, и поэтому не имеют побудительного толчка к снабжению Форта такими функциями. Наконец, группа стандартизации предоставляет пользователю возможность самому выполнить разработку дополнительных инструментальных средств, сведя к минимуму набор стандартных слов. При этом бремя разработки возлагается на пользователей и поставщиков промышленных версий языка, лишь в последние три года некоторые необходимые функции были введены в поставляемых реализациях Форта.

4 Основы языка

4.1 О языке программирования Форт

Если вы занимаетесь такими вещами как разработка различных цифровых систем13 и программного обеспечения для них, вы можете столкнуться с ситуацией, когда вас не будет устраивать по каким-либо причинам обычно используемый в таких случаях инструментарий14. Этими причинами может оказаться дороговизна инструментария, его неудобство, отсутствие каких-либо утилит, или в особых случаях когда вы сами сляпали нечто, и для этой железки не оказалось готовой ОС и библиотек.

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

13встраиваемые контроллеры для управления технологическим или лабораторным оборудованием 14ассемблер, компилятор С, линкер, симулятор, встраиваемые ОС

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



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