@@ -77,6 +77,9 @@ Terminology
7777 correctness of the source code. The parser will request tokens from the lexer
7878 and after performing semantic analysis of the production, generates an
7979 abstract representation of the source called an AST.
80+ * Sema -- the part of the compiler responsible for determining semantic
81+ correctness of the source code. It is closely related to the parser and is
82+ where many diagnostics are produced.
8083* Diagnostic -- a message to the user about properties of the source code. For
8184 example, errors or warnings and their associated notes.
8285* Undefined behavior -- behavior for which the standard imposes no requirements
@@ -88,11 +91,14 @@ Terminology
8891 Note, the optimizer assumes the code has no undefined behavior, so if the code
8992 does contain undefined behavior, it will often behave differently depending on
9093 which optimization level is enabled.
91- * Front end -- the Lexer, Preprocessor, Parser, semantic analysis, and LLVM IR
92- code generation parts of the compiler .
94+ * Frontend -- the Lexer, Preprocessor, Parser, and Sema parts of the compiler.
95+ * Middle-end -- converts the AST into LLVM IR, adds debug information, etc .
9396* Backend -- the parts of the compiler which run after LLVM IR code generation,
9497 such as the optimizer.
9598
99+ See the :doc: `InternalsManual ` for more details about the internal construction
100+ of the compiler.
101+
96102Support
97103-------
98104Clang releases happen roughly `every six months <https://llvm.org/docs/HowToReleaseLLVM.html#annual-release-schedule >`_.
0 commit comments