gpt4 book ai didi

c - 元循环解释器的确切定义是什么?

转载 作者:太空狗 更新时间:2023-10-29 16:29:22 26 4
gpt4 key购买 nike

调用用C编写的C编译器或用PHP元循环编写的PHP解释器是否合法?这个定义是否只对特定类型的语言有效,比如 Lisp?总之,一个解释器要满足什么条件才能被称为Metacircular?

最佳答案

元循环解释器是用相同语言的(可能更基本的)实现编写的解释器。通常这样做是为了尝试向一种语言添加新功能,或创建一种不同的方言。

这个过程与 Lisp 相关联的原因是因为高度清晰的论文 "The Art of the Interpreter" ,其中显示了几个基于 Scheme 的元循环解释器。 (这篇论文是 SICP 一书的核心,它的第四章通过其他人创建了一个延迟评估的方案。)

这在 Lisp、Prolog 和 Forth 等“同象”语言(一种代码可以在运行时作为数据进行操作的语言)中大大更容易做到。

关于您的直接问题 - C 编译器根本不是解释器。用自己的语言编写的编译器是“自托管”,这是一个类似的属性,但与 Bootstrap 更相关。 PHP 中的 PHP 解释器可能不算在内,因为您可能会在此过程中重新实现大量的语言。传统的元循环解释器的主要好处是没有必要这样做——你可以插入现有的解析器、垃圾收集器(如果有的话)等,然后只写一个顶级计算器具有不同的语义。在 Scheme 或 Prolog 中,它通常少于一页代码。

关于c - 元循环解释器的确切定义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1481053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com