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. 第四章 jQuery节点操作

    1.DOM操作分为三类:(1)DOM Core:任何一种支持DOM的编程语言都可以使用用它如:getElementById()(2)HTML-DOM:用于处理HTML文档,如document,form ...

  2. laravel自定义验证

    1.在控制器中直接写验证$this->validate($request, [ 'video_ids' => [ function($attribute, $value, $fail) { ...

  3. windows将文件夹映射为虚拟磁盘

    subst X: e:123 将e盘下的123文件夹映射为x盘,123的容量即x盘容量 subst X: /t 删除映射的x盘

  4. 实现Runnable接口创建多线程及其优势

    实现Runnable接口创建多线程: 创建一个Runnable接口的实现类RunnableImpl: 主线程中: 其中,链式编程的Thread类的静态方法currentThread方法点getName ...

  5. 虚拟机centos7配置本地yum源

    在虚拟机中要使用yum命令,就要先配置一下yum源,下面就分享一下这个过程: 1. 挂载iso到vmware,首先得确保CD/DVD连接到镜像.可以这样操作 2. 执行下面的命令 # mkdir /m ...

  6. 《CSS世界》读书笔记(二)

    <!-- <CSS世界> 张鑫旭著  --> 块级元素:水平流上只能单独显示一个元素 <li>元素默认的display值是list-item,是块级元素 块级盒子( ...

  7. K8S学习笔记之k8s日志收集实战

    0x00 简介 本文主要介绍在k8s中收集应用的日志方案,应用运行中日志,一般情况下都需要收集存储到一个集中的日志管理系统中,可以方便对日志进行分析统计,监控,甚至用于机器学习,智能分析应用系统问题, ...

  8. T-net 【贪心】

    问题 H: T-net 时间限制: 1 Sec  内存限制: 128 MB 提交: 302  解决: 14 [提交] [状态] [命题人:admin] 题目描述 T-net which is a ne ...

  9. bind封装

    原理:通过apply或者call方法来实现. (1)初始版本 Function.prototype.bind=function(obj,arg){ var arg=Array.prototype.sl ...

  10. yum downloadonly模式,保存所需软件及其依赖包

    command: sudo yum install --downloadonly --downloaddir='yourderictory'