Публикации по теме 'forth'


Начиная с Forth: расширение компилятора
В предыдущем посте я написал о своем прогрессе в 10-й главе Начала вперед Лео Броди. Сегодня мы поднимемся на главу вверх и поговорим об определении и составлении слов. Вот мои ответы на упражнения. 11.1: В gforth s” помещает в стек два значения: адрес строки и количество содержащихся в ней символов, количество. Согласно документации gforth , в стандартных программах следует предполагать, что строка живет только до следующего s" . В вот почему мы должны извлекать..

Вопросы по теме 'forth'

Многоядерный Форт, есть такой?
Существует ли такая реализация Форта, которая позволяет в полной мере использовать преимущества многоядерных процессоров?
3602 просмотров
schedule 12.01.2023

Операции возврата стека генерируют неверный адрес памяти в Gforth 0.7
Я изучаю Форт здесь, и я добрался до операций возврата стека. Итак, используя консоль в Ubuntu 11.04 x64, я пытаюсь получить TOS в стеке возврата, но это происходит: 1 2 3 4 5 ok >r :36: Invalid memory address >R>>><<<...
510 просмотров
schedule 24.05.2023

Как мне получить доступ к имени программы /argv[0] в Forth?
документация Gforth скажем, чтобы получить доступ к аргументам, вызвав next-arg , но это опускает имя программы, которое будет напечатано на C-подобном языке. Поскольку argv[0] автоматически удаляется из вектора аргументов в Forth, есть ли...
289 просмотров
schedule 26.06.2023

Алгоритмический анализ сложности: практическое использование метода обычных операций Кнута (oops) и операций с памятью (mems)
При реализации большинства алгоритмов (сортировки, поиска, обхода графа и т. д.) часто приходится идти на компромисс, сокращая доступ к памяти за счет дополнительных обычных операций. У Кнута есть полезный метод для сравнения сложности различных...
426 просмотров

Как включить пробелы в имена файлов в 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

Форт как интерактивный тестер программ на C
Я хочу использовать интерактивный язык для тестирования некоторого кода C из устаревшего проекта. Я немного знаю Форт, но никогда не использовал его в реальном проекте. Я смотрю на pForth прямо сейчас. Разумно ли использовать интерактивный...
880 просмотров
schedule 01.02.2023

Как сравнить две строки в Forth?
И могу ли я сделать это в операторе if или мне следует создать вспомогательную логическую переменную? Вот код, который у меня есть до сих пор. Кстати, IOX@ должен получать ввод от пользователя. : var compile: VARIABLE complile: ; : lock...
1224 просмотров
schedule 22.04.2023

Какое наиболее распространенное расширение файла исходного кода Forth?
Я видел, как люди сохраняли файлы исходного кода Forth с расширениями .4th , .fth , .frt и .f . Какое расширение имени файла с исходным кодом Forth является наиболее распространенным?
2318 просмотров
schedule 11.10.2023

Реализовать SWAP в Forth
Я видел это в интервью с Чаком Муром , он говорит: Слова, которые манипулируют этим стеком, — это DUP, DROP и OVER период. Нет, ну SWAP очень удобен и хочется, но это не машинная инструкция. Итак, я попытался реализовать SWAP только с...
1124 просмотров
schedule 08.03.2023

Сравнение макросов Common Lisp и возможностей метапрограммирования Forth
Каждый программист на Common Lisp знает, что макросы - мощный инструмент. Макросы Common Lisp использовались, среди прочего, для добавления объектной ориентации поверх Lisp без изменения спецификации языка; макросы чтения - это еще одна...
2722 просмотров

Четвертое - преобразовать код ASCII в char
Я пытаюсь написать программу на Tachyon Forth для микроконтроллера Parallax Propeller, которая считывает данные с последовательного порта. Слово SERIN возвращает данные в виде числа: ДЕСЯТИЧНОЕ число ok 57600 SERBAUD ok 31 SERIN . 36 хорошо...
507 просмотров
schedule 20.07.2023

Отлов исключений из цикла
Я пытаюсь написать слово Forth, которое удалит все элементы в стеке. Я использую довольно тупой метод, запуская бесконечный цикл с помощью «drop» и перехватывая ошибку, когда «drop» терпит неудачу, потому что стек пуст. Мои слова определяются так:...
158 просмотров
schedule 06.07.2023

Можно ли использовать память словаря без «выделения»?
Я делаю упражнение по программированию, в котором пытаюсь сделать одно и то же по-разному. (Я добавляю два трехэлементных вектора вместе в Forth). В одной из своих ревизий я использовал стек возврата для хранения временных значений (поэтому я...
171 просмотров
schedule 12.05.2023

Почему я не могу получить ответ с плавающей запятой в Gforth?
Я слышал, что вам просто нужно поставить F перед оператором, а затем поставить (.) в конце, чтобы вычислить число с плавающей запятой, а затем отобразить его. Но это дало мне такой ответ: 2 3 F/ . :8: Floating-point stack underflow 2 3...
352 просмотров
schedule 30.05.2024

В Forth, сколько символов читает "ожидание"?
спецификация Forth-83 определяет слово expect следующим образом: EXPECT addr +n -- M,83 Receive characters and store each into memory. The transfer begins at addr...
222 просмотров
schedule 16.10.2023

В-четвертых: ОТЛОЖИТЬ, как это работает?
Набор тестов ANS Forth Джона Хейса содержит следующее определение: : IFFLOORED [ -3 2 / -2 = INVERT ] LITERAL IF POSTPONE \ THEN ; Затем это используется для условного определения различных слов в зависимости от того, используем ли мы...
1302 просмотров
schedule 09.09.2022

Можно ли вызывать Windows API из Форта?
В C/C++ исполняемые файлы Windows связаны со статическими библиотеками, которые импортируют DLL-файлы, содержащие процедуры Windows API. Но как нам получить доступ к этим процедурам из кода Forth (например, GForth)? Это вообще возможно? Я знаю,...
970 просмотров
schedule 24.04.2022

Непрерывная память в массивах Forth?
Я знаю, что variable test 5 cells allot не гарантирует выделение непрерывного блока памяти, в то время как create test 1 , 2 , 3 , 4 , 5 , обязательно создаст непрерывный блок памяти. variable определяется как : variable create 0 , ;...
276 просмотров
schedule 25.02.2023

Форт и флаги процессора
Почему Форт не использует флаги процессора для условного выполнения? Вместо этого результат сравнения помещается в стек параметров. Это потому, что внутренний цикл интерпретатора может изменять флаги при переходе к следующей инструкции? Или это...
235 просмотров
schedule 27.06.2023

Примеры слов компиляции пользовательского потока управления
Forth, как известно, позволяет пользователям изменять язык, определяя новые слова для потока управления (помимо тех, что указаны в стандарте: DO, LOOP, BEGIN, UNTIL, WHILE, REPEAT, LEAVE IF, THEN, ELSE, CASE, ENDCASE и т. д.). Есть ли общие примеры...
390 просмотров