| Home | Classes | Research | Links |


Fall 2009

CMPS 450g: Programming Languages (graduate class)


Course description: Survey of modern programming languages, their design issues, trade-offs, and underlying structures that support their implementation.

Prerequisites: Graduate standing in CACS and knowledge of programming.

Instructor: Dr. Anthony Maida.


Teaching assistant:Padraic Edgington
Email: padraic@louisiana.edu
Phone: (337) 482-1696
Office: ACTR, Room 331
Office hours:Mon. 2pm-3:15pm
Tues. 2pm-3:15pm
Wed. 2pm-3:15pm

Grading and requirements 2009:

October 8: 1st Midterm,25%
November 19: 2nd Midterm,25%
December 1: Programming project due,20%
Exam week: Final exam30%


Textbooks:
Concepts in Programming Languages (9th edition)
by Robert W. Sebesta
Addison-Wesley 2009
ISBN: 0-534-95341-7

The Java Programming Language (4th Ed)
by Ken Arnold, James Gosling, and David Holmes
Addison-Wesley, 2006
ISBN: 0-321-34980-6

On reserve in Dupré Library:
A Little Book on Perl
by Robert W. Sebesta
Prentice Hall, 2000
ISBN: 978-0-13-607347-5


2nd Midterm Exam on November 19, 2009:

Sample 2nd midterm exams for the last four years are given here, here, here, and here. They are listed in order of recency. The syllabus for the Fall 2009 first midterm is based on chapters 2, 3, 4, 7, 9, 10, 12, and 14 of the Java Programming Language (4th Ed) text (by Arnold, Gosling, and Holmes). In case you are using the 3rd edition, the chapters are: 2, 3, 4, 6, 7, 8, and 10.

This year's exam will be worth 71 raw points. More emphasis is on long questions than in previous years. There are five long questions, each worth 10 points. The remaining questions are short questions that total to 21 points.


Updated Nov 16, 2009

The output specification for the project is here. It has been updated to remove inconsistencies.

3rd Draft of Project Specification:

The third draft of the project specification is here. This is essentially to the final draft. Further changes will be to correct errors and to provide instructions to hand in and demo the project.

Source code to implement the environment data structure is given here and here.

Skeleton code for the abstract syntax trees is here. An example program from the object-oriented language is here.


1st Midterm Exam on October 8, 2009:

Sample 1st midterm exams are given here, here, here, and here. The syllabus for the Fall 2009 first midterm is based on lectures and three texts. Use the lecture material to guide you when reading the textbooks.

The main text is by Sebesta Concepts of Programming Languages (9th Ed). Points to emphasize are: Implementation methods in section 1.7; all of chapter 2; sections 3.1, 3.2, and 3.3 of chapter 3. All of chapter 4.

The second text is also by Sebesta A Little Book on Perl. It is on reserve in the library. You are responsible for sections 7.1 and 7.2 on regular expressions and pattern matching.

The third text is by Louden Programming Languages: Principles and Practice. This text is also on reserve in the library. You are responsible for sections sections 4.4, 4.5, and 4.6.


Java Lecture Notes: Compressed files of my scanned lecture notes can be downloaded here. When uncompressed they are jpeg files. Topics follow:
Java primitive types
Example of a simple class
The Object class
Java control flow
Extending classes
Exceptions
Interfaces
Threads





Old stuff begins here:


Important: Project hand-in instructions:

The programming project is due in class on December 2. You will demo your project to one of the TA's on either December 2 or on December 3. Instructions on how to hand in the project are given here, with the corrected email address.

Project specifications updated November 9, 2008:

Please download the latest specification here. This revision corrects some inconsistencies and CHANGES the output specification for parse trees.


2nd Midterm Exam on November 25, 2008:

Sample 2nd midterm exams are given here, here, and here. The syllabus for the Fall 2007 first midterm is based on Chapter 5 of the Louden text and chapters 2, 3, 4, 7, 9, 10, 12, and 14 of the Java Programming Language (4th Ed) text (by Arnold, Gosling, and Holmes).


1st Midterm Exam on October 9, 2008:

Sample 1st midterm exams are given here, here, and here. The syllabus for the Fall 2007 first midterm is based on Chapters 1, 2, 3, and 4 of the Louden text and chapter 7 (sections 7.1 to 7.3.1) of the Perl text (by Sebesta). The Sebesta text is on reserve in the library.




Very old stuff begins here:


New Nov 14: Revised project specification (3rd draft) for Fall 2007:

The main change is to fix errors in the grammar. A secondary change is to improve the pseudo-code in Table 1. The revision is here.

New Nov 13: Project Hand-in Instructions for Fall 2007:

The hand-in instructions for the programming project for fall 2007 is here, as a pdf file to download. A more detailed description of test data and output requirements is here.

New Sept 25: Programming Project Specification for Fall 2007:

The first draft of the programming project for fall 2007 is here, as a pdf file to download.

1st Midterm Exam on September 20, 2007:

A sample 1st midterm exam is given here. The syllabus for the Fall 2007 first midterm is based on Chapters 1, 2, 3, and 4 of the Louden text and chapter 7 of the Perl text (by Sebesta). The Sebesta text is on reserve in the library.


November 22, 2006

The finished description of this year's project is here. There are two changes: 1) there are slight simplifications in the grammar; 2) Two lines of code have been added to the main program in Section 5.

The input file is here and the desired output is here.


November 7, 2006

As a study aid, the Java midterms for the previous two years are here and here. Please be aware that the syllabus for this year's exam on November 14 will cover only Java and the material covered in the lectures.


This year's project: Draft one, October 17, 2006

The first-draft description of this year's project is here. Currently, it includes the project specification, but I still have to revised to include suggestions for implementation.

Last year's project: October 10, 2005

The write-up is here. Starter code is on the following three files: StatementParser.java, GlobalEnv.java, and BinNonTermNd.java.

The input file is here. The desired output for this input is here.


A sample midterm exam is given here. Note that the syllabus for the Fall 2006 first midterm is based on Chapters 1, 2, and 4 of the Louden text and chapter 7 of the Perl text (by Sebesta). The Sebesta text is on reserve in the library. There will not be any questions about Java.

Java on the web:
The Java Virtual Machine Specification (2nd Ed)
by Tim Lindholm and Frank Yellin
Addison-Wesley, 1999
ISBN: 0201432943

Chapter 2 provides a synopsis of the Java language. An html version of the book is here.


Python on the web:
Dive into Python: Python for Experienced Programmers
by Mark Pilgrim
This electronic book is available here.

The main source of information on Python is here.