Repository navigation
Libro 21 Self hosting
S1 è l'interprete di tutto Triad scritto in Triad-Core ed eseguito dal seed. Quando esisterà,
gli esempi di examples/ gireranno e la suite Full diventerà verde. Oggi è allo stadio di
prototipi, nella cartella selfhost/.
Ogni file esplora un pezzo del futuro interprete e termina con un piccolo test: main.td
(ambiente come lista piatta, verificato dalla CI che si aspetta Value: 10), value.td (valori
taggati simulati con interi), tokenizer.td (lettura di un token da un sorgente codificato come
lista di byte), parser.td, eval.td, program.td e alcuni abbozzi. I sorgenti completi sono
nell'appendice Sorgenti self-hosted.
Poiché S1 deve girare sul seed, ne rispetta i limiti (capitolo 12): usa l'helper get(xs, i) con
indici da 0 invece di xs[i], rappresenta le stringhe come liste di codici ASCII con la lunghezza
in testa, scrive env = push!(env, v), usa lambda a un parametro e funzioni con al massimo
quattro parametri. Questi file non girano con l'interprete di riferimento, che non ha get.
Le task S1.3–S1.15 di TASK.md tracciano il percorso: valori taggati, tokenizer e parser
completi, valutazione di espressioni e programmi, funzioni, chiusure e infine la conformità
eseguita sopra seed + S1. Il progetto del capitolo 13 è una versione in Core standard degli
stessi passi.
- S1 è in
selfhost/, a prototipi; la CI eseguemain.tdsul seed. - Il codice S1 rispetta i limiti del seed (
getda 0, liste di interi). - Il percorso è descritto in
TASK.md.
← Capitolo 20 — Il seed in codice macchina · Sommario · Capitolo 22 — Gli strumenti di sviluppo →
Parte prima
Parte seconda 4. Le parole del linguaggio 5. Valori e tipi 6. Espressioni, operatori e variabili 7. Decidere e ripetere 8. Funzioni e ricorsione 9. Lambda, chiusure e visibilità dei nomi 10. Liste e dati strutturati 11. Stringhe, simboli e byte 12. Quando le cose vanno storte 13. Progetto: un piccolo interprete
Parte terza 14. Tipi, struct e multiple dispatch 15. Programmazione logica 16. Codice come dato e macro 17. Garanzie, costrutti Full e interfaccia
Parte quarta 18. Anatomia del progetto e contratto di conformità 19. L'interprete di riferimento 20. Il seed in codice macchina 21. Verso il self-hosting 22. Gli strumenti di sviluppo
Appendici
- Riferimento dei builtin Core
- Catalogo conformance Core
- Catalogo conformance Full
- Sorgenti degli esempi
- Sorgenti self-hosted
- Documenti di riferimento
- Indice analitico
Manuale di consultazione