如何为像JS这样的语言实现模块系统?

问题描述 投票:0回答:1

目前,我已经学会按照本指南编写自己的编译器:https://craftinginterpreters.com/。但是作者没有提到如何为该语言实现模块系统。我也找不到任何可以在互联网上直接理解的教程,让我知道我应该学习什么来实现它。

非常感谢有人知道这个主题的任何好材料。

module compiler-construction programming-languages
1个回答
0
投票

您将不会找到有关构建模块系统的优秀教程,这是因为关于好的模块系统的外观还没有达成共识,而且很多细节都取决于语言的确切性质。

如果您看到的话,将会发现关于如何针对不同语言修复损坏的模块系统的长期讨论。您会发现这些讨论的原因,因为几乎每种语言都是以模块系统(或模块系统本身)开始的,而模块系统无法按预期运行。实际上,每种语言都必须沿途实施新的模块系统,从而产生向后兼容的问题,或者将自己屈从于原始实现中出现的任何无法纠正的缺陷。通过阅读这些讨论,您将学到很多东西。

部分原因是许多语言是由程序员设计的,他们对合理的模块系统几乎没有经验,甚至没有经验。尽量不要属于这一类。如果您有使用多个模块系统的经验,请在该经验的基础上设计更好的模块系统。并从这些系统的可靠评论家那里获得尽可能多的阅读。

而且不要期望第一次实现完美:-)确保在设计阶段就充分利用系统,并且能够在不损害原有代码的情况下进行调整。

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.