During the second half of the course you will do a large group project. An important part of working in a project is the ability to do research and present important findings to the rest of the project group. In this case study you will practice this skill by researching a programming language with focus on concurrent programming.
Each group will study one of programming languages in the below table where H = link to homepage and W = link to Wikipedia.
Case | Programmeringsspråk | Besrkivning | Intressanta koncept | H | W |
---|---|---|---|---|---|
1 | Clojure | Clojure is a dialect of the Lisp programming language. Clojure is a general-purpose programming language with an emphasis on functional programming. It runs on the Java virtual machine and the Common Language Runtime. | Homoiconicity. STM (Software Transactional Memory). Persistent data structures. Agents, dynamic vars and refs. | H | W |
2 | Erlang | Erlang is a general-purpose, concurrent, functional programming language, as well as a garbage-collected runtime system. | The actor modell. Hot code swapping. | H | W | 3 | Haskell | Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing. Haskell features a type system with type inference and lazy evaluation. | Threads and MVars. Software Transactional Memory (STM). | H | W |
4 | Go | Go is a compiled, statically typed language in the tradition of Algol and C, with garbage collection, limited structural typing, memory safety features and CSP-style concurrent programming features added. The compiler and other language tools originally developed by Google are all free and open source. | Go-routines, channels, send, receive, select. | H | W |
In the below schedule you can see which case your group have been assigned. Note that you should be present no only during your groups presentation but for all presentations in the same block as your presentation. In the table you can also see for which group you will act as opponents.
This is just a suggestion for topics to include in your presentation and you may choose to exclude or rearrange parts of the list and/or include other topics you find relevant in the context of your case study.
Language
The suggested outline below is in Swedish but the presentation should be in English.