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


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




[2]

усмотрению. Это касается самого Форта, форт-ассемблера, редактора и, разумеется, пакетов прикладных программ.

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

К недостаткам Форта относят:

•отсутствие в базовой версии операторов для работы с числами с плавающей точкой;

•недостаточные по современным требованиям средства диагностики ошибок (хотя это и компенсируется отчасти другими возможностями, в частности доступностью этих средств для пользователя);

менение стеков;

нен в интерпретаторах для персональных ЭВМ).

Простота расширения списка операторов и легкость модификации интерпретатора сводят эти недостатки к минимуму. Удобная мнемоника и хорошая адаптация ко вкусам программиста могут сделать работу на Форте легким и даже приятным занятием. Далее будет рассматриваться в основном версия FIG-FORTH, как наиболее распространенная.

форт-интерпретатор, как и многие другие, имеет несколько уровней:

могут загружаться по мере необходимости.

Принадлежность Форта четвертому поколению часто вызывает споры. С одной стороны, он содержит структурные операторы типа DO...LOOP, BEGIN...UNTIL и т.д., с другой - допускает работу с адресами, что характерно для языков низкого уровня. Главное - это баланс достоинств и недостатков, а этот баланс, на мой взгляд, благоприятен для Форта.

В США создано общество пользователей Форта (FORTH Interest Group, FIG) и фирма FORTH Inc. - главный поставщик программных продуктов Форт, в том числе многопользовательской версии PolyFORTH-2.

Существует ряд стандартов: FORTH-79, FORTH-83 [18], FIG [17], MMS, MVP [25, 26]. В какой-то мере этому способствует простота их создания, ведь мало кто решится переделывать или расширять базовый словарь операторов Фортрана просто из-за чудовищной трудоемкости. Наметилась тенденция к созданию процессоров, ориентированных на Форт (фирмы Harris, Silicon Composers, FORTH Inc. США и Институт кибернетики АН ЭССР).

Существуют версии языка Форт для отечественных ЭВМ СМ 1420, "Электроника-60", СМ1810, ДВК, персональных ЭВМ ЕС1840, ЕС1841, ЕС 1842, микропроцессоров К580 и даже ЭВМ серии ЕС.

1.6 © ИТФ Технофорт

Язык программирования Форт (от английского FORTH) был изобретен Чарльзом Муром в 70-х годах для создания программного обеспечения управляющих устройств. В настоящее время Форт широко используется при решении следующих задач:

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


•управление станками, роботами, медицинскими приборами;

•разработка трансляторов и операционных систем; •

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

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

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

форт-система, в основном, написана на самом языке Форт. Она занимает от 8 до 16 Кбайт в зависимости от предоставляемых возможностей (таких, как встроенный ассемблер, экранный редактор, взаимодействие с файловой системой).

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

форт-система - автономная система. Она может работать как на "голом"оборудовании, так и под управлением операционной системы (например, СР/М, MS-DOS).

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

2 Компьютер для начинающих

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

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

В даном разделе мы проследим историю инструментария и технологий, предназначенных для написания более элегантных программ.

2.1 Что такое машинный язык ?

Чтобы задать вопрос, почему Форт работает не так, как другие языки программирования, надо сначала спросить, а что такое язык ЭВМ ? Компьютер - это машина, которая

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


может производить включение и выключение переключающих устройств9 с очень большой скоростью (миллион или более раз в секунду). Каждое переключающее устройство может представлять "1"(включено) или "О"(выключено), большая часть этих переключающих устройств находится в памяти ЭВМ. Компьютер может хранить числа, буквы и другие данные в памяти, поскольку он обладает способностью переводить их в последовательность из единиц и нулей (включенных и выключенных состояний переключающих устройств). Так, например, буква R обычно хранится в ЭВМ в виде 01010010, буква S - в виде 0101011, а буква г - как 01110010. Но еще важнее, что и инструкции, которые указывают компьютеру, что он должен делать, также хранятся в памяти в виде последовательности из единиц и нулей. Центральное процессорное устройство (ЦПУ) считывает эти последовательности, определяя, что делать. Эта последовательность единиц и нулей, на которую отзывается центральный процессор, представляет собой программу самого низкого уровня, и фактически только такую программу процессор может непосредственно исполнять.

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

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

Язык ассемблера все же неудобен для решения большинства практических задач, поэтому в основном его используют для написания других языков программирования, чтобы еще на одну ступень подняться над машинным языком ЦПУ. Языки такого рода называют языками программирования высокого уровня. К ним относятся Фортран, Бейсик, Кобол, АПЛ, Паскаль и тот, который нас здесь больше всего интересует - Форт. Они преобразуют понятные человеку символы (например, * - обозначение операции умножения двух чисел) в последовательность понятных компьютеру инструкций из единиц и нулей. Следовательно, языки высокого уровня выполняют роль переводчиков между человеком и ЭВМ.

Языки высокого уровня традиционно разделяются на два класса: интерпретирующие и компилирующие. Компилирующим языком называют такой язык, который целиком пре-

9 триггеров



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