2009-10-13 8 views
8

Qualcuno sa di corsi online/lezioni universitarie che comprendono un corso di compilatore tipico? Ho avuto una teoria dell'informatica, ma sfortunatamente la mia scuola non ha offerto un corso sulla costruzione di compilatori.corsi per compilatori autodidatti/buoni libri introduttivi per compilatori?

So che ci sono lezioni là fuori; Speravo in raccomandazioni per offerte particolarmente buone.

Inoltre, ci sono libri per principianti sul campo? Qualcosa, oltre al libro dei draghi, almeno. Il livello per principianti va bene, so che ci sono molti testi di livello intermedio avanzato sul mercato.

Grazie!

+1

Duplicare (molte volte) http://stackoverflow.com/questions/1669/learning -to-write-a-compiler e altri – cletus

+0

non ho mai visto una spiegazione migliore della compilazione rispetto al libro Dragon. Potresti fare peggio di perseverare con esso. –

+1

Non sono d'accordo. Penso che l'implementazione di Modern Compiler in {ML, Java, C} di Andrew Appel sia migliore del libro di Dragon. Il libro dei draghi va bene come riferimento, ma penso che se stai cercando un apprendimento puramente auto-diretto, l'implementazione di Modern Compiler è un lavoro più completo e coerente. – Gian

risposta

8

Edit: nel caso in cui questo SO domande non ottiene chiuso, non controllare questo duplicate SO posting che risponde alla domanda in un modo molto più esaustivo.

Un paio di le risorse in loco OpenCourseWare del MIT:

6.035 Computer Language Engineering
6.827 Multithreaded Parallelism: Languages and Compilers

Il primo probabilmente lungo le linee di quello che aveva in mente. Include anche alcuni video delle lezioni.
Quest'ultimo ... positivamente un corso di livello universitario. Inoltre, l'attenzione si concentra maggiormente sul multi-threading rispetto alla tradizionale catena di compilazione. (Ma poi di nuovo per i thread di codice chunk in modo efficiente si deve avere una conoscenza decente della semantica espressa nel programma originale ...)

+0

Qualcuno ha le risposte da quel duplicato di post SO? È stato cancellato per motivi di moderazione. – TravisG

5

È possibile controllare questo corso: http://ecee.colorado.edu/ecen4553

informazioni sul corso linguaggi di programmazione

ad alto livello come Python rendono la programmazione di un gioco da ragazzi, ma come funzionano? C'è un grande vuoto tra Python e la macchina istruzioni per computer moderni. Impara come tradurre programmi Python fino alla lingua Intel x86 assembly .

maggior parte dei corsi compilatore insegnano una fase del compilatore in un momento, come ad esempio parsing, analisi semantica e allocazione dei registri. Il problema con l'approccio è che è difficile per capire come tutto il compilatore si adatta allo insieme e perché ogni fase è progettata così com'è. Invece, ogni settimana implementiamo successivamente un sottoinsieme più grande del linguaggio Python . Il primo sottogruppo è una minuscola lingua delle istruzioni aritmetiche e quando viene eseguita la lingua include oggetti, ereditarietà e funzioni di prima classe.

Prerequisiti: Ottima conoscenza di almeno un linguaggio di programmazione (Java, C, C++, Python, ecc.). Gli studenti faranno molto di programmazione in Python, ma non è richiesta la conoscenza di Python precedente a . Il corso inizierà con un corso di crash su Python e Python è uno dei lingue più facili da imparare. La conoscenza di di un assembly aiuta, ma non è richiesta.

+0

Grazie per il collegamento. Dovrò vedere se ha più informazioni sul corso online di quanto il sito web indichi: sembra che un sacco di materiale per le lezioni non sia lì o nascosto alla vista del pubblico. – larryq

+0

Nuovo link: http://ecee.colorado.edu/ecen4553/fall10/ – prasopes

+1

@prasopes, grazie. Ho aggiunto un collegamento senza anno, perché potrebbe rompere di nuovo in futuro. –

Problemi correlati