【问题标题】:What do BU and USR in compiler lingo mean?编译器术语中的 BU 和 USR 是什么意思?
【发布时间】:2022-09-13 20:57:25
【问题描述】:

在学习 llvm 和 clang 的过程中,我遇到了缩写 BUUSR。我一直无法找出它们的意思。

我假设BU 是某种单元- 就像TU 是一个翻译单元.
我看到它被使用here 谈论\“[...] 几个BUs 被压缩在一个更大的TU [...]\”中。

我还发现,显然USRs 可以generated来自ASTs。

  • 这些缩写代表什么以及它们的含义是什么?
  • 这些缩写是常见的编译器术语还是仅由 llvm 使用?

    标签: compiler-construction llvm abstract-syntax-tree


    【解决方案1】:

    引用the clang documentation

    统一符号解析 (USR) 是一个字符串,用于标识程序中的特定实体(函数、类、变量等)。可以跨翻译单元比较 USR 以确定,例如,当一个翻译中的引用引用另一个翻译单元中定义的实体时。

    同样来自the clang-tags User Manual

    符号不能仅通过其拼写来识别:需要上下文信息来消除在不同范围内使用相同拼写的歧义。为了在项目中的所有翻译单元中唯一标识一个符号,clang 定义了统一符号分辨率。

    至于BU,这可能是指Boost.Units library

    【讨论】:

    • 谢谢 - 这清除了有关 USR 的问题!我添加了一个链接,指向我看到 BU 开始使用的地方。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多