Программист – Программирование на gforth (страница 3)
Win + R
, введите
cmd
и нажмите Enter;
– macOS/Linux: найдите «Терминал» в приложениях.
Введите команду:
gforth
Если установка прошла успешно, вы увидите приглашение системы:
Gforth 0.7.9, Copyright (C) 1995-2023 Free Software Foundation, Inc.
ok
Проверьте версию Gforth командой:
version .
Вы увидите номер версии, например: 0.7.9. 5. Выйдите из Gforth:
bye
5. Настройка окружения
Настройка истории команд
Gforth автоматически сохраняет историю команд в файл: * на Unix‑системах: ~/.gforth-history; * на Windows: в папке профиля пользователя.
Вы можете просмотреть путь к файлу истории командой:
history-file type
Настройка пути поиска файлов
Переменная окружения GFORTHPATH задаёт пути, по которым Gforth ищет файлы с кодом. По умолчанию это текущая директория и стандартные пути установки.
Чтобы добавить свой путь, установите переменную: * Windows (в командной строке):
set GFORTHPATH=C:\my\gforth\code;%GFORTHPATH%
• macOS/Linux (в терминале):
export GFORTHPATH="/home/user/mygforth:$GFORTHPATH"
Использование редактора
Для удобной работы с кодом рекомендуется использовать текстовый редактор с подсветкой синтаксиса Forth. Подходящие варианты: * VS Code с плагином Forth; * Emacs с режимом Forth (встроен); * Vim с настройками для Forth.
6. Первый запуск и интерактивный режим
Запустим Gforth и выполним несколько команд в интерактивном режиме:
Запустите Gforth командой gforth. Вы увидите приглашение ok.
Выполните простые арифметические операции:
5 10 + .
Ожидаемый вывод: 15 ok. 3. Проверьте содержимое стека командой .S (выводит элементы стека без удаления):
.S
Вывод: <0> ok (стек пуст после вывода числа). 4. Определите простое слово (функцию):
: square ( n -- n^2 ) dup * ;
Это слово возводит число в квадрат. Разберём синтаксис: * : — начало определения слова; * square — имя нового слова; * ( n -- n^2 ) — комментарий стекового эффекта (берёт число n, возвращает n^2); * dup — дублирует верхний элемент стека; * * — умножает два верхних элемента; * ; — конец определения. 5. Используйте новое слово:
3 square .
Ожидаемый вывод: 9 ok. 6. Выйдите из Gforth командой bye.
7. Сохранение кода в файл
Создайте файл с кодом, например hello.fs, и добавьте в него:
: hello ." Привет, мир!" cr ;
Запустите Gforth и загрузите файл:
include hello.fs
Выполните новое слово:
hello
Вывод: Привет, мир!.
Упражнение для закрепления
Установите Gforth на вашу ОС, следуя инструкциям выше.
Запустите Gforth в терминале и проверьте версию.
Определите слово cube, которое возводит число в куб (используйте dup дважды и умножение).
Протестируйте cube на числе 3 (ожидаемый результат: 27).
Сохраните определение cube в файл math.fs и загрузите его в новом сеансе Gforth.
Подсказка: Определение cube может выглядеть так:
: cube ( n -- n^3 ) dup dup * * ;
Если у вас возникли трудности на каком‑либо этапе, проверьте правильность ввода команд и пути к файлам. При необходимости обратитесь к разделу «Частые ошибки» в конце книги.
Глава 3. Основы синтаксиса Gforth
В этой главе разберём базовые элементы синтаксиса Gforth: структуру слов, работу со стеком, арифметические операции, комментарии и определение собственных слов.
1. Структура слова в Gforth
Слово (word) — основная единица кода в Forth. Это может быть: * оператор (+, DROP); * функция; * переменная (VARIABLE); * константа (CONSTANT).
Слова разделяются пробелами. Gforth не чувствителен к регистру: + и + — одно и то же.
2. Работа со стеком
Стек — центральная концепция Forth. Основные команды для работы со стеком:
•
DUP