CS471 Programming Language Structure I

Fall, 2000

1.     Instructor

Roger Hartley, SH 148, telephone 646-3723

Office Hours: by appointment only

Email: rth@cs.nmsu.edu

Web site: http://www.cs.nmsu.edu/~rth/cs/cs471

2.     Where and when

Room: SH113                Time: MWF 12:30 - 1:20 am

3.     Textbook:

Concepts of Programming Languages. Robert Sebesta, Addison Wesley, 4th. Edition, 1998.

4.     Course outline

This course presents an analysis of computer languages from a conceptual point of view.  There are relatively few concepts which all computer languages have and most have them in common. The differences among them are mostly in their syntax and their model of computation, or their programming methodology.  We will examine the basic concepts as they arise in a variety of different languages, and discuss how the implementation of the concepts affect their usage as programming tools.  When a major language is discussed, a language system that works in our domain will be used to help the discussion.

5.     Syllabus, by week number

[1]   Introduction: models of computation, real and virtual machines, taxonomy of languages. The major languages.

[2, 3]        Description methodologies: syntax, semantics, pragmatics.  BNF and Extended BNF.

[4, 5]       Elements of programming languages: expressions, functions, declarations, values, recursion, scope, types.

[6, 7]        Subprograms: environments and stores, parameter passing.

[8]   Implementing subprograms: activation records, block structure, dynamic scoping. First test on material from weeks 1-7.

[9]   Encapsulation:  ADTs, modules and information hiding, classes in C++. Java.

[10] Object-oriented languages: methods and messages, inheritance.

[11, 12]        Functional programming:  Scheme and Lisp, list processing, ML and type checking.

 [13, 14]  Logic programming:  Prolog. Relations and declarative programming, backtracking goal evaluation.

[15, 16]   Exceptions. Concurrency:  semaphores, monitors, rendezvous in Ada.

[17] Final examination (take-home).

6.     Calendar

 

2000:

August :                  23rd: First day of class

September:                 1st: Last day to add

4th: Labor day holiday – no class  

October :                 11th: Mid-term test

18th: Last day to drop with W

 

November:                17th: Moratorium for missing assignments

22nd to 24th :Thanksgiving holiday – no class

December:                6th: Take home final handed out

8th: Last day of class

                                11th: Finals weeks starts, Moratorium for missing assignments

                                13th: Take home final due in

                                15th: Finals weeks ends

7.     Assessment

There will be a mid-term test and a final take-home comprehensive examination. There will also be a number of homework assignments (four or five) taken from the exercises in the textbook, or from other material. The proportion of credit is as follows:

 

Test 1:                     20%

Final:                       30%

Homework:                 50%

 

My grading is always flexible, but justice will also be done! The penalty for late work is that it receives a maximum C grade, but there will be two cut-off dates. A moratorium date is included in the calendar after which, any work that is due but not handed in will receive a zero. The first day of exam week is the last day for handing in work for credit. The take-home final may be worked in conjunction with others in the class, as long as the collaborators are named, but any f copying of other people’s work without their permission could be penalized with a zero for the whole exam.