Compilation(INF400)
| Course Code | Course Name | Semester | Theory | Practice | Lab | Credit | ECTS |
|---|---|---|---|---|---|---|---|
| INF400 | Compilation | 7 | 3 | 0 | 0 | 3 | 5 |
| Prerequisites | INF114 |
| Admission Requirements | INF114 |
| Language of Instruction | Turkish |
| Course Type | Compulsory |
| Course Level | Bachelor Degree |
| Course Instructor(s) | Burak ARSLAN ext-gsu@burakarslan.com (Email) |
| Assistant | Eda BAHAR (Email) |
| Objective | Acquire formalisms, concepts methods and tools used in the design of compilers |
| Content | Introduction, Lexical analysis, Language and grammar, Introduction to lex/flex, Parse Trees, Syntax nalysis: introduction, Syntax analysis: Top-Down Parsing, Syntaxic analysis: Bottom-Up Parsing, Introduction to YACC/javaCC, Semantic analysis, Syntax-Directed Translation, Type checking and Symbol-Table Management, Code Generation, Code Optimization |
| Course Learning Outcomes |
- Deep understanding of treatment programs in high level language by compilers. - Knowledge necessary to design language compilers |
| Teaching and Learning Methods | Use of slideshow during the class and available online. Exercises applications during each class. Programming project to realize in group. |
| References |
- Compilateurs : principes, techniques et outils – A. Aho, R Sethi, J Ullman – InterEditions - Compilateurs – D. Grune, H. Bal, V. Jacobs,K. Langendoen, Dunod. |
Theory Topics
| Week | Weekly Contents |
|---|---|
| 1 | Introduction |
| 2 | Lexical analysis |
| 3 | Language and grammar |
| 4 | Introduction to lex/flex |
| 5 | Parse Trees |
| 6 | Syntax analysis: introduction |
| 7 | Syntax analysis: Top-Down Parsing |
| 8 | Syntaxic analysis: Bottom-Up Parsing |
| 9 | Introduction to YACC / javaCC |
| 10 | Semantic analysis |
| 11 | Syntax-Directed Translation |
| 12 | Type checking and Symbol-Table Management |
| 13 | Code Generation |
| 14 | Code Optimization |
Practice Topics
| Week | Weekly Contents |
|---|
Contribution to Overall Grade
| Number | Contribution | |
|---|---|---|
| Toplam | 0 | 0 |
In-Term Studies
| Number | Contribution | |
|---|---|---|
| Assignments | 1 | 50 |
| Presentation | 0 | 0 |
| Midterm Examinations (including preparation) | 0 | 0 |
| Project | 0 | 0 |
| Laboratory | 0 | 0 |
| Other Applications | 0 | 0 |
| Quiz | 0 | 0 |
| Term Paper/ Project | 0 | 0 |
| Portfolio Study | 0 | 0 |
| Reports | 0 | 0 |
| Learning Diary | 0 | 0 |
| Thesis/ Project | 0 | 0 |
| Seminar | 0 | 0 |
| Other | 0 | 0 |
| Toplam | 1 | 50 |
| No | Program Learning Outcomes | Contribution | ||||
|---|---|---|---|---|---|---|
| 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. | |||||
| Activities | Number | Period | Total Workload |
|---|---|---|---|
| Class Hours | 14 | 3 | 42 |
| Working Hours out of Class | 14 | 3 | 42 |
| Midterm Examinations (including preparation) | 1 | 20 | 20 |
| Final Examinations (including preparation) | 1 | 22 | 22 |
| Total Workload | 126 | ||
| Total Workload / 25 | 5.04 | ||
| Credits ECTS | 5 | ||


