CS 591/491 - Advanced Object-Oriented Programming
Office: FEC 345C
Phone: +1 505 2776561; Fax: +1 505 2776927
Office hours: Mon/Wed 3-3:50, Tue/Thu 3:20-4
Class schedule: Mon/Wed 4-5:15
(You may download and print these documents for use
in the UNM CS 591/491 class, but not otherwise.)
In the introductory part of the course, we will look at the present
state of the Java programming language. A major revision (1.5) will be
in place by this fall that provides so-called generics. We will ask if
this feature was needed, and if it is being provided in the correct
way. To help us understand this issue, we will study the essence of
object-oriented programming using the first few chapters of
``Foundations of Object-Oriented Languages'' by Kim Bruce.
There exist alternatives to Java, and we shall examine one - the newly
announced language Scala. Its authors aimed
for a clean, well-defined language design, without baggage, but
interoperable with Java and/or C# libraries. Have they succeeded?
There will be a programming component. Rather than implement an
object-oriented programming language from scratch, which would not be
feasible in one semester, we shall work within JikesRVM, an
open-source virtual machine for Java bytecode, written in Java.
include instrumentation, measurement, and modifications of the
run-time systems and the compiler, investigation of architectural
features, and language extensions.