我想要一个像这样的词
read-site ( add n buff max -- n flag )
Run Code Online (Sandbox Code Playgroud)
其中“add n”是站点名称缓冲区,“buff max”是应读取 ASCII 文本的缓冲区,“n”是读取的字节数,flag如果操作成功则为 true。
这在 Linux、Android 或 Windows 的 Gforth 中可能吗?
INCLUDE显然是文件IO。但我很困惑它如何与LOAD. INCLUDE没有 a会做什么LOAD?从书中,
INCLUDE xxx ( -- )
加载文本文件xxx(编译或执行)。
LOAD ( n -- )
加载磁盘块(编译或执行)。
在维修仪表组时,我需要使用 Forth 更换基于 Motorola MC68HC11构建的控制器。虽然我能够转储整个内存,但不知道使用的是哪个 Forth,并且可用的单词似乎非常有限。
在嵌入式 Forth 环境中如何定位和更改内存中的已知值?
如果我们使用 ncurses 进行一个非常简单的计数器:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <ncurses.h>
int main(void) {
struct timespec start;
clock_gettime(CLOCK_REALTIME, &start);
initscr();
cbreak();
nodelay(stdscr, TRUE);
{
int key = -1;
struct timespec delay, now;
do {
clock_gettime(CLOCK_REALTIME, &delay);
delay.tv_sec = 0;
delay.tv_nsec = 1000L * 1000L * 1000L - delay.tv_nsec;
nanosleep(&delay, NULL);
clock_gettime(CLOCK_REALTIME, &now);
mvprintw(1, 1, "%ld\n", (long)(now.tv_sec - start.tv_sec));
refresh();
key = getch();
if (key >= 0)
break;
} while (now.tv_sec - start.tv_sec < 60);
}
endwin();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
按任意键后它会中止(好吧,因为 …
为什么Forth实现了rot运算符,为什么它在堆栈的三个最顶层项目上运行?
这只是为了方便还是在没有这样的指示的情况下Forth不是Turing-complete?三个数量是图灵完成的最小可行选择吗?
我可以想象一个人可以rot用pick或实现roll.因此,如果这三个操作都没有,那么它仍然是图灵完成的吗?
forth stack-based computation computation-theory formal-languages
我正在尝试直接在嵌入式系统中学习Forth,并使用Leo Brodie的Starting Forth作为文本.我正在使用的Forth版本是328eForth(eforth到ATmega328的一个端口),我已经闪现成Arduino Uno.
似乎DO LOOP字没有在328eForth中实现 - 这对我与Brodie的学习产生了麻烦.但是使用"WORDS"查看词典表明存在一系列循环词,例如BEGIN直到下一个AFT EXIT AGE REPEAT等.
我的问题如下:
Q1为什么从328eForth中省略了DO LOOP?
Q2可以用其他现有单词实现LOOP吗?如果是这样,请问,如果不是为什么?(我想必须有一个非常的DO LOOP遗漏很好的理由...)
Q3你能举一些328eForth循环词的注释例子吗?
假设我已经s" Hello"存储在某个地方。而且我还定义了: Hello something ;. 有没有办法像执行单词一样执行字符串?
我已阅读文档,但找不到任何相关功能。这可能很明显,但可惜我无法解决。
你有一个单词USE,它将创建一个文件.
USE xxx ( -- )
将OS文本文件xxx指定为"Forth disk".
但是,目前尚不清楚如何在交互式会话中写入该FORTH磁盘.有动词如FLUSH和,UPDATE但他们都没有看到做任何事情.我正在使用gforth.我在会话中创建单词并使用它们.我不明白FORTH磁盘在这种情况下是如何工作的.它听起来像R save.image(),除了我无法得到任何东西来保存.你能提供一系列命令,导致某些东西被写入参数USE吗?
forth ×10
gforth ×5
io ×2
68hc11 ×1
arduino ×1
c ×1
computation ×1
debugging ×1
embedded ×1
networking ×1
stack-based ×1
time ×1