Theory :
Lab :
   ~ Back to Taif University on NOV 2012!      ~ Publications, Patents, Databases, Software Engineering, Graphics, Image Processing, Cisco Training, Lecture Notes are updated!      ~ E-Journals, Software Engineering, Cisco Training, Everyday English, and Album Sections have been updated!      ~ This website will be updated gradually since I am busy with my master project      ~ Welcome to All my students are invited!      
Compilers and Programming Language

A compiler is a computer program that transforms source code written in a computer language (the source language) into another computer language (the target language). The most common reason for wanting to transform source code is to create an executable program. (Wikipedia)

Lecture Plan:

1 Introduction to Compilers • Definition of Compilers
• Language Processing System
• The phases of compilers
2 Introduction to Compilers • Translation of a statement
- (The compiler phases of assignment statement)
• Working with Files
3 Compilers Construction Tools • Compilers Construction Tools
- (Example, how to double space input file into output file)
• Structure of Compiler Front-End
4 Context Free Grammar (CFG)

• Context Free Grammar (CFG)
- - Arithmetic Operations
- - A sequence of statement separated by ;
• Ambiguity
• Associativity

5 Context Free Grammar (CFG) cont. • Precedence
• Top-Dawn Parsing
• Interface to Code Generator: Designing a Simple Mapper
- (How to map my code into c-code)
6 Context Free Grammar (CFG) cont. • Left Recursion Elimination
• Conversion from Infix to Postfix
7 Interface to Lexical Analyzer • Interface to Lexical Analyzer (1/8): Eliminating white spaces and collecting numbers.  
8 Interface to Lexical Analyzer cont. • Interface to Lexical Analyzer (2/8): Specification of Tokens
• Interface to Lexical Analyzer (3/8): Strings and Languages
• Interface to Lexical Analyzer (4/8): Operations on Languages
• Interface to Lexical Analyzer (5/8): Regular Expressions
• Interface to Lexical Analyzer (6/8): Regular Definitions
• Interface to Lexical Analyzer (7/8): Recognition of Tokens
• Interface to Lexical Analyzer (8/8): Implementing a transition Diagram
9 Finite Automata • Finite Automata
- - Non-Deterministic Finite State Automata (NFA)
- - Deterministic Finite State Automata (DFA)
10 Designing a Language • Designing a Simple Language Named "MyLanguage"
• Implementing Transitions Diagrams of "MyLanguage"
11 Designing a Language • Checking Statement Program  
12 Binary Search • Binary Search Program  
13 Source Handler • Source Handler
• GETSYM Functions
1 Assignement 1. Due Date: --/--/---- pdf
2 Assignement 2. Due Date: --/--/---- pdf
3 Assignement 3. Due Date: --/--/---- pdf
Tests - Quizes
1 Sample Test 1 pdf
2 Sample Test 2 pdf
3 Mid-Term Exam pdf
4 Sample Test 4 pdf
5 Sample Test 5 pdf
Final Tests
* Final Test for Compilers and Programming Language
The Complete Reference Portfolio for this subject (in Arabic).. Prepared By: Salha Alzahrani pdf

Lab Lectures:

Compiler Programs and Exercises with C
Compiler Programs and Exercises with C#


~Compiler Programs & Exercises with C#:

Visual C#.NET (working on MS.NET 2003 and 2005)
1 Working with files in C# pdf
2 Mapper Program in C# pdf
3 Infix to Postfix Conversion Program in C# pdf

Code Generation from MyLanguage into C Language

Salha's Language
5 Transition Diagrams pdf
6 Editor pdf
7 Code (not completed)


:: Home :: Lecture notes :: Calendar :: E-Learning :: Contact us :: Guest book :: Taif University :: CIT ::

All rights reserved for © 2008-2012

For best resolution use: 1024 x 768
You are using :