diff --git a/README.md b/README.md index 505544a..cb1df64 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ date: Winter Term 2024 (LP2) [Canvas](https://chalmers.instructure.com/courses/31854) / [GitLab](https://git.chalmers.se/courses/dat151) / -[Schedule](https://cloud.timeedit.net/chalmers/web/public/riq78Qg6Y03Zx6Q5Q57y8W9665Z8510053q30Z6Q60o60Q5Z9Q65ZQo.html) / +[Schedule](https://cloud.timeedit.net/chalmers/web/public/ri10783Q056Z06Q605663765yZ066W7318Y63Q5Q7.html) / [Slack](https://plt202425.slack.com) ([join!](https://join.slack.com/t/plt202425/shared_invite/zt-2trexj8cz-mjRl_GiiNNkV2ljpNRLsIg)) / [Chalmers studieportal](https://www.student.chalmers.se/sp/course?course_id=38635) / [GU ad (sv)](https://www.gu.se/studera/hitta-utbildning/programspraksteknik-dit231) / @@ -47,7 +47,7 @@ Material: plt = course book, dragon = Dragon book. Slides follow closely the plt | *Mon 18/11* | *23* | *Lab 1 deadline* | | | Tue 19/11 | 13-15 | Type checking | [slides](plt-book/ipl-book/slides/4-slides-ipl-book.pdf), plt 4, dragon 5,6, [script](notes/type-checking.html), [prime.c](notes/prime.c), [prime-stms.c](notes/prime-stms.c), [division.c](notes/division.c), [division-annotated.c](notes/division-annotated.c) | | Thu 21/11 | 13-15 | Interpreting | [slides](plt-book/ipl-book/slides/5-slides-ipl-book.pdf), plt 5, [script](notes/interpreter.html) | -| Tue 26/11 | 13-14 | Hands-on with Lab 2 (Haskell) | [script](notes/monads.html) | +| Tue 26/11 | 13-14 | Hands-on with Lab 2 (Haskell) | [script](notes/monads.html), [live code](live/2024/lab2-live-haskell.zip) | | Tue 26/11 | 14-15 | Hands-on with Lab 2 (Java) | [script](notes/java.html), [Annotated.java](notes/Annotated.java) | | Thu 28/11 | 13-15 **SB-H5** | Code generation | [slides](plt-book/ipl-book/slides/6-slides-ipl-book.pdf), plt 6, dragon 6,7, [notes](notes/compilation.html), [prime.c](notes/prime.c), [prime.j](notes/prime.j) | | Tue 03/12 | 13-14 | Hands-on with Lab 3 (Haskell) | | @@ -310,27 +310,9 @@ java -version ``` We will use version 21 of Java. -You might chose to solve the labs in Java. In this case you need: - -- The java compiler `javac`. -- Parser generator: either [ANTLR](https://www.antlr.org/) or the - [CUP](http://www2.cs.tum.edu/projects/cup/) libraries version 0.11b. -- Lexer generator [JFLex](https://jflex.de/) or the [JLex](https://www.cs.princeton.edu/~appel/modern/java/JLex/) libraries. - -To set up CUP and JLex, follow these instructions: - -1. Download the JAVA archives for - [CUP v11b](https://github.com/BNFC/bnfc/raw/master/testing/data/java-cup-11b.jar), - [CUP v11b runtime](https://github.com/BNFC/bnfc/raw/master/testing/data/java-cup-11b-runtime.jar), - and - [JLex](https://github.com/BNFC/bnfc/raw/master/testing/data/JLex-1.2.6.jar). - -2. Make sure they are placed in your `CLASSPATH`. - - For example, in Linux or macOS, store these jars in `${HOME}/java-lib/` and add the following line to your shell initialization file. - - export CLASSPATH=.:${HOME}/java-lib/java-cup-11b.jar:${HOME}/java-lib/java-cup-11b-runtime.jar:${HOME}/java-lib/JLex-1.2.6.jar:${CLASSPATH} - +You might chose to solve the labs in Java. +In this case, you need the Java Development Kit (JDK). You can get all neccessary Java dependencies by installing `openjdk-21` (e.g. with a package manager on Linux/macOS or by downloading [here](https://learn.microsoft.com/en-us/java/openjdk/download) on Windows). +We publish Java stubs for the labs that use [Gradle build tool](https://gradle.org/), preconfigured to install the Java parser generator [CUP](http://www2.cs.tum.edu/projects/cup/) and the lexer generator [JFLex](https://jflex.de/). If you use the stubs, there is not need to install Gradle, CUP and JFlex yourself. # Student representatives diff --git a/live/2024/lab2-live-haskell.zip b/live/2024/lab2-live-haskell.zip new file mode 100644 index 0000000..776ece4 Binary files /dev/null and b/live/2024/lab2-live-haskell.zip differ