Compilation(INF400)
| Nom du Cours | Semestre du Cours | Cours Théoriques | Travaux Dirigés (TD) | Travaux Pratiques (TP) | Crédit du Cours | ECTS | |
|---|---|---|---|---|---|---|---|
| INF400 | Compilation | 7 | 3 | 0 | 0 | 3 | 5 |
| Cours Pré-Requis | INF114 |
| Conditions d'Admission au Cours | INF114 |
| Langue du Cours | Turc |
| Type de Cours | Obligatoire |
| Niveau du Cours | Licence |
| Enseignant(s) du Cours | Burak ARSLAN ext-gsu@burakarslan.com (Email) |
| Assistant(e)s du Cours | Eda BAHAR (Email) |
| Objectif du Cours | Ce cours vise à présenter de manière pratique les techniques de programmation utilisées pour implémenter des langages de haut niveau en compilant du code pour machines à pile (WebAssembly). Dans le cadre du projet de cours, les étudiants conçoivent et implémentent un compilateur AOT fonctionnel en C++ moderne pour un langage académique appelé « Course PL ». |
| Contenus |
1. Introduction, concepts, contenu du cours, pipeline de compilation 2. Récapitulatif C++ 3. Définition du langage de programmation du cours, ergonomie des langages de programmation 4. Analyse lexicale : expressions régulières, automates finis, flex 5. Analyse syntaxique : arbres de syntaxe abstraite, grammaires hors contexte, traduction dirigée par la syntaxe, analyse descendante, analyse ascendante, bison 6. Semaine des Partiels 7. Récapitulatif de l’analyse lexicale et syntaxique 8. Analyse sémantique I : portées, types 9. Analyse sémantique II : règles d’inférence, vérification de types 10. Génération de code : machines à pile, WebAssembly, environnement d’exécution WASM 11. Sémantique opérationnelle 12. Compilation vers WASM I : gestion des ressources, types primitifs, activations 13. Compilation vers WASM II : implémentation de la programmation orientée objet, implémentation des méthodes 14. Représentations İntermédiaire, optimisation |
| Acquis d'Apprentissage du Cours |
A l'issue de cette formation, les étudiants seront capables de: - Comprendre et expliquer les principales techniques et algorithmes utilisés dans les compilateurs. - Implémenter les concepts de haute niveau en fonction des langages de bas niveau - Utiliser les méthodes pratiques d'implémentation des compilateurs |
| Méthodes d'Enseignement | Exposé, discussion, démonstration, étude de cas, résolution de problème, apprentissage coopératif, projet, prise de tête |
| Ressources |
- Compilateurs : principes, techniques et outils – A. Aho, R Sethi, J Ullman – InterEditions - Compilateurs – D. Grune, H. Bal, V. Jacobs,K. Langendoen, Dunod. |
Intitulés des Sujets Théoriques
| Semaine | Intitulés des Sujets |
|---|---|
| 1 | Introduction, concepts, contenu du cours, pipeline de compilation |
| 2 | Récapitulatif C++ |
| 3 | Définition du langage de programmation du cours, ergonomie des langages de programmation |
| 4 | Analyse lexicale : expressions régulières, automates finis, flex |
| 5 | Analyse syntaxique : arbres de syntaxe abstraite, grammaires hors contexte, traduction dirigée par la syntaxe, analyse descendante, analyse ascendante, bison |
| 6 | Semaine des Partiels |
| 7 | Récapitulatif de l’analyse lexicale et syntaxique |
| 8 | Analyse sémantique I : portées, types |
| 9 | Analyse sémantique II : règles d’inférence, vérification de types |
| 10 | Génération de code : machines à pile, WebAssembly, environnement d’exécution WASM |
| 11 | Sémantique opérationnelle |
| 12 | Compilation vers WASM I : gestion des ressources, types primitifs, activations |
| 13 | Compilation vers WASM II : implémentation de la programmation orientée objet, implémentation des méthodes |
| 14 | Représentations İntermédiaire, optimisation |
Intitulés des Sujets Pratiques
| Semaine | Intitulés des Sujets |
|---|
Contribution à la Note Finale
| Numéro | Frais de Scolarité | |
|---|---|---|
| Contribution du contrôle continu à la note finale | 3 | 60 |
| Contribution de l'examen final à la note finale | 1 | 40 |
| Toplam | 4 | 100 |
Contrôle Continu
| Numéro | Frais de Scolarité | |
|---|---|---|
| Devoir | 0 | 0 |
| Présentation | 0 | 0 |
| Examen partiel (temps de préparation inclu) | 0 | 0 |
| Projet | 3 | 60 |
| Travail de laboratoire | 0 | 0 |
| Autres travaux pratiques | 0 | 0 |
| Quiz | 0 | 0 |
| Devoir/projet de session | 0 | 0 |
| Portefeuille | 0 | 0 |
| Rapport | 0 | 0 |
| Journal d'apprentissage | 0 | 0 |
| Mémoire/projet de fin d'études | 0 | 0 |
| Séminaire | 0 | 0 |
| Autre | 0 | 0 |
| Make-up | 0 | 0 |
| Toplam | 3 | 60 |
| No | Objectifs Pédagogiques du Programme | Contribiton | ||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 1 | Matematik, fizik ve mühendislik bilimlerine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinin modellenmesi ve çözümünde kullanabilme becerisi. | X | ||||
| 2 | Karmaşık bilgisayar mühendisliği problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. | X | ||||
| 3 | Yazılımsal veya donanımsal karmaşık bir sistemi, süreci veya donanımı gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. | X | ||||
| 4 | Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. | X | ||||
| 5 | Analitik düşünce ile bir sistemi, sistem bileşenini ya da süreci analiz etme, modelleme, deney tasarlama ve yapma, veri toplama, çözüm algoritmaları üretebilme, uygulamaya alma ve geliştirme becerileri. | X | ||||
| 6 | Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. | |||||
| 7 | Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, yazılım ve donanım tasarımını, gerekirse teknik resim metotları kullanarak raporlayabilme, etkin sunum yapabilme becerisi. | X | ||||
| 8 | Bilgiye erişebilme ve bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi | |||||
| 9 | Yaşam boyu öğrenmenin gerekliliği bilinci; kendini sürekli yenileme becerisi. | |||||
| 10 | Mesleki etik ilkelerine uygun davranma, mesleki sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi. | X | ||||
| 11 | Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi. | |||||
| 12 | Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi. | |||||
| 13 | Bilgisayar mühendisliği uygulamalarının hukuki ve etik boyutları konusunda farkındalık. | |||||
| Activités | Nombre | Durée | Charge totale de Travail |
|---|---|---|---|
| Durée du cours | 14 | 3 | 42 |
| Préparation pour le cours | 14 | 3 | 42 |
| Examen partiel (temps de préparation inclu) | 1 | 20 | 20 |
| Examen final (temps de préparation inclu) | 1 | 22 | 22 |
| Charge totale de Travail | 126 | ||
| Charge totale de Travail / 25 | 5.04 | ||
| Crédits ECTS | 5 | ||


