Forth - это динамический процедурный язык программирования на основе стека, разработанный Чарльзом Муром.
1 ответ

Замените двухпортовую ОЗУ двумя однопортовыми ОЗУ для процессора J1 Forth на ПЛИС Altera

Замечательный процессор J1 Forth ( исходный код Verilog) предназначен для работы на Xilinx FPGA. Я пытался перенести его на ПЛИС Altera Cyclone II. У меня проблемы с настройкой мегафункции двухпортовой оперативной памяти Altera. Судя по коду Verilog…
14 окт '13 в 20:02
2 ответа

Как мне реализовать Y-комбинатор в Forth?

На Rosetta Code нет реализации Y-комбинатора в Forth. Как я могу это сделать? Как мне использовать Y-комбинатор в Forth? И почему?
04 фев '16 в 11:30
0 ответов

wxPython wx.stc.StyledTextCtrl без учета регистра

Я использую wx.stc.StyledTextCtrl в и приложение, где я использую его, чтобы выделить Forth: self.styled_text_ctrl = wx.stc.StyledTextCtrl(self, wx.ID_ANY) self.styled_text_ctrl.SetLexer(wx.stc.STC_LEX_FORTH) self.styled_text_ctrl.SetMarginType(0, w…
04 сен '14 в 17:29
2 ответа

Далее параллельная обработка

Я написал фрактальный плоттер Форт-Мандельброта и столько же технических упражнений, сколько я хотел бы попытаться ускорить с помощью параллельной обработки. В настоящее время я был бы счастлив, если бы я мог просто использовать оба своих ядра (одно…
2 ответа

Получить текущий размер стека в FORTH

Как я могу получить количество элементов, которые в настоящее время хранятся в стеке в Forth? Я спрашиваю об этом, потому что я хочу сделать функцию, которая печатает все элементы стека, что-то вроде: : pop_all 0 do . loop ; 1 5 10 4 5 5 pop_all Но …
03 сен '13 в 13:17
1 ответ

Hofstadter мужской-женский последовательности в Форт

Я пытаюсь написать последовательность Hofstadter в Forth, без использования рекурсии. Я чувствую, что я очень близко, но я продолжаю получать ошибку, которая говорит мне, Ошибка типа: x[m[w]] не является функцией когда я запускаю его с 10 MALE, Как …
07 май '14 в 05:22
3 ответа

Многобайтовое хранение и выборка в Forth - как реализовать?

При использовании больших массивов было бы неплохо иметь возможность настроить массив для определенного количества байтов на число. В основном, я хочу, чтобы быстрые подпрограммы считывали такие скорректированные многобайтовые числа в синглы в стеке…
28 ноя '15 в 00:08
2 ответа

Освободить память, ранее выделенную для переменной (используя create)

Я читаю руководство Gforth по распределению / освобождению памяти, и это то, что я не могу понять. Предположим, я выделил кусок памяти для хранения четырех целых чисел, как это: create foo 1 , 2 , 3 , 4 , Тогда, может быть, я выделил больше памяти и…
06 авг '13 в 10:15
0 ответов

Смена фокуса обратно в окно консоли

Мои знания в области программирования Windows близки к нулю. Но теперь я сделал программу Forth, запущенную из консоли в Windows, которая открыла примитивное окно для графики. Проблема в том, что я хочу управлять программой, нажимая клавиши, но когд…
21 дек '16 в 21:19
3 ответа

Как явно вставить / выдать в стек возврата C?

Есть ли способ явно отправить / вытолкнуть данные в стек возврата C? (В идеале в стандарте C, но было бы хорошо и решение GCC.) Я реализую Forth в C, на микроконтроллере, который очень ограничен в оперативной памяти (кбайт, а не мегабайт). Я выделяю…
01 фев '18 в 04:27
2 ответа

Форт и Флаги процессора

Почему Forth не использует флаги процессора для условного выполнения? Вместо этого результат сравнения помещается в стек параметров. Это потому, что внутренний цикл интерпретатора может изменять флаги при переходе к следующей инструкции? Или это про…
26 апр '16 в 14:24
7 ответов

С чего начать портирование?

Я рассчитываю разработать новую систему Forth, нацеленную на то, чтобы упростить разработку игр на одной или, возможно, нескольких ретро консольных платформах. Я новичок в Forth, и мне нужна ваша помощь, чтобы решить, с какой базы кода Forth начать …
5 ответов

Написание графического интерфейса для приложения Forth

Мой друг попросил меня написать простой графический интерфейс, содержащий несколько диаграмм и набор общих команд для приложения, которое он написал в Forth. Тем не менее, я практически ничего не знаю о Forth, только то, что вы не можете написать GU…
23 фев '17 в 12:59
2 ответа

Что входит в указатель кода определения двоеточия?

Указатель кода, как описано в " Начала FORTH" Лео Броди: В случае определения двоеточия указатель указывает на код, который выполняет остальные слова в определении двоеточия. На практике существует много способов реализации этой концепции, включая р…
06 сен '16 в 13:43
1 ответ

Далее как интерактивный тестер программы на С

Я готов использовать интерактивный язык, чтобы протестировать некоторый код C из унаследованного проекта. Я немного знаю Forth, но я никогда не использовал это в реальном проекте. Я смотрю на pForth прямо сейчас. Разумно ли использовать интерактивны…
01 май '13 в 05:05
1 ответ

Формат файла для исполняемого файла в Mac OS X

Я пытаюсь (по одному шагу за раз) создать свою собственную копию Forth для работы на Mac OS X. В настоящее время у меня есть версия Forth, работающая на Apache и localhost на PHP, Ruby и Python. Я хочу сделать версию Forth в C, которая создаст собст…
23 авг '14 в 05:12
2 ответа

Как вы определяете 8-е пространства имен в массиве?

Восьмой использует пространства имен вместо словарей. Каждое пространство имен имеет свое целочисленное представление. ok> ns:a . cr ns:n . cr 4 2 Итак, 2 для пространства имен чисел, а 4 для массивов. Я хочу создать массив, содержащий пространст…
21 май '16 в 05:51
3 ответа

Загрузка из входного буфера терминала в стек параметров

Почему этот код не работает? TIB 10 ACCEPT TIB SP@ 1 cells - 10 cmove В этом коде я попытался ввести строку и сохранить ее в буфере ввода терминала, а затем сохранить в стеке параметров. Но с.S I вижу, что не работает.
09 янв '15 в 21:50
1 ответ

Ловля исключений из цикла

Я пытаюсь написать слово Forth, которое бросит все элементы в стеке. Я использую довольно тупой метод, выполняя бесконечный цикл с помощью drop и ловя ошибку, когда не удается выполнить drop, поскольку стек пуст. Мои слова определены так: ( Infinite…
05 ноя '14 в 17:23
1 ответ

Как мне прочитать что-то из stdin в gforth и сохранить это в переменной?

Я попробовал следующий код после прочтения документов: create buff 128 allot buff 128 stdin read-line throw Я надеялся, что это даст мне символ для каждого последующего адреса баффа, но я получаю странное число: buff @ ok . 3689349013085184353 ok Чт…
05 авг '12 в 06:03