Certains estiment qu’avant d’écrire un compilateur, il faut comprendre l’architecture des ordinateurs et savoir ce qu’un compilateur doit produire pour générer un code machine efficace. Les écoles et universités ont tendance à accorder de moins en moins d’importance à l’architecture des ordinateurs et à la programmation système, mais ces connaissances restent essentielles pour décrocher les meilleurs postes du secteur.
Un utilisateur mentionne qu’un cours en particulier l’a aidé à réussir les entretiens des équipes d’ingénierie compilateur chez les entreprises MANGA (Meta, Apple, Nvidia, Google, Amazon). Le cursus en systèmes de calcul bas niveau de l’université de Waterloo était déjà excellent, et il contribuait déjà à des projets de compilateurs open source, mais ce cours l’a aidé à répondre aux questions les plus difficiles pendant les entretiens.
Certains trouvent qu’il manque de ressources académiques approfondies sur les optimisations avancées de compilateur. Beaucoup de cours restent de niveau introductif, et pour apprendre des techniques vraiment intéressantes, il faut aller explorer en profondeur le code source de compilateurs open source populaires.
Le domaine des compilateurs n’aurait pas beaucoup évolué depuis environ 30 ans. Quelqu’un enseignait à l’université de Pérouse entre 2004 et 2006, et les supports utilisés à l’époque avaient déjà 15, 20 ou 25 ans. Il semble toutefois qu’il y ait eu des changements récemment.
Certains se réjouissent de disposer d’un cours permettant d’apprendre des sujets avancés à leur propre rythme. Ils souhaitaient faire carrière comme ingénieur compilateur, mais il existe peu de formations et d’opportunités professionnelles dans leur région. Le marché de l’emploi américain est très compétitif, et ils ne savent pas comment y entrer. Un cours suivi pendant leur licence reste leur seule expérience.
Le cours inclut aussi une « théorie unifiée du garbage collection », ce qui permet aux étudiants d’acquérir une compréhension correcte du reference counting (RC) et du tracing garbage collection (GC).
Cela semble fondamentalement identique à ce qui était couvert dans un cours général de construction de compilateurs suivi il y a 20 ans. Quelques nouveaux articles sont liés et valent le détour. Après 18 ans sans avoir regardé le code source de compilateurs, quelqu’un a l’impression d’avoir pris du retard sur le profiling et les optimisations basées sur les chemins d’exécution. En voyant le ML, il suppose aussi qu’il existe désormais des techniques SIMD plus avancées.
CS 6120 est un cours de doctorat sur l’implémentation des langages de programmation, donné par Adrian Sampson à l’université Cornell. Certains se demandent à quel point il est avancé.
Quelqu’un raconte avoir suivi ce cours en ligne pendant un été il y a quelques années et y avoir beaucoup appris. Il dit qu’il a trouvé très intéressant de soumettre une PR pour un petit problème dans Bril IR, puis de la corriger avec le professeur.
Certains se demandent s’il existe un cours préalable à celui-ci.
1 commentaires
Réactions sur Hacker News