问题标签 [gforth]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
176 浏览

time - Gforth 中的非阻塞输入

如果我们使用 ncurses 做一个非常简单的计数器:

按下任何键后它都会中止(好的,因为cbreak()使用ctrl-C总是可以在没有任何额外努力的情况下工作......)。

但我们可以让这变得更复杂,比如添加一个函数来暂停计数器或即时重置它(+/- 1 秒)。

为此,我们肯定需要一个非阻塞的键盘输入。

我想知道是否可以在 Gforth 中做到这一点?好的,我知道如何在那里捕捉像 SIGINT 这样的中断,但是像上面那样,为任何键或任何预定键工作?

0 投票
0 回答
219 浏览

time - Gforth 的双精度 utime

0 投票
1 回答
331 浏览

char - 使用 Gforth 获取 ASCII 码

在 Gforth 中输入'a'时,字符的 ASCII 编号(与使用key单词并按将放入堆栈的数字相同a)被放入堆栈。

例如,这不适用于' '(空格)。反而:

数字“应该”是 32。什么解释了这种行为?' '除了手动将对应于(空格)的 ASCII 数字放入堆栈之外,还能做些什么 呢?

0 投票
1 回答
228 浏览

forth - 无法使用“gforthmi”编译图像

如下所示的应用程序

通过编译时产生以下错误gforthmi stdout.4th

我正在gforth 0.7.3通过官方的 Ubuntu PPA 在 Ubuntu 系统上运行。

我在编译图像的方式上犯了错误吗?我错过了任何选择吗?

0 投票
1 回答
192 浏览

forth - gforth 基本执行语法

一些在线gforth文档提供了看似完整 base-execute的效果描述:

但是效果的语法看起来就像一把没有钥匙的锁——页面链接到任何描述含义的东西i*x xt u – j*x。一些搜索发现了对语法符号的部分描述,(它告诉我们这u是一个无符号数并且xt是一个执行令牌),但这仍然不足以理解i*x xt u – j*x

如何base-execute使用,它有什么作用?

0 投票
2 回答
134 浏览

base - ANSI Forth BASE 上限与 gforth 上限,往返?

摆弄可用于超出大多数语言允许的值的节目gforth版本。例如,这会以十进制打印数字0ABC(基数 15950),反之亦然:BASEBASE

输出:

在不编写额外的Forth字的情况下,对于不同基数的有意义的转换,默认的 Gforth 和ANSI Forth BASE上限是多少?

(暂时忽略将现有字符集映射到描述任意基数的复杂性,或者想象一个无穷无尽的分形字符集,在需要新字符时添加很少的 30-150 度衬线。)

0 投票
4 回答
1140 浏览

forth - 用'see'反汇编Forth代码字

我正在准备构建 Forth 解释器的整体知识,并想反汇编一些通用的 Forth 代码词,例如+, -,*等。

see我的 Gforth(我目前有 0.7.3 版,安装在 Ubuntu Linux 上)将允许我反汇编我使用 command以及单个代码 word所做的冒号定义.。但是当我尝试使用其他代码字时,see +或者see /,我得到一个错误,说,,Code +然后我不能再输入我的终端,即使我按下 control-c。

我应该能够反编译/反汇编代码字,如 Gforth 手册所示:https ://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Decompilation-Tutorial.html

有没有其他人遇到过这个问题,您知道如何解决吗?

0 投票
2 回答
419 浏览

compilation - 自定义控制流编译词示例

Forth 著名地允许用户通过为控制流定义新词来改变语言(超出标准给出的词:DO、LOOP、BEGIN、UNTIL、WHILE、REPEAT、LEAVE IF、THEN、ELSE、CASE、ENDCASE 等)

是否有人们实际创建自己的新控制流词的常见示例?有哪些典型和有用的例子?还是标准已经定义了人们实际需要的一切?

我希望找到一些有用的语言扩展的例子,这些扩展已经被接受或被证明通常有助于使语言更具表现力。

0 投票
2 回答
335 浏览

exception-handling - 异常帧与返回堆栈上的其他数据有何区别?

我试图了解异常帧在THROW.

“jonesforth.f.txt”中的注释断言“当被调用时,THROW 会沿着返回堆栈(该过程称为'展开')直到找到异常堆栈帧。” 我不清楚它是如何(EXCEPTION-MARKER)与返回堆栈上的其他其他数据区分开来的(返回地址、使用的用户值>R以及 do-loops 的索引)。

一般来说,各种 Forth 是如何区分异常帧和返回栈上的其他数据的呢?

0 投票
2 回答
145 浏览

forth - 如何计算 ANS-Forth 中的本地人?

在开发主要用于数论实验的BigZ时,我发现在创建、过滤或转换集合的词集中需要正交性。我想要几个在逻辑上组合起来的单词涵盖了广泛的命令,而不需要记住大量的单词和组合它们的方法。

将 1 到 100 之间的所有素数的集合放在一个集合堆栈上,而

将此集合转换为所有数字 p+1 的集合,其中 p 是小于 100 的素数。

更远,

将形式为 p+1 的所有完全正方形的集合留在堆栈中。

这对于自然数集非常有效,但是为了能够创建、过滤和转换 n 元组集,我需要能够计算未命名单词中的本地人。我重新设计了单词以简短地表示复合条件和功能:

执行这两个示例会给出参数堆栈( 1 100 xt ),但为了能够正确处理,在第一种情况下应该生成一组数字,在第二种情况下应该生成一组对,我必须补充词:| 得到 ( 1 100 xt n ) 其中 n 是使用的当地人的人数。我认为可以使用 >IN 和 PARSE 来做到这一点,但很久以前我做过这样的事情,所以我怀疑我现在能不能正确地做到这一点。