CS365 -- Programming Language Design and Implementation

Brad Vander Zanden

Lecture Notes


Date

Assigned Readings

Topics

1/11
  1. Scott: Ch 1.1-1.3
  2. C++ versus Java
  3. Java Basics
Course and Java Introduction
1/16, 1/18
  1. C++ versus Java
  2. Java Basics
  3. Java's Class System
  4. Jar Files
  5. Example Array Search

optional:
  1. Introductory Java Tutorial. Skip the link to "The Java Technology Phenomenon" unless you want to be bored out of your mind. The "Hello World" Application is good because it tells you how to download NetBeans and run a sample application.
  2. Language Basics. Any of the tutorials are good except for the one on Generics, which we will cover at the end of the course.
  1. Differences between Java and C++
  2. Types, Variables, and Classes in Java
  3. Java's Object Mechanisms
1/23 Solution to Linked List Problem Java Practicum-you will write Java programs
1/25
  1. Example search using Java's generic data structures
  2. Example using a Java Scanner
Java generic and Scanner classes
1/30
  1. Scott: pp 37-48, up to but not including Section 2.2.1
  2. lexical scanning
Lexical Analysis
2/1
  1. JLex Manual
  2. Example JLex File
JLex Example/Start Lexical Scanning Project
2/6
  1. Scott: pp 61-70, 80-86 up to epsilon productions.
  2. grammars
Context Free Grammars
2/8
  1. JCup Manual
  2. Example JCup File
  3. Driver program for JLex HW/project
JCup Example
2/13, 2/15
  1. parsing
  2. parse table construction
Parsing
2/20 Detailed JCup example and notes Parsing and JCup explanation
2/22 building parse trees Discuss how to build parse trees for your project
2/27
  1. Exception Handling in Java
  2. Sun's Exception Handling Tutorial
  3. Scott Ch 8.5: Skip section 8.3 and ignore references to other languages like Ada, Scheme, etc.
Exception Handling
2/27, 2/29
  1. Java GUI overview
  2. Java Swing
  3. HelloWorld program with marked regions
  4. Schildt, Ch. 21, Ch 22 pp 669-682, Ch 24
Intro to Event-Based Programming
3/1, 3/6
  1. widgets
  2. examples of Java event handling
Widgets
3/8 Midterm 1 Open Note, Open Book
3/13, 3/15 Fall Break Enjoy! 3/20, 3/22 Java Layout Managers Layout algorithms for widgets
4/3 Message Dialog Example Message Dialogs
4/12Scott: Chapter 13.4.2, 13.1-13.2 Scripting Languages--Regular Expressions and Problem Domains
4/17, 4/19
  1. perl 1
  2. perl 2
Introduction to Perl
4/19 Perl Regular Expressions Perl regular expressions
4/26 Creating, Copying and Assigning Objects in C++ Constructors and Operators