问题标签 [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.
fortran - Fortran、Cobol、Basic 和 Forth 是高级编程语言吗?
Fortran、Cobol、Basic 和 Forth 是高级编程语言吗?
如果没有,第一个高级编程语言在哪里?
最早的面向对象语言是哪些?
embedded - 从哪个 Forth 开始移植?
我正在寻找开发一个新的Forth系统,旨在使游戏开发更容易在一个或多个复古控制台平台上进行。我有点像 Forth 初学者,需要您的帮助来决定从哪个 Forth 代码库开始移植。
我基本上是在寻找特定 Forth 之间的优缺点。我已经阅读了JonesFORTH的来源以及对它的赞扬和批评,以及关于 ANS 的讨论,不幸的是,我感到相当困惑。据我所知,Forth 社区似乎在标准合规问题上存在相当残酷的分歧,两个阵营都提出了很好的论据,说明为什么标准既好又坏。但是,我似乎找不到关于标准究竟发生了什么变化的实用建议,除了一般意义上的它使事情变得比他们可能需要的更复杂和臃肿。
我希望让目前被汇编或 C 语言开发前景吓坏的程序员和爱好者更容易开发,所以我倾向于更简单的 Forth,但我对 Forth 的了解还不够,无法制作受过教育的决定。
dictionary - Forth 是如何实现字典的?(争议)
我正在研究Forth以完成我心中的一个个人项目。它看起来是一种在小型虚拟机中实现的非常酷且简单的语言。
我对在上面使用词汇的可能性印象特别深刻。另一方面,我认为字典的工作方式对于整体如此简单的语言来说过于复杂。我这么说是因为我读过一些关于它的论文,我知道存在很多争议。
有一些微处理器在它们的指令中实现了 Forth 的一些特性,我很想知道它们是如何实现字典和它们上的词汇等特性的,所以我可以实现一个看起来像那些微处理器的虚拟机。
也就是说,字典不是一个简单长大的堆,也不是一个简单的可以简单索引的线性向量,所以对于微处理器的微码来说,这不是一件容易的事(我猜)。当然,如果那些特殊的处理器能够在没有任何额外代码的情况下实现字典应有的样子,我会印象深刻。我认为这是不可能的。
因此,对于我的项目,我正在考虑使用堆对解释器进行编码,并使用操作码来操作它,就像在 6852 中一样。字典的代码应与 Forth 中的解释器和编辑器一起编译. 我认为这应该看起来更像现实。
所有这些争论是关于什么的?这些特殊处理器是如何工作的,与字典和词汇的使用有关?
keyword - Forth 中的逻辑与?
我知道 AND 字定义了二进制and
...但是什么定义了逻辑and
?
programming-languages - 哪些编程语言具有最容易实现的解释器?
作为我正在从事的项目的一部分,我需要为一种编程语言实现一个解释器。我不认为这个项目的细节太相关,除了它需要我从头开始实现一个解释器,我不能使用现有的编程语言(要求包括支持可移植的定界延续,并且能够编写一个Javascript 和 Java 中的解释器)。
显然,我真的宁愿避免发明一种全新的编程语言,所以我希望有一些非常简单的语言可以复制,或者至少从中汲取灵感。
我的第一个想法是 Forth 或类似 Lisp 的基本语言,但我真的更希望该语言具有更接近更流行的编程语言(如 Java、Python 或 Ruby)的语法。特别是,这意味着支持中缀运算符 (a+b),以及 a=b 变量分配。
换句话说,我希望今天使用 PHP 编程的人对这种语言相当熟悉,而且我认为 Forth 或 Lisp 都不符合这个标准。
任何人都可以对这种语言提出任何建议吗?
python - 如何设计和实现编程语言?
这个问题与
在过去的几年里,我一直在思考我喜欢和不喜欢我使用的语言的事情。我一直想写自己的语言,但从来没有这样做过。
我还拥有乐高 RCX 和 NXT,但大多数时候我从未真正让我的机器人做任何事情,因为它们具有限制性的可视化编程环境。
我想我会为 NXT 设计我的编程语言,因为已经有大量的通用语言,而 NXT 给了我一组具体的问题和目标,并希望有一个不错的沙盒可供使用。
怎么办?我从哪说起呢?我需要知道什么?
如果可能的话,我会用 Python 或 Clojure 编写编译器。NXT有一个SDK ,也有一个汇编语言。什么是最好/最简单的路线?
Lego NXT 有一个小屏幕、USB 和蓝牙,它有 4 个数字和模拟传感器端口、3 个输出端口和 2 个 ARM 处理器、一个主处理器和一个协处理器。http://mindstormsnxt.blogspot.com/2006/08/whats-inside-nxt-brick.html
对 NXT 进行编程将涉及处理数据和事件,因此某种单一的数据流/反应式风格似乎是合适的。它还应该很好地处理并行任务,所以我认为是功能性的。我目前也在考虑基于堆栈。
在我的脑海中,我已经在尝试统一这些概念并考虑示例代码。我正在考虑一棵树而不是堆栈,其中功能分支可以并行运行。一个例子:
这背后的推理显然仍然存在巨大的漏洞,但无论如何我都会发布这个粗略的草图,以引发一些有用的答案和讨论。
file-io - 使用 Gforth 输出文件
作为第一个项目,我一直在编写一个简短的程序来渲染 Mandelbrot 分形。我已经到了尝试将我的结果输出到文件(例如 .bmp 或 .ppm )的地步,但被卡住了。
我还没有真正找到任何我想要做的事情的例子,但是我找到了两个从一个文件复制到另一个文件的代码示例。
Gforth 文档(第 3.27 节)中的示例对我(winXP)不起作用,实际上它们似乎可以打开并创建文件但不能正确写入文件。
这是将一个文件的内容复制到另一个文件的 Gforth 文档示例:
我发现这个例子(http://rosettacode.org/wiki/File_IO#Forth)确实有效。主要问题是我无法隔离写入文件的部分并让它仍然工作。主要的困惑是 >r 似乎没有像我预期的那样消耗 TOS。
如果有人能准确解释 open、create read 和 write 文件字的实际工作原理,我将不胜感激,因为我的调查不断导致一些奇怪的堆栈。
关于 Gforth 示例为何不起作用的任何线索也可能有所帮助。
总之,我想从 Gforth 输出到一个文件,但到目前为止一直被阻挠。任何人都可以提供任何帮助吗?
谢谢Vijay,我想我理解你给出的例子。但是,当我尝试使用这样的东西(我认为是相似的)时:
我得到ok
了,但文件中没有任何内容,我犯了错误吗?
问题似乎是由于没有刷新相关缓冲区或显式关闭文件。添加类似的东西
或者
之间write-line
并;
使其工作。因此,如果我按照说明进行操作,Gforth 文档示例将会起作用。
再次感谢Vijay的帮助。
windows-xp - Gforth 并行处理
我已经编写了一个 Forth Mandelbrot 分形绘图仪,并且作为一项技术练习,我想尝试通过一些并行处理来加快它的速度。
目前,如果我可以同时使用我的两个核心(让一个核心完成图像的一半,另一半执行另一半),我会很高兴。
我注意到 Windows XP 将非常乐意管理两个Gforth实例并尝试使用尽可能多的处理器容量,因此运行两个进程可能是一个开始。但是我不确定它们是否可以共享内存,或者它们是否可以同时写入文件(或者如何告诉一个进程从文件开头开始写入 x 个字节)。
总之,如何在 Windows XP 上使用 Gforth 进行并行处理?
programming-languages - 用汇编语言实现的编程语言
最近我偶然发现了JONESFORTH,它是一个用普通汇编语言实现的 Forth 编程语言的解释器。
我觉得这个实现很有趣,因为它展示了如何用汇编语言实现一种语言,尽管我知道实现一种语言可能是一个严重的可移植性权衡。
所以我想知道是否还有其他用汇编语言实现的编程语言,其源代码仍然可用(甚至可能仍在积极开发中)?
multicore - Multicore Forth,有吗?
是否存在这样的 Forth 实现,可以让您充分利用多核处理器?