首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >no-op Forth字的开销

no-op Forth字的开销
EN

Stack Overflow用户
提问于 2020-11-24 08:03:17
回答 1查看 61关注 0票数 1

在编写兼容的Forth标准时,需要大量使用像CHARS这样的词,这在我的Forth环境中没有实际效果。这样的no-ops会给Forth字典或我的冒号定义增加开销吗?

EN

回答 1

Stack Overflow用户

发布于 2020-11-24 08:03:17

当冒号定义为IMMEDIATE时,表示符合标准或注释代码的No-op单词在冒号定义中没有明显的开销。这是因为在编译单词时,IMMEDIATE会导致单词执行,而不是编译。因此,根本不会向编译后的代码添加任何内容。

举个例子:

代码语言:javascript
复制
\ Potential implementation of CHARS for a Forth environment
: CHARS ; IMMEDIATE

: test CHARS ;

SEE test  \ prints : test ;

例如,这就是gforth implements CHARS的方式。

然而,并不是所有的Forth都会使用这种优化。如果不是,那么对函数的冗余调用将被编译到代码中。如果这对你来说是一个问题,Forth允许你用上面的冒号定义重新定义CHARS等,以应用优化。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64978404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档