Programming Language Concepts Home Page
4003-450 and 4003-709

Carl Reynolds, Ph.D.

This course involves the study of the syntax and semantics of a diverse set of high-level programming languages. The languages chosen are compared and contrasted in order to demonstrate general principles of programming language design. The course emphasizes the concepts underpinning modern languages rather than the mastery of particular language details. Programming labs and projects will be required.
Topics include:

Programming projects in Scheme, G2, and Perl will be required.

Scheme Project, due Friday Jan 19th, specifications are ready.

G2 Lab, Due Friday Februray 2nd, specifications are ready.

G2 Project, Due Friday February 9th, specifications are ready.

Perl Lab, Due Friday February 16th, specifications are ready.

Perl Project, Due Friday February 23rd, specifications are ready.


Course Page

www.cs.rit.edu/~chr/plc/plcHomePage.htm

Instructor

Carl Reynolds, Ph.D.
chr at cs.rit.edu, or creynold at rochester.rr.com

Texts

Michael Scott, Programming Language Pragmatics

Friedman & Matthias, The Little Schemer

Prerequisites

  • 0603-352 Computer Organization
  • 0603-334 CS4
  • Discrete Math

Office Hours

Mon & Wed 12:30-1:30pm; Tues & Thurs 4:00-5:00pm

Other times by appointment

Grading

  • 20% Exam 1
  • 10% Homework
  • 10% Labs
  • 30% Three Programming Projects
  • 30% Final Exam
General policies for the class

Notes presented in class...


Class Schedule and Assignments
Week Dates Special Events Topics Chapter Readings and Assignments

1

Dec 4

 

  • Overview and History
  • Language Design
  • Language Types
  • Scott Chapt. 1
  •   ex. 1.1, 1.6

2

Dec 11

Drop/Add deadline

  • Intro to Scheme
  • Syntax
  • Grammars
  • BNF & EBNF
  • Parsing
  • Scott Chapt. 2, pp 37-45, 95-96
  • Scott Chapt. 10, pp 523-538
  •   ex. 2.1e

3

Dec 18

 

  • Names
  • Blocks
  • Scope
  • Symbol Table

4

Jan 8

Exam 1

Thurs. Jan 11th

  • Review
  • Exam 1 Thurs. Jan 11th

5

Jan 15

Scheme Project due

Fri. Jan 19

  • Control flow
  • Intro to G2

6

Jan 22

Withdrawal deadline

Fri Jan 26th

  • Types
  • G2

7

Jan 29

 

  • Subroutines
  • G2

8

Feb 5

G2 Project due

Fri. Feb 9th

  • Object Orientation
  • Intro to Perl

9

Feb 12

 
  • Perl

10

Feb 19

Perl Project due

Fri. Feb 23rd

  • Perl

11

Feb 26

Final Exam