cost 224 ms
go 如何实现向量或动态数组? - How would one go about implementing a vector or dynamic array in forth?

我需要一个动态数组,但我不知道如何实现它。 我在网上搜索,也找不到任何结果。 我是新手,刚刚开始学习它。 我想我可以只使用一个变量来存储长度,并像我 go 那样分配更多,但我不知道这是否有效,因为我也可以在数组的分配空间之外写入。 ...

2023-01-21 03:33:06   1   30    forth / gforth  
为什么我需要在带有 ncurses 的 `initscr` 之后调用 `clear`? - Why do I need to call `clear` after `initscr` with ncurses?

我已经解决了这个问题,因为我有代码可以做我想做的事,但我不明白为什么有必要做我做的事,而且我看不到这种行为的记录,所以我想知道是否有人可以解释为什么? 我实际上是在将 ncurses“移植”到 Forth。 更准确地说,我正在编写一些 RISC-V 程序集,它轻轻环绕 C 库调用,为 Forth ...

嵌入式 SOC 的 FORTH 实现 - FORTH implementation for embedded SOCs

我想知道最近的 SOC 上是否有用于 FORTH 实现的好资源。 我最感兴趣的是裸机版本,例如可以在 ESP32 或 RISC-V 上将 .net 转换为 RTOS 的东西(因此gforth可能并不理想)。 特别是,我至少在看一个可以做网络的版本(例如通过 WIFI,最好是通过 source.net ...

2022-10-21 06:24:10   1   44    forth  
您如何跟踪在 Forth 中分配的所有字符串并按时释放它们? - How do you keep track of all strings allocated in Forth and free them on time?

我看到很多 Forth 代码只是在做s" Hello " s" world" s+就像什么都没有,但现在我想起来,这实际上分配了 3 个指针,其中两个丢失了。 slurp-file的大多数用途也存在同样的问题。 但是,如果我需要将分配的每个字符串地址放入一个临时位置以便稍后释放它们,例如s" f ...

如何以非零退出状态退出 Forth? - How can I exit Forth with a non-zero exit status?

我想以非零退出状态退出 Forth 程序(使用 Gforth 0.7.3)。 我试过了: 但是 1 没有被解释为bye的参数(而且我没想到这会起作用;我在文档中找不到任何暗示bye会接受参数的提示)。 请注意,我不想触发异常,因为它也会打印一条错误消息(除非有一种方法可以从 Forth 程序本身中 ...

2022-03-25 12:21:35   1   109    forth / gforth  
如何在嵌入式 Forth 控制器中查找和更改变量? - How can I find and change a variable in an embedded Forth controller?

在维修仪表组时,我需要更换一个使用 Forth 构建在摩托罗拉MC68HC11上的控制器。 虽然我能够转储整个内存,但不知道使用的是哪个 Forth,并且可用的单词似乎非常有限。 如何在嵌入式 Forth 环境中定位和更改内存中的已知值? ...

什么可能导致 RISC-V 上的 SIGILL(非法指令除外) - What might cause a SIGILL (other than an illegal instruction) on RISC-V

我正在尝试将一些 Forth 加载到我在 RISC-V SBC 上运行的 Forth 编译器中(不过我不相信这是一个与 Forth 相关的问题): 上面显示的是我用 Forth 加载文件,第一行,回显到终端,是 cuboid 这个词的定义。 随后的 OK 说明 Forth 编译器已经成功编译了这 ...

第四次跳过 ATLAST 中的输入流 - Skip over input stream in ATLAST forth

我正在尝试在ATLAST中实现一种“条件: ”,原因是我有一个文件可以多次FLOAD来处理我的程序流程的多个步骤(我实际上是在滥用 Forth 作为汇编程序,步骤 1对引用等进行第一次解析,在步骤 2 中指令字实际发出字节)。 因此,当在该文件中为“宏”声明单词时,它会在步骤 2 中出错,因为它们 ...

从 Gforth 中的用户指定日期获取日期名称 - Get day name from a user specified date in Gforth

我尝试应用Zeller 的收敛简化方法从用户输入的日期中获取日期名称。 简化算法来自 语法似乎没问题,但方法或错误/失败的 function 可能是根本原因。 输入很好,但随机获得的日期不是好日期(即使是同一日期)。 所以我可能没有做某事&在这里我未优化代码以尝试调试它,但我还没有找到原因。 ...

AMD64缓存优化策略——栈、符号、变量和字符串表 - Strategy for AMD64 cache optimization - stacks, symbols, variables and strings tables

介绍我将在 GNU 汇编程序 (GAS) 中为 Linux x86-64 编写我自己的 FORTH“引擎”(特别是针对我桌子上的 AMD Ryzen 9 3900X)。 (如果成功的话,我可能会用类似的想法为retro 6502和类似的自制电脑制作固件) 我想添加一些有趣的调试功能,如将已编译代码 ...

Forth 中的分数求幂 - Fractional Exponentiation in Forth

我正在尝试编写一个适合 model 的值的 function。 我从压力传感器测量并使用校准的 model 我必须将值转换为最终压力管理。 这样做涉及将测量值提高到分数幂,在本例中为 x^2.032。 我正在用 Forth 的一种方言Mecrisp Stellaris写这篇文章。 我有点卡住了。 我 ...

在 Spike/PK 上的 RISC-V 程序集中调用 fgets - Calling fgets in RISC-V assembly on Spike/PK

更新:写出来让我发现我哪里出错了,但不知道为什么。 我显然以错误的方式调用 fgets,因为在五次调用后,我到达地址 0x221000,这是映射的 memory 所在的地址——我正在写更高的地址——但我不知道为什么会这样。 有人可以解释一下吗? 这有点复杂,我不知道为什么会看到这种行为:我不知道我 ...

在 RISC-V 上执行动态生成的代码 - Executing dynamically generated code on RISC-V

我正在为 RISC-V 编写类似 Forth 的语言,这自然意味着我需要有一种方法来允许用户定义新单词并执行它们。 但是我正在努力寻找一种允许用户执行动态生成的代码而不使用特权指令来更改页面状态的方法。 有什么方法可以做到这一点-例如,我可以在.text 中定义一个大的空白部分(而不是我目前正在做的 ...

如何编译为任意 memory 并在 Forth 中执行? - How do I compile to arbitrary memory and execute it in Forth?

我对测试 Gforth 的一些限制很感兴趣,并希望它执行我“手动编译”到分配的 memory 中的任意代码。 这是我的尝试。 不幸的是,这失败了: 我必须使用comp'而不是' ,因为它不适用于获取EXIT的 xt 。 我本以为这应该可以工作,除非 Gforth 不像JonesForth那样在do ...

2021-04-05 02:46:52   1   70    forth / gforth  

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM