PLDI 2001 Tutorial Program

Tuesday, 19th June 2001

ACM SIGPLAN 2001 Conference on
Programming Language Design and Implementation

Snowbird, Utah

Sponsored by ACM SIGPLAN in cooperation with ACM SIGSOFT

Tutorial Chair: Dr. Susanne Hupfer, Mirror Worlds Technologies / Yale University


Schedule

Time
Instructor and Affiliation
Topic
8am - 10am
Zhong Shao, Yale UniversityType-based Certifying Compilation
10am - noon
Paolo Ciancarini, University of Bologna
Franco Zambonelli, University of Modena & Reggio Emilia
Exploiting XML for Coordinable Document Agents
1pm - 3pm
Katherine Yelick, University of California at BerkeleyOptimization of Java-Like Languages for Parallel & Distributed Environments
3pm - 5pm
Ron K. Cytron, Washington University, St. Louis
Chris D. Gill, Washington University, St. Louis
Real-Time Java
7pm - 9pm
Sheng Liang, Stratum8Java Technology for Mobile Wireless Devices


Type-based Certifying Compilation

Type-based certifying compilers are compilers that use static type information to help generate provably secure target code. Many modern programming languages (e.g., Java) have a strong type system: a program that passes typechecking will not ``go wrong'' at runtime. A conventional untyped compiler discards all the type information after typechecking. A type-preserving compiler, on the other hand, translates both the program and the type information into the intermediate and target languages.

This tutorial will give a gentle introduction to the area of typed intermediate languages and certifying compilation. We will describe the design of various intermediate representations and show how to use type information to certify advanced constructs such as unboxed data structures, array access without bounds-checking, runtime type dispatch, method invocation, and memory management. We will also examine several existing type-based compilers and discuss the impact of their design on their capabilities and performance. This tutorial is aimed for those interested in mobile code security, virtual machine design, proof-carrying code, and program validation.

Instructor: Zhong Shao, Yale University

Zhong Shao is an Associate Professor in the Department of Computer Science at Yale University. His research interests include compilers and programming languages, typed intermediate representations, secure mobile code, and formal methods. He is a key developer of the Standard ML of New Jersey (SML/NJ) compiler and an architect of the new, higher-order typed intermediate representation (named FLINT) now used in this compiler. He currently leads the Yale FLINT Project which is developing a principled common mobile-code infrastructure (i.e., certifying compiler and runtime environment) for advanced languages such as Java and ML. He received his Ph.D. in Computer Science from Princeton University in 1994.


Exploiting XML for Coordinable Document Agents

Active documents are already a widely exploited technology (e.g., ActiveX and Dynamic HTML). However, the potentials of active documents as a paradigm for the development of distributed applications on the Internet and for the management of complex information flows are still widely unexplored.

The goal of the tutorial is to explore the main issues related to the use of active documents in the context of Internet applications and information systems, by specifically focusing on the issues of mobility and coordination, and by presenting the possible exploitations of XML for the definition of active documents and for the control of their coordination activities.

The first part of the tutorial presents the basic concepts and applications of active documents, explores the relations between mobile agents and active documents, shows that active documents (or "document agents") are a powerful paradigm for the development of Internet applications,and outlines the peculiar problems arising in the managing the coordination activities of complex applications based on mobile document agents. Then, the tutorial introduces the basic concepts related to coordination models and languages and shows that coordination models are powerful frameworks for simplifying the design and development of Internet applications based on mobile documents agents.

The second part of the tutorial focuses on XML technologies. In particular, by adopting a coordination model as a reference framework, the tutorial shows the possible exploitation of XML in the context of coordinated mobile document agents and surveys the approaches adopted in some relevant research and industrial project. The survey shows that XML can be exploited not only as a language for expressing the "passive" parts of document agents and for the interoperable exchange of data between them, but also as a language for expressing the "active" parts of document agents, as well as a language for the definition and the control of their coordination activities.

The tutorial will give attendees a quite complete overview of the state of the art in active documents and coordination models and languages, and will taught attendees how to exploit XML in this context.

No background knowledge is required to fruitfully attend the tutorial. A basic knowledge of XML and of Web technologies may help but it is not necessary.

A full outline of the tutorial is available here.

Instructors: Paolo Ciancarini, University of Bologna, Italy &
Franco Zambonelli, University of Modena and Reggio Emilia, Italy

Paolo Ciancarini is Professor of Computer Science at the University of Bologna, and Director of the Undergraduate School in Computer Science. He received the Ph.D. degree in computer science from the University of Pisa, Italy, in 1988. His research interests include: coordination languages for agent-based systems, component-based software architectures, programming systems based on distributed objects, advanced Web technologies, and formal methods in software engineering. He is a member of ACM and IEEE.

Franco Zambonelli is Associate Professor of Computer Science at the University of Modena and Reggio Emilia, Italy. He received his Laurea degree in Electronic Engineering in 1992 and his Ph.D. in Computer Science in 1997, both from the University of Bologna. His current research interests include: parallel and distributed programming, mobile agents, coordination models and infrastructures for the Internet. He is the coordinator of the Agentlink Special Interest Group on Software Engineering and Methodology for Agent Systems, and a member of ACM and IEEE.


Optimization of Java-Like Languages for Parallel and Distributed Environments

In this tutorial, we describe the state-of-the art and several open problems in the optimization of parallel programs. The first part of the talk will describe static analyses and optimizations, starting with analysis of parallel control flow graphs, which is necessary when performing any type of code motion. The set of legal transformations depends on the desired memory model of the language, which may be different than that of the underlying machine. The memory model includes both the types of sharing that are allowed and the consistency guarantees on any shared variables. We will also describe various synchronization models and how they can be analyzed, both to optimize the synchronization constructs themselves and to improve the quality of other optimizations. In a language like Java, static type information may be used in analysis such as Local Qualification Inference and Shared/Private variable analysis.

The second part of the tutorial will look at runtime systems issues for parallel and distributed environments. These include the use of lightweight messaging or other communication models, and support for complex machines such as clusters of shared memory multiprocessors, and the problems with Java-style threading models. For example, despite the support for threads in Java, several projects in both distributed Operating Systems and in High Performance Scientific Computing avoid using Java threads directly. We will also describe performance issues related to the Java libraries, such as I/O libraries. Finally, we will describe some of the reliability problems that arise from problems of scale. Whether running applications on a distributed network of sensors or a million processor cluster, any practical programming system will have to provide support for dynamically handling hardware and software failures. We will describe some of the problems with conventional models of hiding faults within the low level hardware or software systems, and the need for better application-level support.

Instructor: Katherine Yelick, University of California, Berkeley

Katherine Yelick is an Associate Professor at the University of California, Berkeley. She joined the Computer Science Division there in 1991, after obtaining a Ph.D. from the Massachusetts Institute of Technology in the area of reasoning about parallel programs. From 1992 to 1995 she led the Multipol project, a distributed data structure library for high performance computations. She has been involved in the design of the Split-C, UPC, and Titanium languages, all designed for high performance on large-scale parallel machines and clusters. She also led the software efforts on the Intelligent RAM (IRAM) project and the Intelligent Storage (ISTORE) project. She has worked on static analysis of parallel code, memory hierarchy optimizations, and dynamic load balancing algorithms. Her current line of research involves self-tuning of algorithmic kernels for complex memory hierarchies and tolerating software and hardware faults in a high performance environment.


Real-Time Java

Java has proved itself an excellent vehicle for the development of portable, robust object-oriented software. Recent efforts have tried to make Java more palatable to real-time and embedded-systems developers. This tutorial examines one such effort: the Real-Time Specification for Java (RTSJ). We assume familiarity with the basics of Java and with object-oriented software development. The tutorial covers the features of the RTSJ, provides examples to illustrate the use of those features, and reports on some preliminary benchmark experience with an implementation of the RTSJ. Topics covered include storage management, thread management and scheduling, synchronization, and representations of time. The emphasis is on using the specification for real-time and embedded systems, where predictability and priority preservation are more important than raw speed.

Instructors: Ron K. Cytron, Washington University, St. Louis &
Chris D. Gill, Washington University, St. Louis

Ron K. Cytron is an Associate Professor of Computer Science at Washington University, where his research interests include automatic program optimization and transformation (especially of network software and middleware), voting strategies suitable for the Internet, and storage-management systems suitable for object-oriented programs. He received a B.S. in electrical engineering from Rice University in 1980. His graduate studies at the University of Illinois at Urbana-Champaign resulted in an M.S. in 1982 and a Ph.D. in 1984, both in computer science. He was a Research Staff Member at IBM's Thomas J. Watson Research Center from 1984 until 1993.

Chris D. Gill is a Research Associate at Washington University who joined the DOC group from Southwestern Bell. He has ported ACE to the pSoS real-time operating system and has implemented a strategized scheduling service for TAO. He is currently working on a middleware framework for dynamic and adaptive resource management in embedded and real-time distributed object computing systems. In addition to working as a full-time staff member, Chris is a doctoral candidate in the CS department at Washington University.


Java Technology for Mobile Wireless Devices

This tutorial covers the design and implementation of Java technologies for resource-limited mobile wireless devices. We will discuss 1) subsetting of the Java language, Java virtual machine, and Java API in Sun's Java 2 Micro Edition, Connected Limited Device Configuration (J2ME CLDC) 2) implementation techniques aimed at reducing footprint in the K Virtual Machine (KVM) runtime 3) application level considerations in the Mobile Information Device Profile (MIDP). The relationship between Java and other wireless technologies such as WAP will also be discussed.

Instructor: Sheng Liang, Stratum8

Sheng Liang, Founder and CTO of Stratum8, is a leading expert in Java, Internet, and wireless technologies. An early member of Sun's Java team, he was the architect of core components of the Java virtual machine aimed at desktops and servers and more recently the small footprint K virtual machine aimed at wireless devices and PDAs. He led the Java virtual machine development team for the first release of the Java 2 platform. Liang authored "Java Native Interface Specification" as part of the Addison-Wesley Java Series. His work is widely published in leading academic journals and conferences and has resulted in over 20 patent applications. Liang holds a Ph.D. degree in Computer Science from Yale University and a B.S. degree in Computer Science from the University of Science and Technology of China.


April 16, 2001 - Susanne Hupfer (susanne@mirrorworlds.com)