IBM Research
 
IBM Research
Programming Languages & Software Engineering
Computer Science > Programming Languages and Software Engineering > Conferences > Programming Languages Day
Programming Languages Day
  A Programming Languages Day will be held at the IBM Thomas J. Watson Research Center on Monday, April 17, 2000. The day will be held under the auspices of the New Jersey Programming Languages and Systems Seminar.  The main goal of the event is to increase awareness of each other's work, and to encourage interaction and collaboration. The Programming Languages day will feature a keynote presentation by Martin Fowler and 5 regular presentations:
  Keeping Software Soft
  Martin Fowler
Do you remember when you first started programming? The magic that a little
typing could cause so many things to happen. The fact that you could change
what your program does with just a few changes to what you typed.

Now you're a professional software engineer you may think differently about
software. Despite its name software is not soft at all, indeed it's a pig to
change. So you have to work hard at figuring out the software before you run
the compiler, much as the same way that real engineers use drawings before
lathe is put to metal.

But I'll be talking about a new breed of processes that reject this view .
Variously called "lightweight methodologies" or "glorified hacking" they
promise a new approach to improve software development by accepting and
encouraging change. Such methodologies include Crystal, Adaptive Software
Development, and most (in)famously: Extreme Programming.

The remainder of the program looks as follows:
Fractal Symbolic Analysis
Keshav Pingali (Cornell University)
A well-known limitation of dependence analysis is that it examines
only the memory locations read and written by a statement, and does
not assume any particular interpretation for the operations in that
statement. Symbolic execution of programs enables the exploitation of
such semantic properties, but it is intractable for all but the
simplest programs. 

 In this talk, we describe a new form of symbolic analysis for use in
restructuring compilers. *Fractal* symbolic analysis compares a
program and its transformed version by repeatedly simplifying these
programs until symbolic analysis becomes tractable, while ensuring
that equality of simplified programs is sufficient to guarantee
equality of the original programs. 

 We discuss a prototype implementation of fractal symbolic analysis,
and show how it can be used to optimize the cache performance of LU
factorization with pivoting.

This is joint work with Vijay Menon (Cornell) and Nikolai Mateev (Cornell).
 

Issues in Escape Analysis for Java Programs
Jong-Deok Choi (IBM) and Manish Gupta (IBM) and Martin Rinard (MIT)

Researchers have recently developed a variety of escape analysis
algorithms for Java. By detecting that objects do not escape method
invocations, these analyses enable transformations that eliminate
redundant synchronization and allocate objects on the call stack
instead of on the heap.

  In this combined presentation, we examine how different researchers
have addressed the trade-off between analysis time and precision of
the analysis results, and discuss the implications of these choices
for the performance of the transformed program. We also present
several new results in the field and speculate on future directions
and uses of escape analysis and related analyses.
 

      Data-level Interoperability
John Reppy (Bell Labs)
Practical implementations of high-level languages must address the problem
of providing access to libraries and system services that have APIs specified
in a low-level language (usually C).  In this talk, I will describe the approach
that the Moby implementation takes towards this problem.  What makes our approach
different from other recent work in the area, is that we focus on supporting
direct manipulation of low-level data representations from Moby.  Our
mechanism supports data-level interoperability, which is an important
capability when dealing with large external data sets or data that is
in a fixed format.  Our mechanism also supports foreign-interface generation
tools, and I will describe a couple that we have built for our system.

This is joint work with Kathleen Fisher (AT&T) and Riccardo Pucella (Cornell).

Jalapeno: a new Java Virtual Machine for Servers
Vivek Sarkar (IBM)
In this talk, we give an overview of the Jalapeno Java Virtual Machine
(JVM) research project at the IBM T. J. Watson Research Center.  The
goal of Jalapeno is to expand the frontier of JVM technologies for
server nodes --- especially in the areas of dynamic optimized
compilation and specialization, scalable exploitation of multiple
processors in SMPs, and the use of a JVM as a 7x24 application server.

The Jalapeno JVM has two key distinguishing features.  First, the
Jalapeno JVM takes a compile-only approach to program execution.
Instead of providing both an interpreter and a JIT/dynamic compiler,
it provides two dynamic compilers --- a quick non-optimizing
"baseline" compiler, and a slower production-strength optimizing
compiler.  Both compilers share the same interfaces with the rest of
the JVM, thus making it easy to mix execution of unoptimized methods
with optimized methods.  Second, the Jalapeno JVM is itself
implemented in Java!  This design choice brings with it several
advantages as well as technical challenges. The advantages include a
uniform memory space for JVM objects and application objects, and ease
of portability.  The key technical challenge is to overcome the large
performance penalties of executing Java code (compared to native code)
that has been the experience of current JVMs; if we succeed in doing
so, we will simultaneously improve the performance of our JVM as well
as of the applications running on our JVM.

The Jalapeno project was initiated in end-1997 and is still work in
progress.  This talk will highlight our design decisions and early
experiences in working towards our goal of building a high-performance
JVM for SMP servers, with a focus on the design details of the
Jalapeno optimizing compiler.

Functional Robotics
John Peterson (Yale) and Andrei Serjantov (Yale)
We present our experiences using a purely functional language,
Haskell, in what has been traditionally the realm of low-level
languages: robot control.  Frob (Functional Robotics) is a
domain-specific language embedded in Haskell for robot 
control.  Frob is based on Functional Reactive Programming (FRP), as
initially developed for Fran, a language of reactive 
animations.  Frob presents the interaction between a robot and its
stimuli, both onboard sensors and messages from other agents, in a
purely functional manner.  This serves as a basis for composable high
level abstractions supporting complex control regimens in a concise
and reusable manner. 

We are using Frob to compete in Robocup 2000, a robotic soccer
competition.  In this environment, Frob controls an team of five
radio-controlled robots as well as tracking the game using computer
vision.  We use many functional programming "tools of the trade" to
build our controller such as  polymorphic types, monads, and
higher-order functions to build controllers that express complex
interactive behaviors in a very declarative manner.

You are welcome from 9AM onwards, and the keynote presentation will start at 10AM sharp.We expect the program to run until 4PM. The Programming Languages day will be held in room H0-F15 in the Hawthorne-1 building in Hawthorne, NY. Please click here for directions, and for a list of hotels in the area. 

If you're interested in attending the Programming Languages Day, please register by sending an e-mail with your name, affiliation, and contact information to Frank Tip.

Last updated monday Mar 13, 2000 by Frank Tip.
 

   
   
  Privacy Legal Contact IBM www.research Research Sites Page Contact