CS 236 - Programming Languages and Translators- Course Syllabus

Contact Information

    Instructor:  Michael G. Hilgers
    Web Page:    http://www.umr.edu/~hilgers
    Email:       hilgers@umr.edu
    Phone:       341-4853 (office)
    Office:      Computer Science Bldg. 318
    Office Hrs:  Schedule 


    Class Time: Section A: Monday, Wednesday, Friday   11:30 AM - 12:20 PM
    Room:  MCNT 212

Course Objectives

This course attempts to answer several basic questions:  what is a programming language, how do they work, and why is one language better than another?  In answering these questions, it is hoped that the student will:

Will there be programming assignments?

Oh yes. . .    One of the major activities in the class will be the construction of a translation system using C++.  Over the course of the semester we will  define a simple language using EBNF grammar rules.  This semester we will create our own version of MatLab.  By imitating it's console operations you will learn how to implement scanning and parsing theory in a commerical setting.  We will develop and test about 10 programs implementing a recursive descent parser with scanner.  You will be challenged.  These programs will be 60% of your grade in the class.  The final 30% will come from a web-based documentation system you will write to support your software.  There will be extra-credit available in the form of problems chosen from our text.

Are you ready for the course?

The listed prerequisite is CS 253.  This is strict.  We will use a variety of data structures including, but not limited to  linked lists, binary trees and  hashing tables.  We will discuss the implementation of these concepts using C++ in class, but you should already have some experience with these concepts.

What will we cover?

The required textbook is Programming Language Pragmatics by Michael L. Scott. We will cover:

Course Requirements/Policies


Grading

Scores



Course Materials

  Text:         PROGRAMMING LANGUAGE PRAGMATICS 
                Morgan Kaufmann
                Michael L. Scott, 2000