Одной из причин того, что
Одной из причин того, что Форт так легко взаимодействует с пользователем, является как раз то, что программа на нем может быть легко написана (и скомпилирована) в виде набора небольших фрагментов, каждый из которых может быть опробован (и исполнен) немедленно. Именно поэтому Форт так легко изучать экспериментально.
Хотя TIMES2 в буквальном смысле представляет собой настоящую программу, она настолько незатейлива, что вы вряд ли написали бы что-нибудь подобное. Давайте сделаем немного более сложную программу. Сможете ли вы догадаться, что делает следующая программа
: SQUARE DUP * ;
Слово DUP делает копию (дубликат) числа, находящегося в стеке. Предположим, что мы ввели
6 SQUARE .
результатом этого является
36 ok
Слово SQUARE делает копию числа 6 в стеке, оставляя 6 6, а затем перемножает эти два одинаковых числа, получая 36. Очевидно, слово . (точка) выводит результат. Теперь мы можем определить
: CUBE DUP SQUARE * :
для вычисления куба числа. Если вы знакомы с другими языками программирования, то заметите, что наши слова похожи на подпрограммы и, возможно, запротестуете против написания таких коротких подпрограмм. Например, вы бы предпочли определить слово CUBE иначе :
: CUBE DUP DUP * * :
но на языке Форт дополнительные затраты времени исполнения и компьютерной памяти будут незначительны, если вы поделите длинные определения на более короткие (это называется делением программы на части), такие программы проще будет понимать и переделывать. Определения нужно стремиться делать короткими. Приведем полный листинг программы :
: SQUARE ( n1 - n2: квадрат числа ) DUP * ; : CUBE (n1 - n2: куб числа) DUP SQUARE * ;
Мы добавили комментарии, чтобы программа стала более понятной. Любые слова в Форте, заключенные в круглые скобки (с обязательным пробелом после открывающей скобки), игнорируются, в них заключаются комментарии для программиста. В начале комментария в соответствии с принятым для Форта соглашением помещается информация о состоянии стека в виде ( n1 - n2 ).Комментарий о стеке показывает, что было в стеке до исполнения и что стало после исполнения данного слова. Так, например, комментарий о стеке для * выглядит так: ( n1 n2 - n3). Комментарий о стеке необходим для всех, кроме самых коротких слов. Без него очень легко забыть, как работает программа.
В следующем разделе мы напишем нетривиальную программу, которая будет строить на экране столбиковую диаграмму, или так называемую гистограмму, но сначала вам нужно, чтобы идеи, приведенные в этом разделе, усвоились, а для этого проделайте несколько упражнений.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий