Teaching & Learning

An Introduction to Jython

Getting sick of Python posts by now? Sorry...

A large part of this presentation consists of a series of code examples showing how something is done in pure Java versus a Jython version. A nice illustration of the differences between the languages (did anyone say explicit static typing?) and about their different abstraction facilities and domain specific abstractions (e.g., builtin dictionaries and list comprehensions).

Analyzing these examples may be fun exercise idea for those of us teaching PL courses.

The Four Questions

Page 4 of the lecture notes from Mitch Wand's first Principles of Programming Languages lecture:

When looking at a language, we will always ask four questions. As we proceed through the course, we will ask these questions in more and more sophisticated ways; I’ll show some of these subquestions now, even though we haven’t yet covered enough to understand what they mean:

  1. What are the values in the language?
    • What are the values manipulated by the language, and what operations on those values are represented in the language?
    • What are the expressed and denoted values in the language?
    • What are the types in the language?
  2. What are the scoping rules of the language?
    • How are variables bound? How are they used?
    • What variables are in scope where?
  3. What are the effects in the language?
    • Are there side-effects in the language?
    • Can execution of programs have effects in the world?
    • Can execution of programs have effects on other programs?
    • Can execution of a program fail to terminate?
    • Are there non-local control effects in the language?
  4. What are the static properties of the language?
    • What can we predict about the behavior of a program without knowing the run-time values?
    • How can we analyze a program to predict this behavior?

What do you consider the fundamental properties of a programming language?

DanFest 2004 - in honor of Dan Friedman

On December 3rd and 4th, 2004, the Computer Science Department at Indiana University hosted a conference to celebrate Daniel P. Friedman's 60th birthday. The DanFest web page has the program, links to some of the papers, and photos.

Dan Friedman, of course, is a CS professor at Indiana and an influential programming language researcher and teacher, best known to a wider audience as the lead author of EOPL, used in many PL courses. Who do you get to speak at a conference in honor of the author of a book so famous it is recognizable by its acronym? Why, the authors of the other famous acronymized books in the same field, of course, such as SICP, HTDP, and TSPL.

The keynote address, "Dan Friedman: Cool Ideas", was delivered by Guy Steele, and the star-studded program included authors of the above books, and many previous students of Friedman's. An article in the Indiana student newspaper provides some of Friedman's perspective on the event.

The speaker list also included a couple of (semi-)regular LtU'ers, Oleg Kiselyov and Kevin Millikin (did I miss anyone?) My thanks to Oleg for prompting me to post this.

Haskell Communities and Activities Report, Seventh Edition, November 2004

The November 2004 edition of the biannual Haskell Communities and Activities Report has been published. Lots of new stuff in the last six months, and some old stuff updated as well. The HC&AR has been steadily growing over the last three years, showing that FP is gaining users both professional and private.

Several of the HC&AR items are interesting enough to have their own LtU stories, which may appear shortly.

A Visual Environment for Developing Context-Sensitive Term Rewriting Systems

(via an interesting discussion on the types list)

A Visual Environment for Developing Context-Sensitive Term Rewriting Systems. Matthews, Findler, Flatt, Felleisen. International Conference on Rewriting Techniques and Applications (RTA) 2004.

Over the past decade, researchers have found context-sensitive term-rewriting semantics to be powerful and expressive tools for modeling programming languages, particularly in establishing type soundness proofs. Unfortunately, developing such semantics is an error-prone activity. To address that problem, we have designed PLT Redex, an embedded domain-specific language that helps users interactively create and debug context-sensitive term-rewriting systems. We introduce the tool with a series of examples and discuss our experience using it in courses and developing an operational semantics for R5RS Scheme.

Seems like a nice tool (it's DrScheme based, of course). I guess I should try it out.

Mozart/Oz conference MOZ2004 - final CFP

I would like to remind you of MOZ 2004, the Mozart/Oz conference, whose submission deadline is coming up quickly (normally July 9, but due to several requests we will probably extend it by one week). The conference will be held on October 7-8 in Charleroi, Belgium. Highly recommended if you want to get the latest scoop on what is going on in the Mozart/Oz community. Many Mozart researchers and developers will attend too, and we expect lots of animated discussions. We'll also have two very interesting invited speakers, Gert Smolka and Mark Miller.

Another point that might interest people is that we've put a full set of lecture slides (more than 1000) on the CTM Web site (click on Supplements). The slides were made by Christian Schulte and Seif Haridi. The course is rather nontraditional. It might even be viewed as heretical in some quarters (we dare introduce concurrency before state, and we don't even mention inheritance). But we think it's a good way to start learning programming. The lecture slides only cover one third of the book, though, so if you want to see the other two thirds you'll have to get the book.

XML feed