Alice E. Fischer

CSCI 6636 / 4536
The Structure of Programming Languages

Spring 2017
Email A.Fischer at work Email A.Fischer at home
Chapters from the Text
Lecture Notes
Lab Assignments

<< Back
Course Facts
CSCI 6636 Section 1 Dr. Alice E. Fischer
CSCI 4536 Section 1 Buckman Hall 251
Monday 6:00--8:40 pm 203-932-7069
Where: Kaplan 108

Office hours:
Wednesday 1:40 to 5:45, Tuesday and Thursday 3:15 to 5:15.
Languages are like people...
External clothing
(syntax and interface) does not tell the whole story.
The goal is to learn:
  • That all languages are alike, no matter what disguise they are in.
    • A language definition supplies lexical form, syntax, and semantics.
    • Every language also has libraries, style, and intended usage.
    • All support a minimal core of control structures.
  • How to download, install, and bring up a new language on your own computer.
  • How to approach a new language and master it quickly.
  • Two languages, FORTH and Scheme, that are very different from C, at the introductory level.
  • To learn many things about a variety of other languages.
  • The structures that are used to implement compilers and interpreters.
  • The benefits and drawbacks of various language designs, including late binding, byte code interpreters, and garbage collection.
  • How types, objects, generic functions, and polymorphism are implemented.
Languages can look different outside...
But still be the same inside.
  • CS 226 or CS 620 or permission of the instructor.
  • Knowledge of two programming languages.
  • For undergraduates: junior or senior standing.
  • Primary text: A. Fischer and F. Grodzinsky, The Anatomy of Programming Languages, Prentice-Hall. Use the "Chapters from the text" link, on the left of this page, to access PDF copies of the chapters in this book.
  • Optional general reference: Michael L. Scott, Programming Language Pragmatics,   Morgan Kaufmann Publishers,   2000, third edition.  ISBN: 1-55860-442-1
  • Optional reference for Scheme: G. Springer and D. Friedman,   Scheme and the Art of Programming,   MIT Press / McGraw-Hill,   1995.   ISBN: 0-262-19288-8 or 0-07-060522-X55860-442-1
Some languages are simple and small,
But the full power of language is still there inside.

Course Requirements and Grading. (Weights may be adjusted up to 5%.)

  • 37% Weekly written homework
  • 16% Programming problems, mostly small.
  • 40% Quizzes and exams.
  • 7% Final project and presentation.

Attendance. Attendance in class is very important because much of the lecture does not come directly froom the book. If you do miss a week or two, you are responsible for any and all material covered. It is unlikely that you will earn a passing grade if four or more lectures are missed.

Homework. I will be assigning written homework (weekly) and lab exercises. I expect you to do most (but possibly not all) of each kind of work. If you do poorly on the quizzes, you can partially make up for it by doing all the homework and labs. Most of the labs will not be long, but will require a lot of thought and understanding.

Late Assignments. An assignment may be turned in late; there will be no grade penalty if it is in my pile by the time I hand back the corrected assignment to others. After that, I might take off points, and the assignment will certainly go to the bottom of my prioritized grading pile. The real penalty for late work is that you will do badly on the quiz that covers that work.

Some languages get old and fat.
Some people do too.
Policies and Procedures
I will post all homework assignments, error corrections, announcement, suggestions, and other useful information on the course website. Please check for postings in midweek and on Sunday night. The URL is:

You should send questions and pleas for help to me via email; I will answer them (if I can) as soon as I can.

Don't get tangled up...
Plagiarism can kill you!
Academic Integrity
Academic integrity is a core University value which insures respect for the academic reputation of the University, its students, faculty and staff, and the degrees it confers. The University expects that students will conduct themselves in an honest and ethical manner and respect the intellectual work of others. Please be familiar with the UNH policy on Academic Integrity.

Assignments in this class are to be done alone; little or no sharing and discussion should take place. It is unacceptable to copy another person's work or work so closely together that your work is essentially similar. This kind of "help" will not help you master the material. If you need help, don't hesitate to ask me for it. You can send email 24 hours a day, and I frequently respond at odd hours.

Plagiarism (copying someone else's work with the intent to deceive) is foolish; there is no way to pass this course without doing the work yourself. Plagiarism is a serious offense in industry and in our department. Employees are sometimes fired and students are sometimes dismissed for doing it. Please keep in mind that I do notice plagiarism and that I am disgusted that a few students do it. Copying another's work shows a lack of respect for yourself and for me, and a lack of concern for the student whose work you copy. In my classes, the giver and the borrower are equally guilty. When I receive the same work from two students (or three, or four...), my minimal penalty is to divide the points among the participants. It does not matter who did the work; both the giver and the receiver(s) are at fault.   My penalties depend on the importance of the assignment and the extent of the "sharing"; the cost can be as great as an F in the course. Downloading a lab or the term project from the internet is an automatic "F".

To avoid accidental participation in someone else's offense, do not give or loan your work to another student at any time for any reason. Do not leave it in the lab, even in the wastebasket.

With exams, it's important
to make the connection.
A Missed Quiz.
You should inform me in advance if you will be unable to attend class on a quiz or exam date. If an emergency arises at the last minute, I expect you to reach me within 24 hours of a missed exam if you want the privilege of making it up. Use phone, email, or messenger, but get in touch with me. In addition, you must write the missed exam before I hand back the papers to the rest of the class.

Public-domain versions of FORTH and Scheme can be downloaded; I expect you to download and install them on your own machines. Everyone already has Javascript, embedded in a browser.

Last updated: 6/29/17
Photographs by Michael and Alice Fischer and Kenneth Waltz, taken at Crater Lake Oregon, Tahiti, and at my homes.