Programming Languages (CS 305)

2021 Fall
Faculty of Engineering and Natural Sciences
Computer Sci.& Eng.(CS)
3
6.00 / 6.00 ECTS (for students admitted in the 2013-14 Academic Year or following years)
Hüsnü Yenigün -yenigun@sabanciuniv.edu,
English
Undergraduate
CS204
Formal lecture
Click here to view.

CONTENT

This course discusses many of the concepts underlying the design, definition, implementation, and use of modern programming languages for a variety of programming paradigms, such as imperative, functional, logic and concurrent programming paradigms. The syntax and semantics of programming languages are described using formal approaches, and basic concepts of language analysis and compilation are covered using tools like lex and yacc.

OBJECTIVE

To supply the students with the basic principles of various programming language paradigms and implementation of these languages.

LEARNING OUTCOME

The students are expected to have basic information for the implementation of programming languages.
The students are expected to have some experience to apply techniques of language implementation by using tools for language implementation.
The students are expected to have basic information for the common concepts in programming languages.
The students are expected to have introductory information on programming language paradigms such as functional programming, logic programming, and parallel programming.

ASSESSMENT METHODS and CRITERIA

  Percentage (%)
Final 20
Midterm 40
Exam 10
Assignment 30

RECOMENDED or REQUIRED READINGS

Textbook

[1] ?Programming Languages: Concepts and Constructs? by Ravi Sethi
[2] ?Concepts of Programming Languages? by Robert W. Sebesta
[3] ?Comparative Programming Languages? by Leslie B. Wilson and Robert G. Clark
[4] ?Programming Languages: Principles and Paradigms? by Allen Tucker and Robert Noonan
[5] ?Essentials of Programming Languages? by Daniel Friedman, Mitchell Wand, and Christopher T. Haynes

Readings

Lecture notes