CENG 442 - Programming Language Concepts

Hayri Sever, Prof.Dr.

Course Web Site: http://ceng442.cankaya.edu.tr & WebOnline

Description: Language categories, Language design, Programming languages evolution, Syntax, Semantics, Lexical and syntax analyzers, Names, Bindings, Type checking, Scoping, Data types, Expressions, Statements, Statement-level control structures, Subprograms, Abstract data types, Functional programming languages, Logic programming languages.

Objectives:

  • Learn fundamental concepts underlying all programming languages.

  • Understand and practice paradigms of programming languages.

  • Understand how the concepts are handled in major programming languages.

  • Be able to use language processors for language design and implementation.

Text Book: (1) Concepts of Programming Languages, 11th Edition, Robert W. Sebesta, Addison-Wesley, 2012. (2)  Haskell The Craft of Functional Programming, 2nd Edition, Simon Thompson, Pearson, 1999. (3) Prolog Programming for AI, Ivan Bratko, Third Edition, Pearson (Addison Wesley) 2001.

References:
 -Compilers: Principles, Techniques, and Tools, Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jerey D. Ullman, Addison-Wesley.
 -Programming Language Concepts and Paradigms, David Watt, Prentice Hall.
 -Comparative Programming Languages, Leslie B. Wilson, Robert G. Clark, Addison-Wesley.

Outline:

WEEK 1: Syntax and Semantics (Chapter 3)
WEEK 2: Lexical and Syntax Analysis (Chapter 4)
WEEK 3: Lex and Yacc Tools (FLEX and BISON)
WEEK 4: Names, Bindings, Type checking, and Scoping (Chapter 5)
WEEK 5: Data types (Chapter 6)
WEEK 6: Expressions and Assignment statements (Chapter 7)
WEEK 7: Midterm Exam Review
WEEK 8: Statement Level Control Structures (Chapter 8)
WEEK 9: Subprograms (Chapter 9, 10)
WEEK 10: Prolog
WEEK 11: Prolog
WEEK 12: Haskel
WEEK 13: Haskel
WEEK 14: Final Review

Grading:
Interaction and Quiz (10%)
HWs (10%)
Coding (Flex and Bison 10%, Prolog 10%, Haskel 10%)
Midterm (20%)
Final (30%)