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. Centos开机自启动脚本的制作

    原文地址:http://www.2cto.com/os/201306/220559.html 我的一个Centos开机自启动脚本的制作   一.切换到/etc/init.d/   二.制作sh脚本 v ...

  2. property装饰器以及多态

    property是一种特殊的属性 访问它时执行一段功能然后返回值 class People: def __init__(self, name): self.__name = name @propert ...

  3. Apriori

    基本概念 项与项集:设itemset={item1, item_2, …, item_m}是所有项的集合,其中,item_k(k=1,2,…,m)成为项.项的集合称为项集(itemset),包含k个项 ...

  4. python 文本处理操作

    打开和关闭文件 open 函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写 ''' 模式 描述 r 以只读方式打开文件.文件的指针将会放在文 ...

  5. 当SQL Server的实例位于集群的特定节点时,数据库无法远程访问

    搭建好了一个集群环境,发现当SQL Server的实例位于集群的其中一个节点时,数据库无法远程访问,报如下错误.但在另一个 节点时,数据库访问正常. 标题: 连接到服务器 -------------- ...

  6. Linux+Jenkins环境搭建

    一.安装基础环境 1. yum -y install java-1.8.0-openjdk.x86_64 #安装1.8jdk 2. 查看java 版本 [root@localhost djanggo_ ...

  7. Python select实现socket并发

    Python select  Python的select()方法直接调用操作系统的IO接口,它监控sockets,open files, and pipes(所有带fileno()方法的文件句柄)何时 ...

  8. 谷歌技术"三宝"之GFS

    题记:初学分布式文件系统,写篇博客加深点印象.GFS的特点是使用一堆廉价的商用计算机支撑大规模数据处理. 虽然"The Google File System " 是03年发表的老文 ...

  9. Greeting Card

    问题 G: Greeting Card 时间限制: 1 Sec  内存限制: 128 MB 提交: 666  解决: 59 [提交] [状态] [命题人:admin] 题目描述 Quido plans ...

  10. 分布式系列 - dubbo服务telnet命令

    dubbo服务发布之后,我们可以利用telnet命令进行调试.管理.Dubbo2.0.5以上版本服务提供端口支持telnet命令,下面我以通过实例抛砖引玉一下: 1.连接服务 测试对应IP和端口下的d ...