Left Accent
UAB CIS Header

CS 401 / spring2012 / 2E

Updated on Thu, 04/26/2012 - 12:53pm

CS 401/501 PROGRAMMING LANGUAGES

Spring 2012

Instructor: Marjan Mernik, Ph. D. (mernik@cis.uab.edu)

Classroom: EB 237

Time: 2:00-3:15 P.M. Tuesday and Thursday

Office: CH 121 (934-8525)

Office Hours: 12:50-1:50 P.M. Tuesday and Thursday or by appointment

Teaching Assistant: Reed Milewicz (rmmilewi@uab.edu)

Office Hours: Tuesday and Thursday, 12:30 P.M.-2:00 P.M., CH 154

Textbook: Concepts of Programming Languages, 9th ed., by Robert W. Sebesta. Addison Wesley, 2010.

Recommended: Modern Compiler Implementation in Java: Basic Techniques, 2nd ed., by Andrew W. Appel and Jens Palsberg. Cambridge University Press, 2002.

 

Announcements:

 

  

 

 

Time Table:

Topic

Chapter

Lecture

Introduction

1-2

1, supp

Formal Syntax and Compiling

 

 

Formal Syntax

3

 2,supp

Lexical Analysis

4

 3, supp

Parsing

4

 4/5, supp

Attribute Grammar

3

 6/7, supp

Denotational Semantics and Functional Programming

 

 

Dynamic Semantics

3

 8, supp

Functional Programming Languages

15

 9, supp

Denotational Semantics

3

 10, supp

Axiomatic Semantics and Logic Programming

 

 

Logic Programming Languages

16

 14, supp

Axiomatic Semantics

3

 15-16, supp

Names, Bindings, Type Checking, and Scopes

5

 17, supp

Data Types

6

 18, supp

Expressions and Assignment Statements

7

 19a, supp

Statement Level Control Structures

8

 19b

Subprograms

9

 20, supp

Implementing Subprograms

10

 21, supp

Abstract Data Types

11

 22, supp

Object-Oriented Programming

12

 23, supp

Concurrency

13

 24

Exception Handling

14

 25

 

Grading:

Exam #1

1/6

Exam #2

1/6

Final Exam

1/3

Exercises

1/3

 

Grading Policy:

There will be two (2) 75-minute examinations, the first exam on Tuesday, February 21, and the second exam on Thursday, March 15. The final exam is on Thursday, May 3, 1:30-4:00 P.M. The schedule of these exams is fixed and cannot be changed to accommodate individual circumstances except for a major illness or family emergency. In such cases, arrangements must be made before the time of the exam to take the exam at a different time. Makeup exams will not be given without such prior approval and only for the emergency cases indicated. Besides exams, there will also be several written and programming exercises which will emphasize the theory covered by the lectures and text. Many of these exercises will build on each other in the form of a complete implementation of a programming language. Therefore, it is imperative that all assignments be done promptly. Assignments will be accepted at most one class meeting late, at a cost of 25% of the assignment credit. Otherwise, all assignments are due on the date indicated by the beginning of the class period. The exercises are to be done independently. Any single incident of copying or duplication of work will result in the division of credit among the collaborators. A subsequent occurrence of academic dishonesty will result in the grade of F for the course.

 

 

Prerequisites:

CS 303 Algorithms and Data Structures

CS 350 Automata and Formal Language Theory

each with a C or better

 

Exam:

 Exam 1: Sample

 Exam 2: SampleSolution

Final Exam: Sample, Solution

Assignments:

Assignment #1

Assignment #2  - Example #1, Example #2, Example #3.

Assignment #3

(CS 501) Research Report

 Assignment #4 

Assignment #5 - Article, Example #1, Example #2, Example #3, LISA File*

 

Additional Materials:

How to turn in CS401/501 assignments

 

JFlex : a lexical analyzer generator for Java

 

LISA Attribute Grammar Examples

 

Lisp

 

How to run Lisp on the Vulcan Machines:

To run GNU Common Lisp enter:  gcl

Prolog

 

How to run Prolog on the Vulcan Machines:

To run GNU Prolog enter:  gprolog

 

 

 



Accent Right