小编And*_*rew的帖子

Lisp解释过程中"读者"的任务是什么?

我想知道Lisp程序的解释/编译过程中"读者"的目的,或者更确切地说是"读者"的任务.

从我刚刚完成的前期问题研究来看,在我看来,读者(在这种情况下特别是Clojure)可以被认为是"语法预处理器".它的主要职责是读者宏和原始形式的扩展.那么,有两个例子:

'cheese         -->  (quote cheese)
{"a" 1 "b" 2}   -->  (array-map "a" 1 "b" 2)
Run Code Online (Sandbox Code Playgroud)

因此,读者接受程序的文本(由S-Expressions组成),然后构建并返回可以直接评估的内存数据结构.

这与事实有多远(我是否过度简化了整个过程)?读者还有哪些其他任务?考虑到Lisps的优点是它们的同质性(代码作为数据),为什么需要词法分析(如果这确实可以与读者的工作相比)?

谢谢!

lisp interpreter compilation clojure

10
推荐指数
1
解决办法
409
查看次数

标签 统计

clojure ×1

compilation ×1

interpreter ×1

lisp ×1