问题标签 [forth]
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.
forth - Gforth 转换为双打的违规行为
我对Forth 中的s>d
and函数如何工作感到相当困惑。d>s
从我读过的内容来看,打字16.0
会放在160 0
堆栈上(因为它占用两个单元格)并且d.
会显示160
.
现在,如果我输入,我16 s>d
希望堆栈会像前面的示例一样显示出来。但是,堆栈 is和is 。160 0
d.
160
16 0
d.
16
我输入的双打不正确吗?不是s>d
像“将单格值转换为双格值那样简单吗?这种不规则性有什么原因吗?任何线索都将不胜感激。
c++ - 使用 Homebrew 在 OS X Mavericks (10.9) 上安装 Gforth 时出错
我正在尝试在我的MacBook Air(运行 OS X Mavericks (10.9))上安装Gforth ,但是会产生以下错误:brew install gforth
我知道问题是什么(libffi 是用旧版本的 C++ 标准库构建的),但我不确定如何使用Homebrew解决这个问题。我可以通过 Homebrew 卸载 libffi 并使用 libc++ 重新安装它,还是需要采取更严厉的措施?
forth - Obtaining a Factor binary... still possible with the Factorcode.org website down?
UPDATE (12-Mar-2014):
All sites are back: factorcode, planet-factor, builds.factorcode, and concatenative. Downloads are back. Looks like the sites were moved to a different host (Rackspace?) and quite significantly revamped.
(This can question can be considered closed.)
I've been trying to get a recent Windows binary of the Factor programming language, but it has been confounded by the fact that the factorcode.org website appears to be down.
Unfortunately, all download links seem to point back to it, specifically to builds.factorcode.org
.
I don't know how long it's been this way, but it seems not to be the first time... It looks like it's been down since the start of March, and there's noise about this in October, and again in December.
As Factor is open-source, I was hoping that binaries might be mirrored somewhere else. But what used to be on SourceForge appears to have been removed to factorcode.org
, and the main GitHub repository for Factor also seems to be hosted on factorcode.org
.
How do I obtain binaries? It there perhaps another way?
(P.S.: these related sites are also down: Concatenative.org and Planet Factor.)
I have used Forth a fair amount and recently have been hearing more about Factor. Given that Google seems to have hired Slava Pestov (creator of Factor) and Daniel Ehrenberg (collaborator with Slava on developing Factor), thought I'd see what the buzz is about -- 'kick the tyres' so to speak.
string - 使用 Gforth 在多个字符串连接上堆栈下溢
在Rosetta 代码中,我使用以下方法在 Forth 中连接字符串。
使用此代码,我希望能够将多个字符串连接在一起。但是,以下在 Gforth 上失败了
从我对 Forth 的基本了解中,我看到代码是将三个字符串放在堆栈上,然后将字符串附加到堆栈顶部并在其下方添加字符串,然后将新字符串再次附加到堆栈底部的字符串中。
为什么此代码在最后一个 + 位置下溢?有没有解决的办法?
macos - Forth 编辑器/自定义编辑器
我正在寻找一个 OS X 编辑器(最好是专用的 Forth 编辑器,但我怀疑它是否存在)具有/可以自定义以更改 Forth 变量、程序等的字体颜色。如果没有,是否有任何解决方法?
string - Gforth 将字符串值存储在变量中
我正在尝试将字符串值存储到变量中。要定义变量,我使用:
我可以轻松存储整数/浮点值以x
使用
或者
为了访问它,我使用@
或f@
。现在我正在尝试存储一个字符串值:
这样做的问题是它将两个值推送到堆栈(因为它是一个计数字符串),但x !
只会将项目存储在顶部,即字符串的长度。这是危险的,因为堆栈内容可能在被x
引用时已被修改,因此地址不直接低于长度(糟糕!),因此type
会失败。所以我的问题是,有没有办法将两个值(地址和长度)存储到x
?或者是否有不同的数据类型/操作数可以让我实现这一目标?
任何帮助表示赞赏。
forth - 带有返回栈的第四栈注释
当返回堆栈发挥作用时,堆栈注释应该是什么样子?
这个词需要 5 个单元格并返回 2 个单元格,但是当使用返回堆栈时,括号之间的内容是什么?例如,堆栈注释将如何查找:
performance - 重新审视原语
我很清楚 Stack Overflow 问题什么是原始 Forth 运算符?,但它并没有真正解决我的问题。我不是在寻找最小的而是实用的原语集。
最近遇到一个问题,需要经常对非常大的数组进行排序,性能变得至关重要。一个简单的qsort基准测试为 20。移植一个经过大量(算法)优化的 STL 版本使我获得了基准测试 16。原生 C++ 从基准测试 3 中嘲笑我。哦,好吧。
最后,我咬紧牙关,EXCH ( a1 a2 -- a1 a2 )
将非破坏性比较( n1 n2 -- n1 n2 flag )
作为基元实现。结果是惊人的——性能提升了三倍。仍然不是 C++,但更接近。
为什么标准的 Forth 没有开箱即用?
PS:基准是(执行时间,nsec)/(n log n)
forth - 从单词或变量附加字符串时出错
我正在尝试在 gforth 中附加两个字符串,但我收到了一些看起来很吓人的错误消息。
虽然s" foo" s" bar" append type cr
工作正常,但一旦我开始将字符串存储在变量中或从单词中创建它们,就会出现错误。例如:
运行它会产生以下错误:
我精通C语言,所以很明显我错误地使用了Forth !我想我需要学习一些关于 Forth 内存管理的基本知识。
谁能解释一下这里出了什么问题,我应该怎么做?
当我尝试附加存储在变量中的字符串时,我也遇到了问题:
这以我必须打破的循环结束:
作为参考,我在 Mac OS X 上使用 gforth 0.7.2。我将非常感谢您对正在发生的事情的一些很好的解释。
更新
我可以看到的定义append
:
那么,似乎我需要自己在 Forth 中管理内存?如果是这样,怎么做?
解决方案
Andreas Bombe 提供了以下线索。最终可行的程序是
输出是
sequence - Forth 中的 Hofstadter 男女序列
我正在尝试在 Forth 中编写一个Hofstadter 序列,而不使用递归。我觉得我很接近,但我不断收到一个错误告诉我,
类型错误:x[m[w]] 不是函数
当我用10 MALE
. 我该如何解决这个错误?
我的代码如下: