Forth 采用Create,Does>定义新的词(word)& 延迟词技术
body, table{font-family: 微软雅黑; font-size: 13.5pt}
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;}
| // 定义一个 双字长常数 : DCONSTANT CREATE , , DOES> DUP 2 + @ SWAP @ ; |
123.456 DCONSTANT CON1 |
运行时间行为:
| : DEFER ( - ) (建立一个延迟词) CREATE (建立延迟词首部) 2 ALLOT (参数域为一个单元) DOES> @ EXECUTE ; (运行时间代码) |
当定义词 DEFER 运行时,在词典中建立一个词身位一个单元的延迟词,并规定延迟词的运行时间代码;当延迟词执行时,把其 pfa 单元内的地址交给 EXECUTE 执行。 |
| : WARNING ." Uninitialized" ; : DEFER CREATE ['] WARNING , DOES> @ EXECUTE ; // 这样定义防止DEFER定义词未赋值么有执行代码无法继续执行下去 |
| STATE ( - addr) 具有编译状态的变量。STATE 之值非 0 ,表明系统处于编译状态;为零,则表明系统处于解释(执行)状态。 |
| : (IS) ( cfa - ) ( IS的执行时间行为) R@ @ >BODY ! (得到目标地址) R> 2+ >R ; ( 调整 IP ) |
| : IS ( cfa - ) 把跟着的词身(pfa)置为参数栈顶的数值。若在冒号定义内使用,则IS作用于在冒号定义中跟着它的词。 STATE @ IF COMPILE (IS) 系统处于编译状态则做此工作。 ELSE ' >BODY ! 系统处于解释状态做此工作。 THEN ; IMMEDIATE 由于 IS 在冒号定义内部也要能使用,所以它必须是立即词。 |
Forth 采用Create,Does>定义新的词(word)& 延迟词技术的更多相关文章
- CREATE RULE - 定义一个新的重写规则
SYNOPSIS CREATE [ OR REPLACE ] RULE name AS ON event TO table [ WHERE condition ] DO [ INSTEAD ] { N ...
- CREATE OPERATOR - 定义一个新的操作符
SYNOPSIS CREATE OPERATOR name ( PROCEDURE = funcname [, LEFTARG = lefttype ] [, RIGHTARG = righttype ...
- CREATE FUNCTION - 定义一个新函数
SYNOPSIS CREATE [ OR REPLACE ] FUNCTION name ( [ argtype [, ...] ] ) RETURNS rettype { LANGUAGE lang ...
- CREATE AGGREGATE - 定义一个新的聚集函数
SYNOPSIS CREATE AGGREGATE name ( BASETYPE = input_data_type, SFUNC = sfunc, STYPE = state_data_type ...
- CREATE VIEW - 定义一个视图
SYNOPSIS CREATE [ OR REPLACE ] VIEW name [ ( column_name [, ...] ) ] AS query DESCRIPTION 描述 CREATE ...
- CREATE CONVERSION - 定义一个用户定义的码制转换
SYNOPSIS CREATE [DEFAULT] CONVERSION name FOR source_encoding TO dest_encoding FROM funcname DESCRIP ...
- CREATE CAST - 定义一个用户定义的转换
SYNOPSIS CREATE CAST (sourcetype AS targettype) WITH FUNCTION funcname (argtype) [ AS ASSIGNMENT | A ...
- php大力力 [023节]CREATE TABLE创建新表sql写字段备注(2015-08-27)
2015-08-27 php大力力023.CREATE TABLE创建新表sql写字段备注 http://www.cnblogs.com/dalitongxue/p/4762182.html 参考: ...
- Vue Create 创建一个新项目 命令行创建和视图创建
Vue Create 创建一个新项目 命令行创建和视图创建 开始之前 你可以先 >>:cd desktop[将安装目录切换到桌面] >>:vue -V :Vue CLI 3.0 ...
随机推荐
- 安装caffe-ssd或者caffe时make all,make pycaffe,make test运行慢的问题
之所有运行慢,是因为没有在这三条语句后面加上 -j,即没用全部的进程运行,不加-j 表示用单一进程运行,加上-j5表示用5个进程,-j不带数字表示用所有进程
- Python之__slots__ &运算符重载反向运算
1.运算符重载之反向运算 class A: def __init__(self,x): self.x = x def __add__(self, other): try: x = other.x re ...
- vue-cli 2.92版本 没有dev.server.js
在webpack.dev.conf.js 文件中 //首先 const express = require('express') const app = express() var appData = ...
- sass用法快速入门
1.@mixin用法 (混合样式) 2.定义变量用$ (可作为全局变量使用) 命名规范 —— 遵守语义化命名:lg-大号.md-中号.base-基本号.sm-小号.mini-超小号 $font ...
- 浅探网络1---tcp协议详解(三次握手和四次挥手)
TCP协议是网络多层协议中运输层的最重要的协议之一,运输层是两台主机的进程之间的通信.除了TCP还有一个是UDP协议(用户数据包协议) TCP全称是Transmission Control Proto ...
- eleemnt-ui修改主题颜色
饿了吗的element-ui使用的是淡蓝色的主题,有时候我们可以自定义主题,官方的文档给我们提供了如何修改主题,介绍的很详细,自己试验过后,觉得很不错,一方面怕忘记,一方面写一写. 方法一是在线生成一 ...
- 移动端长按响应事件以及阻止默认行为e.preventDefault()导致定时器setTimeout不能响应
手指触摸绑定: $(document).on('touchstart', '.photo', function(e){ currentIndex = parseInt($(this).index('. ...
- springboot使用hibernate validator校验
一.参数校验 在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦: 验证代码繁琐,重复劳动 方法内代码显得冗长 每次要 ...
- Flutter路由跳转及参数传递
本文要介绍的知识点 用路由推出一个新页面 打开新页面时,传入参数 参数的回传 路由 做Android/iOS原生开发的时候,要打开一个新的页面,你得知道你的目标页面对象,然后初始化一个Intent或者 ...
- CentOS6.5升级GCC4.8
# curl -Lks http://www.hop5.in/yum/el6/hop5.repo > /etc/yum.repos.d/hop5.repo # cat /etc/yum.repo ...