【问题标题】:How compilers handle modules in programming languages编译器如何处理编程语言中的模块
【发布时间】:2021-01-21 04:10:07
【问题描述】:

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

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

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

【问题讨论】:

标签: compiler-construction


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    相关资源
    最近更新 更多