2019 LLVM Developers’ Meeting: S. Haastregt & A. Stulova “An overview of Clang ”

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ก.ค. 2024
  • llvm.org/devmtg/2019-10/
    -
    An overview of Clang - Sven van Haastregt, Anastasia Stulova
    Slides: Coming soon
    -
    This tutorial will give an overview of Clang. We will cover the distinction between the Clang compiler driver and the Clang language frontend, with an emphasis on the latter. We will examine the different Clang components that a C program goes through when being compiled, i.e., lexing, parsing, semantic analysis, and LLVM IR generation. This includes some of the Clang Abstract Syntax Tree (AST), Type, and the Diagnostics infrastructure. We will conclude by explaining the various ways in which Clang is tested.
    The tutorial is aimed at newcomers who have a basic understanding of compiler concepts and wish to learn about the architecture of Clang or start contributing to Clang.
    -
    Videos Filmed & Edited by Bash Films: www.BashFilms.com
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 7

  • @malharjajoo7393
    @malharjajoo7393 3 ปีที่แล้ว +8

    10:22 - Core components of Clang Front end
    12:49 - Lexer & Preprocessor
    17:33 - Parser
    22:46 - Sema (Semantic Analyzer)
    26:33 - Diagnostics subsystem
    29:40 - AST
    34:50 - Codegen
    38:26 - working on Clang source
    - 41:47- Testing Clang
    50:21 - some useful links

  • @MarcosScheeren
    @MarcosScheeren 4 ปีที่แล้ว +7

    This round of 101, introductions and overviews from the 2019 dev meeting it's really great. Listening from people deep into the LLVM's projects gives valuable insights on what really matters on the various LLVM pipelines.

  • @aleksay2142
    @aleksay2142 4 ปีที่แล้ว +2

    Nice talk. It is great to see the separate track for the talks like this. Also, It would be great to add this information to the docs.

  • @UberOcelot
    @UberOcelot 3 ปีที่แล้ว

    For those watching things in 2021 or later. The question about Clang modes that help with error explosion, this is more or less referring to template errors. Concepts which can be used to constrain templates in the same vein as Rust Trait-bounds, will greatly improve the readability of templates. The issue with templates lies in the stage in which they are processes and the lack of type information, in many ways templates act like a structured version of C macros. While Rust generics are processed in AST with type bound checking to reject errors early, C++ will instead generate heaps of bad code that will only be rejected at a later stage. Concepts in C++20 rectifies some of these shortcomings, and we can see that in it's better error reporting.

  • @vxanica
    @vxanica 2 ปีที่แล้ว

    Nice talk~! Anastasia Stulova is a really good speaker. I learned a lot about clang.

  • @gauravbhokare
    @gauravbhokare 4 ปีที่แล้ว +1

    Only true dragon-borns come here !

  • @vxanica
    @vxanica 2 ปีที่แล้ว

    th-cam.com/video/5kkMpJpIGYU/w-d-xo.html for the last question. Why not use parser generator to write the parser? I suppose that, for C++, it is just not possible since some parsing process needs to be decided after some little semantic check. for C++ it is not possible I think.