9
votes

Cours de compilateur autodidacte / bons livres de compilateur d'introduction?

Quelqu'un peut-il connaître des courses en ligne / des conférences universitaires qui comprennent un cours typique du compilateur? J'ai eu la théorie de l'informatique, mais malheureusement, mon école n'a pas offert de cours dans la construction du compilateur.

Je sais qu'il y a des conférences là-bas; J'espérais des recommandations pour des offres particulièrement bonnes.

Aussi, y a-t-il des livres pour les débutants sur le terrain? Quelque chose d'autre que le livre de dragon, au moins. Le niveau des débutants va bien, je sais qu'il y a beaucoup de textes avancés intermédiaires sur le marché.

Merci!


4 commentaires

Dupliquer (plusieurs fois sur) Stackoverflow.com/Questtions/1669 / apprendre-à-écrire-a-compiler r et autres


Je n'ai jamais vu une meilleure explication de la compilation que dans le livre de dragon. Vous pourriez faire pire que de persévérer avec elle.


Je ne suis pas d'accord. Je pense que la mise en œuvre du compilateur moderne en {ml, Java, C} par Andrew Appel est meilleure que le livre Dragon. Le livre Dragon va bien comme référence, mais je pense que si vous recherchez un apprentissage purement autonome, la mise en œuvre moderne du compilateur est un travail plus complet et cohérent.


Dupliqué possible de Apprentissage des ressources sur des analyseurs, des interprètes et des compilateurs


3 Réponses :


4
votes

Jetez un coup d'œil à ce http://scheme2006.cs.uppicago.edu/ 11-ghuloum.pdf ;)

C'est une introduction très basique, vous savez que les compilateurs modernes sont un peu compliqués.


0 commentaires

5
votes

Vous pouvez consulter ce cours: http://ecee.colorado.edu/ecen4553 < / p>

Informations sur le cours

langages de programmation de haut niveau comme Python facilite la programmation d'une brise, mais comment travaillent-ils? Il y a un grand fossé entre python et machine Instructions pour les ordinateurs modernes. Apprenez à traduire des programmes Python tout le chemin de l'assemblage Intel X86 langue.

La plupart des cours compilateurs enseignent une phase du compilateur à la fois, comme analyse, analyse sémantique, et Enregistrer l'allocation. Le problème avec cette approche est qu'il est difficile de comprendre comment tout le compilateur convient ensemble et pourquoi chaque phase est a conçu la façon dont c'est. Au lieu de cela, chacun semaine nous mettons en œuvre un succès successivement sous-ensemble plus vaste du langage Python. Le tout premier sous-ensemble est un minuscule langue des déclarations arithmétiques, et Au moment où nous avons terminé la langue inclut des objets, héritage et fonctions de première classe.

Prérequis: fluidité dans au moins un Langage de programmation (Java, C, C ++, Python, etc.). Les étudiants feront beaucoup de programmation en python, mais avant La connaissance de Python n'est pas requise. Le cours commencera par un crash Cours sur Python et Python est l'un des les langues les plus faciles à apprendre. Avant Connaissance d'une langue d'assemblage aide, mais n'est pas nécessaire.


2 commentaires

Merci pour le lien. Je vais devoir voir s'il a plus d'informations sur le cours que le site Web indique ... On dirait que beaucoup de matériaux de conférence ne sont pas là ou masqués de la vue publique.


@prasopes, merci. J'ai ajouté un lien sans l'année, car cela pourrait se casser à nouveau à l'avenir.



10
votes

EDIT : Au cas où ces questions ne sont pas fermées, vérifiez ceci Dupliquer ainsi en affichage qui répond à la question de manière beaucoup plus exhaustive.

Quelques Ressources sur le site OpenCoursware de MIT:

6.035 Ingénierie de la langue d'ordinateur
6.827 parallélisme multithreadé: langues et compilateurs

L'ancien probablement le long des lignes de ce que vous aviez à l'esprit. Il comprend également certaines des vidéos de conférences.
Ces derniers ... positivement un cours de niveau supérieure. La mise au point également est plus sur le multi-filetage que la chaîne de compilation traditionnelle. (Mais encore une fois pour chuchoter des fils de code efficacement, il faut une compréhension décente de la sémantique exprimée dans le programme d'origine ...)


1 commentaires

Est-ce que quelqu'un a les réponses de cette duplication de la publication? Il a été supprimé en raison de raisons de modération.