编译器获取一种语言的源代码并将其转换为机器码或字节码。
但是,在这个过程中,它如何处理模块。我的意思是在文件的顶部有include/import或者其他关键字。它如何在文件系统中找到import语句中提到的(必需的)模块。
据我所知在代码生成过程中经过语法分析将源代码转换为字节码或汇编码。但我很困惑编译器如何跳转到所需的模块
直接的解决方案就是将路径传递给编译器,让它搜索相关文件。
Oberon及其后代(Java、c#)提倡一种不同的、更间接的方法。最初,Oberon在数据库中查找具有名称空间的模块。Java将其简化为一个类路径(一个目录列表,其命名空间映射到子目录),c#通过GAC解析文件。