@@ -15,15 +15,23 @@ API is **unstable**. You need to invest significant ongoing effort to maintain i
1515
1616### The Kotlin compiler and compiler plugins
1717
18- ![ Kotlin compiler stages] ( compiler-stages.svg ) {width=300}
19-
20- The Kotlin compiler:
21-
22- 1 . Parses the source code and turns it into a structured syntax tree.
23- 2 . Analyzes and resolves the code by determining what it means, resolving names, checking types, and enforcing visibility rules.
24- 3 . Generates an Intermediate Representation (IR), a data structure that acts as a bridge between source code and machine code.
25- 4 . Progressively lowers the IR into simpler forms.
26- 5 . Translates the lowered IR into target-specific output, such as JVM bytecode, JavaScript, or native machine code.
18+ <list columns =" 2 " >
19+ <li>
20+ <p></p>
21+ <br>
22+ <img src="compiler-stages.svg" width="400" alt="Kotlin compilation stages"/>
23+ </li>
24+ <li>
25+ <p>The Kotlin compiler:</p>
26+ <ol>
27+ <li>Parses the source code and turns it into a structured syntax tree.</li>
28+ <li>Analyzes and resolves the code by determining what it means, resolving names, checking types, and enforcing visibility rules.</li>
29+ <li>Generates an Intermediate Representation (IR), a data structure that acts as a bridge between source code and machine code. </li>
30+ <li>Progressively lowers the IR into simpler forms.</li>
31+ <li>Translates the lowered IR into target-specific output, such as JVM bytecode, JavaScript, or native machine code.</li>
32+ </ol>
33+ </li>
34+ </list >
2735
2836Plugins can affect the initial compiler stages through the frontend API, changing how the compiler resolves code.
2937For example, a plugin can add annotations or introduce new methods without bodies, or change visibility modifiers. These
0 commit comments