Вопросы по теме 'gforth'
Как мне получить доступ к имени программы /argv[0] в Forth?
документация Gforth скажем, чтобы получить доступ к аргументам, вызвав next-arg , но это опускает имя программы, которое будет напечатано на C-подобном языке.
Поскольку argv[0] автоматически удаляется из вектора аргументов в Forth, есть ли...
289 просмотров
schedule
26.06.2023
Как включить пробелы в имена файлов в GForth (GNU Forth)?
Когда я попытался включить файл в Unix (и Windows), он не будет работать, если он содержит пробелы. Например, они не будут работать:
include ~/Space Folder/test.fs
include ~/Space\ Folder/test.fs
include "~/Space Folder/test.fs"
include "~/Space\...
203 просмотров
schedule
29.12.2022
Сравнение макросов Common Lisp и возможностей метапрограммирования Forth
Каждый программист на Common Lisp знает, что макросы - мощный инструмент. Макросы Common Lisp использовались, среди прочего, для добавления объектной ориентации поверх Lisp без изменения спецификации языка; макросы чтения - это еще одна...
2722 просмотров
schedule
09.07.2022
Отлов исключений из цикла
Я пытаюсь написать слово Forth, которое удалит все элементы в стеке. Я использую довольно тупой метод, запуская бесконечный цикл с помощью «drop» и перехватывая ошибку, когда «drop» терпит неудачу, потому что стек пуст.
Мои слова определяются так:...
158 просмотров
schedule
06.07.2023
Почему я не могу получить ответ с плавающей запятой в Gforth?
Я слышал, что вам просто нужно поставить F перед оператором, а затем поставить (.) в конце, чтобы вычислить число с плавающей запятой, а затем отобразить его. Но это дало мне такой ответ:
2 3 F/ .
:8: Floating-point stack underflow
2 3...
352 просмотров
schedule
30.05.2024
Можно ли вызывать Windows API из Форта?
В C/C++ исполняемые файлы Windows связаны со статическими библиотеками, которые импортируют DLL-файлы, содержащие процедуры Windows API.
Но как нам получить доступ к этим процедурам из кода Forth (например, GForth)? Это вообще возможно?
Я знаю,...
970 просмотров
schedule
24.04.2022
Примеры слов компиляции пользовательского потока управления
Forth, как известно, позволяет пользователям изменять язык, определяя новые слова для потока управления (помимо тех, что указаны в стандарте: DO, LOOP, BEGIN, UNTIL, WHILE, REPEAT, LEAVE IF, THEN, ELSE, CASE, ENDCASE и т. д.).
Есть ли общие примеры...
390 просмотров
schedule
24.05.2023
Как прочитать необработанный код с веб-сайта в Gforth?
Я хотел бы слово, как
read-site ( add n buff max -- n flag )
где «добавить n» — это буфер имени сайта, «buff max» — это буфер, в который должен быть прочитан текст ASCII, «n» — это количество прочитанных байтов, а flag истинно, если...
272 просмотров
schedule
07.07.2023
ИСПОЛЬЗОВАНИЕ оператора IF с FORTH приводит к интерпретации слова, предназначенного только для компиляции.
Я читаю Начало Forth: 4. Решения , Решения... . Я могу бежать 42 42 = .
42 42 = ok
42 42 = . -1 ok
Как и ожидалось, я получаю -1 , что равно два комплимента за true . Однако, если я помещу 42 в стек и запущу
42 .s
42 = IF...
536 просмотров
schedule
14.06.2022
Арифметические операции с четвертым выражением
В Java можно сделать следующее:
int var = 5;
var += 2;
var -= 2;
var *= 2;
var /= 2;
Можно ли это сделать в Форте?
variable var
3 var !
1 var +! //Increment
Можно ли сделать другие подобные операции в Форте? Если нет, подскажите...
144 просмотров
schedule
17.07.2022
Форт-функции, подобные структурам
Я играю с Forth и пытаюсь понять, имеет ли он функциональную структуру. Я пытаюсь понять, что это происходит из опыта ООП.
Я видел, что у вас может быть что-то вроде:
: addition + . ;
4 2 addition 6 ok
Есть ли способ получить его, чтобы...
390 просмотров
schedule
27.07.2023
Есть ли в gforth возможности сетевых сокетов?
Часто при изучении языка я пишу какой-нибудь сервер. Есть ли у gforth возможность использовать сетевые сокеты?
Я ничего не вижу о сокетах в руководстве .
998 просмотров
schedule
23.07.2022
Что делает слово «тип»?
Учитывая следующую функцию (заимствовано из Rosetta Code )
: (echo) ( sock buf -- sock buf )
begin
cr ." waiting..."
2dup 2dup size read-socket nip
dup 0>
while
." got: " 2dup type ( <-- HERE )
rot write-socket...
92 просмотров
schedule
24.03.2023
Как включить библиотеку C в Forth
По умолчанию Forth имеет лишь небольшое количество рабочих библиотек, так что все приходится программировать с нуля. Причина в том, что виртуальная машина Forth на основе стека идентифицирует себя как тонкую систему.
Согласно руководству Gforth,...
519 просмотров
schedule
09.08.2022
Как сбросить слово в Форте?
Цель состоит в том, чтобы создать слово Forth в словаре, а затем распечатать содержимое памяти этого слова. Первый шаг прост. Слово : main создается, как описано в учебнике. После создания слова указатель словаря перемещается на следующую...
278 просмотров
schedule
10.08.2022
J1 Понимание программы Forth CPU
Я действительно чувствую, что трудно понять программирование процессора J1 Forth.
У меня есть базовое понимание Forth, но я не мог понять слова, определенные в J1 Forth-программировании, такие как d# и h#... и как это работает с периферийными...
225 просмотров
schedule
22.06.2022
Выполнение символа или строки в Форте, как если бы это было слово
Допустим, у меня где-то хранится s" Hello" . и я также определил : Hello something ; . Есть ли способ выполнить строку, как если бы это было слово?
Я читал документацию, но не нашел подходящей функциональности. Это может быть...
145 просмотров
schedule
22.12.2022
Gforth, FORGET и LIST слова, как в оригинальном Forth
Есть ли эквивалент forget слову Forth в Gforth?
Я видел про marker , но у него другое поведение. Кроме того, команда list , похоже, не дает листинга программы.
Я хотел бы просмотреть список программ в памяти, таких как старый list в BASIC -...
354 просмотров
schedule
22.11.2022
gforth: как проверить, что переменная установлена со значением arg
gforth : как проверить, установлена ли переменная
В настоящее время я устанавливаю переменную из командной строки, например:
: functionname
variable !
;
поэтому он получает свое значение от
gforth -e"5" myfile.fs
но...
44 просмотров
schedule
17.08.2023
Проблемы с установкой элементов массива в Forth
Я пишу код на Forth, который должен создать массив случайных чисел 12x12 от 1 до 8.
create big_array 144 allocate drop
: reset_array big_array 144 0 fill ;
reset_array
variable rnd here rnd !
: random rnd @ 31421 * 6927 + dup rnd ! ;
: choose...
79 просмотров
schedule
12.12.2022