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. laravel框架基础(2)---laravel项目加载机制

    当我们,通过浏览器请求laravel的时候 laravel就会根据我们的请求链接来选择对应的方法执行并返回我们所需要的实际结果. 那么这个过程是怎样的呢? 1.生命周期 2018-12-28 17:0 ...

  2. 152. Maximum Product Subarray(动态规划)

    Given an integer array nums, find the contiguous subarray within an array (containing at least one n ...

  3. Eureka 参数调优

    常见问题 为什么服务下线了,Eureka Server 接口返回的信息还会存在. 为什么服务上线了,Eureka Client 不能及时获取到. 为什么有时候会出现如下提示: EMERGENCY! E ...

  4. Interesting (manacher + 前缀和处理)

    题意:相邻的两端回文串的价值为两个回文串总的区间左端点 × 区间右端点.然后计算目标串中所有该情况的总和. 思路:首先用manacher求出所有中心点的最大半径,然后我们知道对于左区间我们把贡献记录在 ...

  5. Substring (后缀数组 + 计数)

    题意:求出字符串中包含了某个字符的字符序列不一样的数量. 思路:其实主要的是找出每个被包含字符的数量,假设除了目标字符之外的所有字符都不一样,那么应该就很好求了,但是显然不可能,所以我们可以枚举每一个 ...

  6. Rest和Restful & http

    Rest :Representational State Transfer 表述性状态转移 Restful: Rest+ful形容词,遵循Rest原则的应用程序或设计 Rest原则: 1. 网络上的所 ...

  7. DB2 错误代码

    sqlcode sqlstate 说明 000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +098 0 ...

  8. SQLite的时间差判断--删除N天前的数据的两种写法

    比如我有个用SQLite Studio创建的Sqlite3类型数据库,里面有个表名为StatisticsData的表结构是 : -- 表:StatisticsData CREATE TABLE &qu ...

  9. Nginx优化详解-------超详细

      一.一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为它的倍数 (如,2个四核的cp ...

  10. 输出UTF-8-BOM格式的文件

    File localDir = new File(localPath); if(!localDir.exists()){ localDir.mkdirs(); } File file = new Fi ...