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 |
5 | Kotlin | Kotlin is a statically typed object oriented multiplatform programming language running on the JVM, Android or in the web browser. | Kotlin Coroutines. Channels. | 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 ass opponents.