Programming language resources

The concepts are taught from the course literature. In execise sessions and assignments this is complemented by practical work.

The practical component is taught by four programming assignments ("labs"). The first two are to be done in Java, the third one in JR, and the last one in Erlang. The lectures will use JR to illustrate a wide range of programming techniques, but we will also illustrate concurrency aspects of Java fairly extensively. Everyone on the course will need to program in JR and/or Java. The exam questions will mainly use JR, but an understanding of the synchronisation aspect of Java programs will also be expected.

All students also need to learn Erlang to do the third assignment and for the exam. A necessary subset of Erlang will be covered in the lectures.

Java resources

Sun's own Java tutorial and in particular the section Doing Two or More Tasks at Once: Threads deals in a simple way with the basics of threads and the need for them. It contains nice small examples as well. It is a part of Essential Java Classes that also contains nice information about Streams and exception handling.

From release 5, Java includes a host of new concurrency features. An overview can be a useful reference.

If you want to know more about Java we also recommend the language specification. There is a HTML online version. Chapter 17 deals with threads and locks. It contains very valuable information for anyone trying to write something concurrent in Java.

We don't talk much about memory models in this course, but it is a very important issue. For everyone using advanced concurrency features in Java this FAQ on the current memory model in Java is a must read.

JR resources

The course book uses an unspecified language based on the language SR. Previous runs of the course used language MPD which is a minor modification of SR. Please note that the syntax in the book is unfortunately not the syntax of the MPD language. If you want more information about the MPD language visit the MPD page.

The main course programming language JR is a modification of SR (and thus MPD) based on Java. The syntax is largely based on SR/MPD and made look more like Java. The main reference for JR can be found on the JR web-page. There is a book on JR which is presented on that web page. Google Books has a preview of the JR book. We also provide a short syntax reference for JR.

Since the programming languge used in the book is basically SR/MPD, the fastest way to get a good start with JR is to use this table that shows how SR/MPD syntax can be translated to JR.

Running JR programs

Running JR programs is simple: just type jr followed by the name of the class you want to run (note: do not type the name of the file, that will not work. JR only wants the name of the class).

Erlang resources

The following may be useful:
Last modified: Tuesday, 20-Aug-2013 16:01:20 CEST
COMPUTER SCIENCE AND ENGINEERING - Chalmers University of Technology and Göteborg University
SE-412 96 Göteborg, Sweden - Tel: +46 (0)31- 772 1000