gpt4 book ai didi

.net - F# 编译器是单程编译器吗?

转载 作者:行者123 更新时间:2023-12-03 13:40:58 26 4
gpt4 key购买 nike

我环顾网络,只找到 1 条关于 F# using one pass compilation 的提及在个人博客中,而不是在官方文档中。

From my experiences so far it seems that F# uses one pass compilation such that you can only reference types or functions which have been defined either earlier in the file you’re currently in or appear in a file which is specified earlier in the compilation order.



这个说法是真的吗?

最佳答案

您需要定义“通过”的含义才能回答这个问题。

许多编译器被称为多“阶段”,这意味着将源文本转换为可执行机器代码或 IL 代码的不同阶段。

我认为“pass”这个词已经过时了,它指的是非常早期的编译器,它们可能在处理过程中多次读取实际源文件,而真正的商业级编译器几乎肯定不会这样做或需要这样做。

例如,多年前我为 Windows 开发了 PL/1(又名 PL/I)编译器,并且经历了几个阶段,它们是:

  • 解析 - 使用源文件并创建解析树
  • 声明 - 将解析树中的标识符解析为声明的名称
  • 优化 - 分析解析树并优化重组。
  • codegen - 分析解析树并生成 OBJ 文件。

  • 今天的大多数编译器几乎都这样做(无论是否在不同的阶段 - 但它们做同样的工作)。

    关于.net - F# 编译器是单程编译器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43463526/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com