Il libro dei draghi è una grande introduzione pratica.
Non copre ciò che rende un linguaggio di programmazione adatto / utilizzabile per un particolare compito, ed è stato scritto prima della maggior parte dei linguaggi moderni, ma introduce le principali sotto-discipline che si trovano tra codice e un programma in esecuzione. Leggilo e sarai ben preparato a comprendere sviluppi più recenti in sotto-campi come:
- Notazione: le notazioni utilizzate per grammatiche come modulo Backus-Naur ,
- Teoria grammaticale: un po 'sulla gerarchia di grammatiche di Chomsky e abituarsi a pensare a una lingua come a un set di stringhe con semantica associata .
-
Lexing : la distinzione tra i lexer (operatori sul token stream) e grammatiche,
-
Analisi : come le grammatiche vengono convertite in alberi di analisi,
- Ispezione: come eseguire le ottimizzazioni su alberi di analisi, derivare tabelle di simboli e simili
- Pre-compilazione: come convertire gli alberi di analisi in una varietà di forme intermedie (come modulo a tre operandi ) che avere la struttura di un vero set di istruzioni, ma senza le ipotesi specifiche dell'architettura,
-
Ottimizzazione : conversione di programmi in programmi più semplici / più efficienti ma equivalenti
- Generazione binaria: come convertire questi moduli intermedi in istruzioni reali che possono essere eseguite da un processore o da una macchina virtuale
Il libro del drago non copre i moderni sistemi di tipi, la semantica formale o altri strumenti che aiutano nella correttezza del programma. Per una buona introduzione ai sistemi di tipo e al ragionamento formale, vedi "Tipi e linguaggi di programmazione" di B. Pierce .
Una volta compreso il ruolo svolto da ciascuno dei vari campi secondari, dovresti iniziare a cercare i documenti intitolati "Sondaggio di ... nei linguaggi di programmazione" e "Sviluppi recenti nei linguaggi di programmazione per ...".