L’insegnamento si propone di fornire allo studente una visione introduttiva dei problemi connessi alla definizione e alla traduzione dei linguaggi di programmazione, con particolare riferimento al progetto e alla costruzione di compilatori. Le metodologie e le tecniche presentate sono utili in generale come formalismi per definire il comportamento di un sistema o per realizzare traduttori più semplici di un compilatore vero e proprio.