CS 315
Programming Languages

Description: Language evaluation criteria. Describing syntax and semantics. Tools for constructing lexical and syntactical analyzers. Names, bindings, type checking, and scopes. Data types. Expressions and the assignment statement. Statement-level control structures. Subprograms. Abstract data types. Concurrency. Exception handling. Functional programming languages. Logic programming languages. Credit units: 3, Prerequisite: CS 102 or CS 112.

Spring 2012 Semester:

Text Book: Robert W. Sebesta, Concepts of Programming Languages, Pearson (Ninth Edition)

Additional Material: Benjamin C. Pierce, Types and Programming Languages, The MIT Press


Instructor: Pınar Duygulu

Teaching Assistants:  

Mustafa Gundogan, Zeynep Saka

Grading Policy:

    Quizzes   : 15%

        Homeworks : 15%

        Projects  : 25%

        Midterm   : 20%

        Final     : 25%

There will be only one makeup exam, which can be taken only by those who have missed any of the midterm of final exams due to officially reported health problems. No make up examinations will be given for quizzes.

Important note: In order to pass the course you have to get at least 25 from both of the exams.

Please check your e-mails regularly for the announcements.


On-line material:

CAR Hoare: Hints on the Design of Programming Languages; Stanford Report

Computer Languages History

The History of Programming Languages

.profile file to run relevant programs (save this file in your home directory)

Lex and Yacc class notes and Examples

The Lex & Yacc Page (dinosaur.compilertools.net).

Perl tutorial

ISO-7185 Standard Pascal

gnu pascal compiler rpm

Free compilers

Coroutine.mod (an implementation of coroutines in Modula2)

A Modula-2 programming environment for MSDOS

Kyota Common Lisp (kcl-doc.txt, kcl-report.ps)

You can use Knoppix to run linux on a Windows OS.

Displaying "Hello Wolrd" in many programming Languages

A C code that displays itself when executed