body, table{font-family: 微软雅黑}
table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}
th{border: 1px solid gray; padding: 4px; background-color: #DDD;}
td{border: 1px solid gray; padding: 4px;}
tr:nth-child(2n){background-color: #f8f8f8;}

词典条目的结构
一个定义的词包含:名域、链域、代码指针域、参数域
名域允许最大为31个字符的系统,可以取2到32个字节的任意长度,这根据名字而定。


名字
      在上面截图的例子中,第一字节包含了被定义词全名的字符个数(DATE是四个字符)。下面三个字符包含了被定义词名字头三个字符的ASCII码。在三字符系统中,上面这些是 '  或 ['] 用来在词典中查对输入流中词的全部信息。
(图中”计数“字节的符号位被称为”优先位“。在编译期间,该位用来指明该词在编译期间是马上执行,还是仅被编译成一新定义。)

      “链”单元包含词典中的前一个定义的地址。链单元用于搜索词典。
每当编译程序把一个新词加入词典时,他便置该词的链域指向前一个定义的地址。搜索时,'  或  [']  从最新定义的词开始,沿着“链”指向的方向搜索,利用链单元中的地址反向确定下一个定义的位置。

代码指针
    这部分指针包含一个区别定义,具体是变量,常数还是冒号定义的地址。它是一条指令的地址,当执行某一特定类型的词时,首先执行这条指令。列如,若是变量,指针指向该变量的地址压入堆栈的代码。若是常数,指针指向把该常数的内容压入堆栈的代码。若是冒号定义,指针指向执行冒号定义中其余词的代码。
       被指向的代码称为“运行时间代码”,因为它们是某种类型的词在被执行(而不是在被定义或被编译)时才被用到。
       所有变量,所有常量,所有冒号定义都具有它们各自相同的代码指针。

参数域
    紧跟着代码指针下面的是参数域。在变量和常数中,参数域只占用一个单元。在 2CONSTANT 和 2VARIABLE 中, 参数域占两个单元。在数组中参数域的长度取决于自己需求。在冒号定义中参数域的长度取决于定义的长度。
由 '  提供的和  EXECUTE  所要求的地址是参数域的起始地址,称为参数域地址(pfa)。
注:名域和链域一起常被称为词典条目的“头”,代码指针和参数域一起被称为词典条目的“体”

Forth词典条目结构的更多相关文章

  1. Forth 采用CODE定义新词

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  2. HanLP二元核心词典解析

    HanLP二元核心词典解析 本文分析:HanLP版本1.5.3中二元核心词典的存储与查找.当词典文件没有被缓存时,会从文本文件CoreNatureDictionary.ngram.txt中解析出来存储 ...

  3. HanLP二元核心词典详细解析

    本文分析:HanLP版本1.5.3中二元核心词典的存储与查找.当词典文件没有被缓存时,会从文本文件CoreNatureDictionary.ngram.txt中解析出来存储到TreeMap中,然后构造 ...

  4. SCWS中文分词,词典词性标注详解

    SCWS中文分词词典条目多达26万条之巨,在整理的时候已经把很多明显不对的标注或词条清理了 ---- 附北大词性标注版本 ----Ag 形语素 形容词性语素.形容词代码为a,语素代码g前面置以A. a ...

  5. Forth 内存布局

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  6. Forth嵌套定义的执行过程图示

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  7. PC/FORTH 变量|常数|数组

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  8. 数据流图(DFD)画法

    数据流图(DFD)画法要求 一.数据流图(DFD) 1.数据流图的基本符号 数据流图由四种基本符号组成,见图5-4-1所示. 图5-4-1  数据流图的基本符号 例:图5-4-2是一个简单的数据流图, ...

  9. SCWS 中文分词

    SCWS 中文分词v1.2.3 开源免费的中文分词系统,PHP分词的上乘之选! 首页 下载 演示 文档 关于 服务&支持 API/HTTP 论坛 捐赠 源码@github 文档目录 SCWS- ...

随机推荐

  1. windows程序设计 MessageBox消息框

    MessageBox函数 int WINAPI MessageBoxW( HWND hWnd,//窗口句柄 LPCWSTR lpText,//消息框主体显示的字符串 LPCWSTR lpCaption ...

  2. C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序

    默认构造函数,如果没有为类指定任何构造函数,编译器会自动为类创建一个无参构造函数,用以初始化类的字段:如果为类编写了构造函数,那么编译器就不会再自动生成无参构造函数了.ps.C#不允许用户为结构定义无 ...

  3. python3内置的tkinter参数释疑

    最近涉及到需要实现一个桌面UI的小游戏,所以就翻看了一些文档. 当然有介绍使用pyQT5的,但是本机安装的是python3.4,不想卸载掉这个版本,暂时还不能使用pyQT5. pyQT5需要pytho ...

  4. vue的一些感想

    如今vue2.0是主流,但是它的路由确实直接从1.0过来的,其中包括组件包括全局组件和局部组件,写好组件之后,我们就需要 使用路由,将组件关联起来,关联起来之后,然后我们才可以将组件的内容通过hash ...

  5. java学习路线之必会的java基础教程

    大数据产业已进入发展的“快车道”,急需大量优秀的大数据人才作为后盾.如果你是Java编程出身,那学习大数据自然是锦上添花:但如果你是刚刚接触大数据技术,还在Java编程基础阶段,这篇文章非常值得你看! ...

  6. 1-趣味解读DNS工作原理——转载疯猫网络科技

    因为只要我们输入百度.腾讯.淘宝的名字,无论它们的服务器在哪里,历经多少轮查询,我们都能找到并访问之.这就是计算机网络中著名的域名系统DNS(Domain Name System),它能实现把一个网站 ...

  7. Python xml模块

    xml模块 自己创建xml文档 import xml.etree.cElementTree as ET new_xml = ET.Element("personinfolist") ...

  8. Linux 组管理、权限

    权限说明 1. 组涉及到两个配置文件,组文件/etc/group,组密码管理员/etc/gshadow/,GID500往后的算普通组. 2.主组与附属组,当创建一个用户,没有制定,用户会默认创建一个与 ...

  9. SVN的Not authorized to open root of edit operation解决办法

    以为经常用到这是转贴  谢谢 Subversion装了1.5.2版,乌龟SVN装的是1.5.1版本,可以通过乌龟正常访问到版本库,但当check out时却出现了"Not authorize ...

  10. Convolutional Pose Machines

    Convolutional Pose Machines 2018-12-10 18:17:20 Paper:https://www.cv-foundation.org/openaccess/conte ...