CENG 442 - Programming Language Concepts

Weekly Timetable:
Instructor: Engin DEMÄ°R

Office Hours: TUE 14:20-16:10, WED 11:20-12:10

Sections 1,2,3: MON 13:20 - 15:10 (NA06)
Sections 4,5,6: WEB 13:20 - 15:10 (H126)

Lab Sessions:
Instructor: Faris Serdar TAŞEL

Sections 1,2: WED 9:20-11:10 (H312)
Sections 3,6: FRI 9:20-11:10 (H312)
Sections 4,5: THU 13:20-15:10 (H314)

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: Concepts of Programming Languages, 11th Edition, Robert W. Sebesta, Addison-Wesley, 2012.

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: Introduction, Preliminaries, and History (Chapter 1)
WEEK 2: Introduction, Preliminaries, and History (Chapter 2)
WEEK 3: Syntax and Semantics (Chapter 3)
WEEK 4: Lexical and Syntax Analysis (Chapter 4)
WEEK 5: Lex and Yacc Tools
WEEK 6: Names, Bindings, Type checking, and Scoping (Chapter 5)
WEEK 7: Data types (Chapter 6)
WEEK 8: Expressions and Assignment statements (Chapter 7)
WEEK 9: Statement Level Control Structures (Chapter 8)
WEEK 10: Subprograms (Chapter 9)
WEEK 11: Implementing Subprograms (Chapter 9, 10)
WEEK 12: Abstract Data Types (Chapter 11)
WEEK 13: Functional Programming Languages (Chapter 15)
WEEK 14: Logic Programming Languages (Chapter 16)

Grading:
Attendance (%5)
Quiz (%10)
Project (%20)
Lab Work (%20)
Midterm (%20)
Final (%25)