54 lines
1.1 KiB
Markdown
54 lines
1.1 KiB
Markdown
# 3. Architecture de compilation
|
|
|
|
## 3.1 Pipeline — V1 REQUIS — FIGÉ
|
|
|
|
```text
|
|
Source
|
|
-> lexer
|
|
-> parser
|
|
-> AST
|
|
-> modèle sémantique
|
|
-> HIR
|
|
-> Sase IR
|
|
-> backend / interpréteur
|
|
```
|
|
|
|
L'AST ne doit pas être couplé directement à LLVM.
|
|
|
|
Le Sase IR est la frontière principale entre la sémantique Saselang et les backends.
|
|
|
|
## 3.2 Interpréteur — V1 REQUIS — À FINALISER
|
|
|
|
La V1 doit inclure un interpréteur Saselang.
|
|
|
|
La représentation exacte interprétée reste à décider :
|
|
|
|
```text
|
|
HIR
|
|
Sase IR
|
|
bytecode dérivé de Sase IR
|
|
```
|
|
|
|
Le choix ne doit pas créer une seconde sémantique du langage.
|
|
|
|
## 3.3 Backend LLVM — V1 REQUIS — FIGÉ
|
|
|
|
LLVM est le premier backend compilé.
|
|
|
|
Il doit pouvoir produire selon la cible et la configuration :
|
|
|
|
```text
|
|
machine code
|
|
object file
|
|
native executable
|
|
static library
|
|
dynamic/shared library
|
|
textual assembly
|
|
```
|
|
|
|
L'assembleur textuel est un artefact de backend, pas une syntaxe du langage Saselang.
|
|
|
|
NASM est le premier dialecte explicite à étudier pour x86/x86_64. Il ne doit pas être imposé aux architectures où il n'est pas pertinent.
|
|
|
|
---
|