虽然Racket专家可能会纠正我,但我的理解是主要阶段是:
甲读取通过处理所述输入的字符成语法对象.
一个膨胀通该递归扩展的语法对象,包括使用用户定义的宏.
评价.(只要调用了尚未编译的函数,JIT编译就会在评估期间发生.)
换句话说,REPL(读取eval打印循环)实际上更像是REEPL(读取扩展eval打印循环).
你提到了"类型检查".
#lang racket)是动态类型的,并且在运行时进行检查.#lang typed/racket)在扩展期间进行静态类型检查:Typed Racket系统通过宏实现.参见Sam Tobin-Hochstadt 论文的第10节"实施" .(编辑注意到JIT实际上是评估的一部分,而不是一个单独的阶段.)
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |