首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >第四种更高级的解释

第四种更高级的解释
EN

Stack Overflow用户
提问于 2016-09-25 22:06:12
回答 2查看 836关注 0票数 3

前言

第四,通过我读过的几本手册,通常是用非常低级的术语来定义,通常是在汇编中。以这种方式定义Forth对于理解实现来说是非常违背直觉的,而且实际上只适用于编写基于程序集或其他基于底层语言的Forth端口到不同的系统/体系结构。

这可以在著名的JonesForth中看到,在这里,他实现了在汇编中实现速度所不需要的单词,并且模糊了程序集结束和第四部分开始之间的界限。

起跑是一项更好的工作,它以一种更容易理解的方式解释Forth,但是,由于它是针对Forth本身的教学,所以它在Forth解释器/编译器如何实际工作的问题上并不十分简洁,并且同样模糊了Forth的实现。

问题

我真正想问的是,在一个有效的第四次实施中,涉及到了什么?什么是高层次的模型,如何工作?据我所知:

  • 使用字典查找已定义的单词。
  • Forth有两个堆栈,一个参数堆栈和一个返回堆栈。
  • 参数堆栈用于保存正在操作的值,而返回堆栈用于保存从跳转到嵌套单词的返回位置。
  • 原语单词NEXT用于返回到返回堆栈顶部的状态,通常出现在每个定义的单词之后。

这是我能确定的全部,因为在第四-83条必需的单词集中,解释是没有定义的,但是在Forth开始时,解释被定义为一个原语,用于检查字典中的一个单词,如果不检查它是否是一个数字,如果不是中止,则定义为一个原语。所有这些相互矛盾的信息,以及相反的缺乏有关福斯的信息,使整个福斯复杂的内心去理解。

EN

回答 2

Stack Overflow用户

发布于 2016-10-07 17:20:30

任何第四种实现都可以逻辑上分为以下层(或机制):

  1. 第四处理器。它包括访问数据堆栈、返回堆栈、内存、调用和从子例程、逻辑和算术操作、线程代码解释器(或“地址解释器”,如果有的话)返回。有时它也被称为第四虚拟机(FVM)。
  2. 代码生成器。它负责访问数据空间和代码空间区域,创建子程序,增量编译文字、子程序调用、返回和控制流。
  3. 翻译。它结合了创建词汇表和单词(词汇表条目)、管理搜索顺序和解析词汇(名称、数字等)的能力。取决于背景。
  4. 翻译器。它解析文本,分解为词汇,解决词汇(使用解释器),并根据状态(或翻译模式)将其转换为各种副作用。许多标准词都是译者的一部分。此外,它还可以通过用户定义的(可能是即时的)单词或一些更高级(特定于实现的)方法进行扩展。

每个下一层都基于(并使用)前面的层。此外,还可以在引擎盖下使用一些额外的可重用模块(例如,堆栈、列表等)。

理解下一层需要理解前一层。在澄清了最初的问题后,这一答案也可以扩大。

票数 4
EN

Stack Overflow用户

发布于 2018-04-24 17:07:10

要么以用户/程序员的身份向前看(布罗迪书中的“开始”“思考”闪闪发光,要么看一下Pelc的教程)。没有必要担心下一步,或组装,或任何“低水平”。选择一些第四种系统并使用它。

或者用它的内部飞来飞去,那么琼斯福斯是必须的。其他有趣的系统是lbForth (自托管,几台不同机器的元计算机),或ff (也是元堆,从最小的“伪汇编程序”来源启动)。

如果你不想搞乱低层次的细节,还有几个四分之一个是用C写的。

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

https://stackoverflow.com/questions/39692290

复制
相关文章

相似问题

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