«Home»

Урок № 1.

Введение

 

            С чего начать?  Естественно, для того чтобы приступить к изучению Forth, Вам в первую очередь потребуется  транслятор, я работаю с SP-Forth (разработчик – Андрей Черезов), который Вы можете скачать здесь. Существуют и другие трансляторы языка Форт, но здесь я не буду их рассматривать, поскольку этот сайт является учебником, помогающим освоить основы языка, а не претендующим на полноту изложения информации обозрением. Более подробную информацию Вы сможете найти здесь  и именно отсюда я рекомендую начинать навигацию по Форт – ресурсам СНГ.

               

                Теперь, когда Вы установили SP-Forth на своем компьютере, можно приступать к написанию традиционной для начинающих программы “Hello world”. Мы тоже не будем отступать от этого правила, тем более что на этом простом примере можно отследить несколько основных принципов изучаемого нами языка программирования. (Этот пример предоставлен мне Константином Сташкевичем (mldbyka))

 

            Итак, приступим:

 

            Откройте файл spf*.exe и введите следующий код[1]

 

\ символ \ в Форте является комментарием, т.е. строка до символов CR LF компилятор

\ считает как комментарий

\ (  ) - тоже комментарий, но тут комментарием являются все символы находящиеся

\ внутри этих символов

\  Одним из главных терминов языка Форт является «слово»

\ новое слово создаётся с помощью слова : (двоеточие) Слово ограниченное

\ пробелами следующее за двоеточием является новым в нашем случае это Hello_oleg

\ слово ; (точка с запятой) заканчивает созданное слово

\ Регистр букв имеет значение, т.е. слово Hello_world и слово Hello_World - два совершенно

\ разных слова

 

: Hello_world  ( --> )
    S" Hello World"  \ на стеке addr u, где addr - адрес, по которому находится строка
                                    \ u - длина строки

\ Слово S" работает следующим образом:

\ выделяет память определённого размера

\ читает все символы после пробела и заносит их в выделенную память до тех пор, пока не    

 

\ найдёт символ " или пока не закончится строка, т.е. до символов cr lf (13 10 )

\ после этого оно возвращает на стек адрес расположения данной строки в памяти

\ и длину выделенного блока.

 

           

    TYPE         \ слово TYPE берёт со стека эти два параметра и выводит строку на
                       \ экран
    KEY           \ подождать нажатия кнопки на клавиатуре
    DROP       \ удалить со стека код нажатой клавиши возвращенный, словом KEY
                       \ и автоматически завершить работу программы
;

 

 TRUE  TO ?CONSOLE    \ включить возможность загрузки консоли
 ' Hello_
world DUP MAINX ! TO <MAIN> \ слово Hello_world использовать как основное
 S" hello.exe" SAVE \ создает исполняемый файл.

 

                Теперь запустите программу “hello.exe” на исполнение.

                Вот Вами и написана первая программа на языке Форт!

               

                А можно и намного проще:

: Hw ." Hello World" ; \ Слово .” выводит на экран

 Hw  

 

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

Для этого Вам придется создать текстовый файл в кодировке ASCII и поместить его в созданную Вами директорию «myforth». В этом случае Вы сможете запускать программы на исполнение следующим образом:

Как компилировать и запускать примеры:[2]

Из основного каталога (где spf370.exe) запустить,

например:

spf370.exe myforth\hello.f[3]

spf370.exe myforth\hello.txt 

 

                Форт – библиотеки служат для объединения слов в группы:

 

Как подключить библиотеку:

 

forth.fll \ подключить библиотеку forth.fll

: New_word

." hello" \ вывести на экран hello

;

 

Вся прелесть исходников в том что любой может посмотреть исходник и изменить его так как ему нужно а не заниматься написанием собственного слова.[4]

               

                Отсюда Вы сможете взять исходники  hello.spf и hw.spf

 

                Теперь можно перейти ко второму уроку: «Форт – что это такое?»

           

           

 

 

 

           

 



[1]Код выделен красным, текст примечаний можно опустить.

[2] Комментарий Андрея Черезова (см. *\samples\readme_text.txt) в той директории на Вашем винчестере, куда распакован SP-Forth.

[3] Для библиотек и программ Форт используются произвольные расширения, но наиболее часто употребимыми являются *.spf (для текстов программ), *.f, *.fll (для файлов библиотек)

[4] Комментарий Константина Сташкевича.