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.

Fall 2011 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

Syllabus

Instructors: Uluç Saranlı (Section1)  and Pınar Duygulu (Section2 and Section3)

 


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.


Announcements
Please check your e-mails regularly for the announcements.

Projects :
Project  1
Project2

Homeworks
Homework1
Homework2
Homework3


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