# 4.2惰性评估

> 译者： [https://sicp.comp.nus.edu.sg/chapters/81](https://sicp.comp.nus.edu.sg/chapters/81)

Note: this section is a work in progress!

现在我们有了一个表示为JavaScript程序的评估器，我们只需修改评估器就可以在语言设计中尝试其他选择。 实际上，通常是通过首先编写一个将新语言嵌入到现有高级语言中的评估程序来发明新语言的。 例如，如果我们希望与JavaScript社区的另一个成员讨论对JavaScript的拟议修改的某些方面，则可以提供体现该更改的评估器。 接收者然后可以尝试使用新的评估程序，并发送回注释以作进一步修改。 高层次的实施基础不仅使评估程序的测试和调试更加容易； 此外，嵌入使设计人员可以从基础语言中获取 [[1]](81#footnote-1) 功能，就像我们的嵌入式JavaScript评估程序使用基础JavaScript中的基元和控件结构一样。 只有在以后（如果有的话），设计人员才可以用低级语言或硬件来构建完整的实现。 在本节和下一部分中，我们将探索JavaScript的一些变体，这些变体提供了显着的附加表达能力。

* * *

[[1]](81#footnote-link-1) Snarf: <quote>To grab, especially a large document or file for the purpose of using it either with or without the owner's permission.</quote> Snarf down: <quote>To snarf, sometimes with the connotation of absorbing, processing, or understanding.</quote> (These definitions were snarfed from <citation>Steele et al. 1983</citation>. See also <citation>Raymond 1993</citation>.)

