Language Info (mostly Java)

Concert V4.0

The Illinois Concert system is a parallel programming system for fine-grained object-oriented programming on parallel systems. Our goal is to enable portable and efficient programming using concurrent object-oriented programming (COOP) through compiler analysis and tranformation [7,8] and runtime [4] techniques. These techniques are particularly helpful for problems with irregular parallelism or complex data structures.
NEW in this release:

        o Support for ICC++ (compiler and runtime only)
        o Object optimizations
        o Foreign function interface (ICC++ only)


        o SGI Power Challenge Array runtime
        o Additional development and simulation platforms
          (some possibilities: HP/Exemplar/Sun Solaris)

The Concert System includes:

        o Compiler and Runtime (for Suns, the CM5 and the T3D)
        o Program Emulator for interactive program development
        o Performance tools
        o Symbolic Debugger (source level)
The Concert system supports the languages Concurrent Aggregates [1,2] and ICC++ [9,10], a dialect of C++. Both are fine-grained object-oriented language based on the actor model. These languages also support aggregates (collections), multi-access abstractions, and allow both data and task parallelism to be exploited seamlessly.

Applications/Kernels for which we have achieved good speedups on distributed memory machines include: Hierarchical radiosity, Barnes-Hut, Protein Molecular dynamics, Grobner Basis, and Phylogeny. Codes under development include: volume rendering, fast multipole, and adaptive mesh refinement. Many of these applications were previously thought to require cache coherent shared memory machine to achieve high performance.

The Concert system is available from: If you are unable to access the http server, please send email to

The Concert System was built in the Concurrent Systems Architecture Group in the Department of Computer Science at the University of Illinois at Urbana-Champaign. Project team members include: Andrew A. Chien, Julian Dolby, Bishwaroop Ganguly, Vijay Karamcheti, John Plevyak, and Xingbin Zhang.

DISCLAIMER: The Concert system is experimental software while we believe it is robust and usable, appropriate expectations about support apply.


The Concert System: Compiler and Runtime Support for Portable, Efficient Fine-grained Concurrent Object-oriented Programming

Concurrent object-oriented languages, particularly fine-grained approaches, manage the complexity of large scale concurrent programming by providing modularity through encapsulation, while exposing large degrees of concurrency. Fine-grained approaches allow the user to express a program using its natural grain size and exposing maximal concurrency, leaving the task of efficient execution to the compiler and runtime. Grain size tuning is used to match the execution grain size to that efficiently supported by the underlying machine.

The ultimate goal of the Concert project is to support efficient execution of a variety of concurrent object-oriented languages on a number of machines. This release consists of an optimizing compiler and a fast runtime system for Concurrent Aggregates and ICC++, a C++ dialect. they are both fine-grained object oriented languages with support for object collections (for more details about the language, see [1,2]). The optimizing compiler is capable of obtaining C-like sequential performance when data is available locally. This is accomplished through interprocedural flow analysis [8], inlining and high level transformation of locality tests and object locks [7]. The compiler also includes optimizations such as global constant propogation, strength reduction, common subexpression elimination, constant folding, etc. The high-performance runtime system supports program execution on the Thinking Machines CM5 and Cray T3D using FM (Fast Messages) [6].

Currently, support for program development is available on SPARC workstations running SunOS with a uniprocessor simulator of the CM5 execution (based on a light-weight threads package). Support for Concurrent Aggregates also includes an emulator and a symbolic debugger. Performance monitoring information is also provided which interfaces with the Pablo performance visualization package. The release also includes basic libraries for linear algebra functions, as well as a variety of data parallel operations on object collections. Several large example programs are also part of the release.

More papers and information on Concert can be obtained from Any other questions regarding the Concert system can be addressed to


[1] Andrew A. Chien, "Concurrent Aggregates: Supporting Modularity in
    Massively-Parallel Programs", MIT Press, Cambridge, MA, 1993.
[2] Andrew A. Chien, Vijay Karamcheti, John Plevyak and Xingbin Zhang,
    "Concurrent Aggregates Language Report 2.0", September 1993,
[3] Andrew Chien, Vijay Karamcheti, and John Plevyak. "The Concert System -
    Compiler and Runtime Support for Efficient Fine-Grained Concurrent
    Object-Oriented Programs". Technical Report UIUCDCS-R-93-1815,
    Department of Computer Science, University of Illinois, June 1993.
[4] Vijay Karamcheti and Andrew Chien. "Concert - Efficient Runtime Support
    for Concurrent Object-Oriented Programming Languages on Stock Hardware".
    In Proceedings of SUPERCOMPUTING'93, November 1993.
[5] John Plevyak, Vijay Karamcheti and Andrew Chien. "Analysis of Dynamic
    Structures for Efficient Parallel Execution". In Proceedings of
    the Sixth Workshop on Languages and Compilers for Parallelism,
    August 1993.
[6] Vijay Karamcheti and Andrew A. Chien, FM - Fast Messaging on the Cray T3D
    Available from
[7] John Plevyak and Xingbin Zhang and Andrew A. Chien,
    Obtaining Sequential Efficiency in Concurrent Object-Oriented Programs,
    Proceedings of the ACM Symposium on the Principles of Programming
    Languages, January 1995
[8] John Plevyak and Andrew A. Chien, Precise Concrete Type Inference
    of Object-Oriented Programs, Proceedings of OOPSLA, 1994
[9] Andrew Chien and Uday Reddy, ICC++ Language Definition. Available
[10] A. A. Chien, U. S. Reddy, J. Plevyak and J. Dolby, ICC++ -- A C++
     Dialect for High-Performance Parallel Computation. Proceedings of
     ISOTAS, 1996

Objective Caml version 1.00.

Objective Caml is an object-oriented extension of the Caml dialect of ML. It is statically type-checked (no "message not understood" run-time errors) and performs ML-style type reconstruction (no type declarations for function parameters). This is arguably the first publically available object-oriented language featuring ML-style type reconstruction.

Objective Caml is a class-based OO language, and offers pretty much all standard features of these languages, including "self", single and multiple inheritance, "super", and binary methods, plus a number of less common features such as parametric classes.

The main limitation (due to type reconstruction) is that coercion from an object type to a supertype is not automatic, and needs to be written down explicitly. Message sending remains fully polymorphic, though.

Objective Caml is based on (and supersedes) the Caml Special Light system. It inherits from Caml Special Light a powerful module calculus, Modula-style separate compilation, a fast-turnaround bytecode compiler, and a high-performance native-code compiler. Upward compatilibity with Caml Special Light is very high.

More information on Objective Caml, including tutorials and user's manuals, is available on the Web, at

Objective Caml is available for Unix (source) and Windows NT/95 (binaries). The distribution resides at the usual place,

Bug reports should be mailed to More general discussions on Objective Caml take place on the Caml mailing list (, subscriptions at or the newsgroup.

- Xavier Leroy Didier Rimy Jirtme Vouillon

INRIA Rocquencourt, projet Cristal, B.P.105, 78153 Le Chesnay, France.

Send compilers articles to, meta-mail to


Microsoft announced it will integrate support for Sun Microsystems Inc.'s Java technology into future versions of the Microsoft Windows 95 and Windows NT operating systems. This new feature of Windows will allow developers and webmasters using the Java language to immediately use more than 1,000 ActiveX technology-compatible tools, applications and components to build innovative applications for the Internet.

Press release:

Source: Microsoft(R) WinNews Electronic Newsletter, Vol. 3, #16, May 6, 1996


Intermetrics, Inc. recently announced the beta release of AppletMagic, an Ada 95 Java byte-code compiler.. Information, demo "applets" written in Ada 95, and down-loadable binaries for Beta release 1.1 of AppletMagic(tm) for Windows 95/NT and Sparc SunOS4/Solaris 2.0 may be found at:

SOURCE: Tucker Taft, Intermetrics, Inc.


Date:  May 6, 1996

By:    Catherine Sansum Kirkman
       Wilson Sonsini Goodrich & Rosati
       650 Page Mill Road
       Palo Alto, California 94304-1050
       415/493-9300 (tel)
       415/493-6811 (fax)

JavaSoft, an operating company of Sun Microsystems, Inc., announced a new licensing model for its Java technology, under which industry leaders will now embed Java directly into their operating systems. Apple Computer, Hewlett-Packard, Hitachi, IBM, Microsoft, Novell, Silicon Graphics, SunSoft, The Santa Cruz Operation and Tandem Computers all intend to embed Java into their operating systems. This paves the way for Java to become a ubiquitous feature for end users. JavaSoft will provide each operating system licensee with the Java Virtual Machine and Java Class Libraries. Each licensee will become a provider of the Java implementation for its platform and will expose Java as binaries in the operating system, providing ready access for developers. JavaSoft will still offer traditional source licensing.

Borland AppAccelerator inside netscape

Date:  April 22, 1996
By:    Catherine Sansum Kirkman
       Wilson Sonsini Goodrich & Rosati
       650 Page Mill Road
       Palo Alto, California 94304-1050
       415/493-9300 (tel)
       415/493-6811 (fax)

Netscape Communications Corp. and Borland International announced that Netscape plans to improve the speed and performance of Java applications running inside Netscape Navigator by including the Borland AppAccelerator "just-in-time" dynamic compiler for Java applications. This will enable Java applets and applications to run five-to-ten times faster than with non-enhanced versions of Netscape Navigator. Borland's AppAccelerator reads the intermediate byte code produced by Java development tools and translates it "on-the-fly" into machine-executable instructions on the local client system. Terms of the agreement were undisclosed.


Silicon Graphics, Inc. announced that the Virtual Reality Modeling Language (VRML) community has reached a consensus and has selected Moving Worlds as the VRML 2.0 specification. Moving Worlds, the VRML 2.0 proposal from SGI, was confirmed as VRML 2.0 by the VRML Architecture Group. VRML is the standard for deploying 3D worlds on the Internet and allows a more intuitive interface to information. SGI will base a number of its products on the new VRML specification, including its Cosmo Player, Cosmo Create and Cosmo Code for integrated HTML, VRML 2.0 and Java content development.


Kinetix introduced HyperWire, a new authoring tool for the Web, which lets users easily create 3D and 2D Web titles in Sun Microsystems' Java environment. HyperWire uses simple visual objects rather than complex programming commands. HyperWire incorporates VRML (Virtual Reality Modeling Language) and a VRBL (Virtual Reality Behavior Language) player. HyperWire and the Topper player are available in beta form on the Kinetix Web site ( The announcement was made with praise from Sun, Netscape and Intel, among others.


In my spare surfing time, I've come across some cool links. You may want to take a look are them if you're still loking for ideas for a project: SYLU 2.0 is a version of Xerox PARC's ILU that is written entirely in Python. Jylu is an implementation of the ILU runtime kernel and Java language binding completely in the Java language. It is on-the-wire compatible with ILU 2.0 (e.g. any ILU 2.0 client can call methods any Jylu true object and any Jylu surrogate can call methods any ILU 2.0 true object.) Since it is written completely in Java, it can go anywhere Java can go (inside of Netscape?) HORB is the world's first widely available object oriented language system that changes the style of WWW programming, Internet programming and parallel programming. It alllows you to create WWW pages containing interactive objects that communicate with objects running in your server, and forget CGI programming and socket programing. HORB is compatible with Sun's Java(TM) language and the Netscape(TM) WWW browser.

Project Ideas

In addition to exploring what commercial vendors are doing with the WWW and OODBs, and installing Open OODB (and getting your presentations ready and doing your Java assignments and ...), you might also want to take a look at:

libHTML is a library of classes abstracting HTML. The library is primarily used to write C++ CGI's, but it can also be used to develop basic html documents. The library was developed using an Object Oriented methodology making the interface to the library easy to understand and allowing future library evolution. You no longer need to write HTML documents with hundreds of greater-than and less-than characters surrounded by unreadable commands like 'B', 'BR', '#AAFF00', 'HREF' and 'TD'.

Sofcom's Java Tutorials

This month (April 1996), Sofcom begins a series of tutorials on the Java Programming Language which are featured in Australia's latest Internet magazine - The Australian NetGuide. This month's tutorial is titled Twenty One Matches where we take you through a step by step example of how to write your first java program.

Twenty One Matches is a short example of a Java "applet". You can take a copy of this code to modify and experiment with. This example program plays a very simple game against the user. Starting with twenty one match sticks, the user and the computer alternate in taking away 1, 2 or 3 matches at a time. You win the game by taking the last match.

For more information try URL:

Java News..."Joe"

Sun Microsystems, Inc. introduced Joe, a new product written in Java programming language that enables corporations to extend their business applications onto their private intranets and the public Internet. Joe connects Java applets running on any Java-enabled browser to business applications running on corporate networks. A beta version will be made available for download from Sun's home page in June. Unlike HTML forms and CGI scripts that generate a new Web page upon each request, Java applets do not reload entire Web pages but simply send updated information as necessary, minimizing network traffic.

Ada reading

Here are a couple of reading assignments for Monday.


"Persistent Languages and Architectures" at

Java Boutique [comp.infosystems.www.announce]

The Java Boutique is a resource for users that would like to add Java Applets to their own Web sites. It currently houses nearly 100 working Applets, along with instructions for downloading and including them in other Web pages. URL:

Java news....

Microsoft has finalized an agreement to license Sun Microsystems' Java technology for inclusion in Microsoft products. MS said that future versions of Microsoft Internet Explorer will include the ability to run Java applets distributed through the World Wide Web. MS plans to make a development tool for Java code-named "Jakarta" available by mid-96. Microsoft will develop and maintain the reference implementation of Java for Windows platforms.

Free copy of NetCraft (Java)

Get a free copy of the NetCraft visual development environment for Java at If you register and complete their Java survey now, you will receive a free copy of NetCraft, the new browser/server development environment that generates standard Java source code. NetCraft will be available in April of 1996. This free offer is limited to the first 10,000 people who register (before June 30). Windows Magazine claims that NetCraft will be sold for $995 after June 30....

For more info, check out:

Java and Security

Hostile Applets Home Page

At Georgia Tech School of Mathematics, Atlanta, GA, US
Think that Java is safe and secure, and that all applets are friendly? Come see this collection of applets for a change of mind. Please make sure all work is saved before using these applets! (remember, this is NOT fun!)

CERT security advisory for Java

CERT has advised us of a security problem with Java that affects all users of Netscape 2.0 and Hot Java. This security breach allows Java apps to open connections to arbitrary internet hosts.

A Java GUI example program

Source code and detailed explanation.

How Do I??

The link contains pointers to various Java programming questions/answers. Among them "How Do I Do a Linked List?"

JavaScript & HotJava Browser

Java tutorial

Java and Databases

JavaSoft announced JDBC, a database access application programming interface (API) that enables developers to write Java applications that access enterprise databases. The API specification will be released to on March 8. The API will allow Java applications to access data stored in conventional databases. Companies now developing to the JDBC API include Gupta Corp., Informix Software, IBM's Database 2, Object Design, Oracle Corp. and Sybase, Inc. JavaSoft says that database integration is a critical component of the Java Enterprise Platform.

C++ Standard template library and more

Finding Files on the Internet

There is an incredible file finding resource on the web called the Virtual Software Library. Point you www browser to: to begin your search. Use the Quick Search option first. This web utility is for all levels of users on all platforms.
maintained by Ping Xuan ( ) Last modified 04/96