编译器如何处理编程语言中的模块

时间:2021-01-21 04:10:07

标签: compiler-construction

编译器获取一种语言的源代码并将其转换为机器码或字节码。

但是,在这个过程中,它是如何处理模块的。我的意思是文件顶部有包含/导入或该语言的任何关键字。它如何找到文件系统中导入语句中提到的(必需的)模块。

据我所知,在代码生成过程中经过语法分析后,源代码被转换为字节码或汇编代码。但我很困惑编译器如何跳转到所需的模块

1 个答案:

答案 0 :(得分:0)

直接的解决方案是将路径传递给编译器并让它搜索相关文件。

Oberon 及其后代(Java、C#)提倡一种不同的、更间接的方法。最初 Oberon 在数据库中查找具有命名空间的模块。 Java 将其简化为类路径(命名空间映射到子目录的目录列表),而 C# 通过 GAC 解析文件。

相关问题