Compilatori, interpreti, "little languages" e dintorni...
-
- Abelson, Sussman, "Structure and Interpretation of Computer Programs, 2nd ed.", MIT Press
- Aho, Sethi, Ullman, "Compilers - Principles, techniques, and tools", Addison-Wesley Longman
- Kaplan, "Constructing language processors for little languages", John Wiley & Sons
- Mak, "Writing compilers and interpreters", John Wiley & Sons
- Gries, "Principi di progettazione dei compilatori", Franco Angeli Editore
- Morgan, "Building an optimizing compiler", DP Digital Press
- Kennedy & Allen, "Optimizing Compilers for Modern Architectures", Morgan Kaufmann
- Winskel, "La semantica formale dei linguaggi di programmazione", UTET
- Bruno, "Linguaggi formali e compilatori", UTET
- Srikant & Shankar, "The Compiler Design Handbook", CRC Press
- Kaspersky, "Code Optimization", A-List Publishing
Inventare un "nuovo" linguaggio di ragionevole complessità non è un esercizio particolarmente frequente nella didattica informatica di base. Se ne parla semmai in corsi di dottorato e seminari piuttosto esoterici sulla progettazione formale di linguaggi secondo paradigmi molto specifici (dichiarativo, funzionale, constrained etc.).
Scrivere un compilatore o interprete per un linguaggio ben definito, asseverato e coerente, è già un compito applicativo sufficientemente impegnativo a livello didattico e/o di autoapprendimento, che richiede una lunga full immersion in nozioni complesse e molto peculiari, fortemente radicate nella conoscenza dell'architettura dei sistemi.
Oltre livelli piutto bassi di complessità (i "little languages" di Kaplan, o giù di lì), la progettazione di linguaggi e l'implementazione dei relativi processori sono compiti diversi e condotti da specialisti con preparazioni diverse, spesso anche molto divergenti (logici matematici e informatici teorici tra i progettisti di linguaggi, informatici applicativi o ingegneri gli implementatori di buoni compilatori o interpreti).
Questo vale in linea generale, naturalmente: per l'informatico quadratico medio è più probabile prendere facilmente confidenza col codice ed i concetti di un compilatore ottimizzante che con le notazioni formali necessarie a descrivere sintassi e semantica di un linguaggio di programmazione, permettendo di dimostrarne a priori coerenza ed altre proprietà in modo rigoroso, evitando quindi a monte situazioni penose, ambiguità e conflitti insolubili.
Certo, è vero che nel real world esiste anche roba come PHP e molti altri linguaggi che semplicemente non sono stati progettati...
Tutti gli utenti sono pregati di prendere visione del Regolamento del Forum e di rispettarlo.
Sì, un
blog ce l'ho perfino io: gli è che mi manca il tempo... già che ci siete, leggete questa selezione di
parole famose di alcuni tra i più grandi geni.
• Un plauso a Grisha Perelman, raro esempio di genuino anticonformismo umano e scientifico.
Potrebbero interessarti anche ...
-
Risposte: 1
Ultimo Post: 20-07-2020, 16:26
-
Risposte: 5
Ultimo Post: 30-07-2014, 12:45
-
Risposte: 3
Ultimo Post: 10-01-2010, 19:09
-
Risposte: 10
Ultimo Post: 21-06-2007, 20:06
-
Risposte: 8
Ultimo Post: 11-10-2005, 17:21