Supplementary materials for the course of "Concepts of Modern Programming Languages" (NPRG014).
- Language dynamism - typing, casting, object construction, method invocation
- Functional programming in OO languages
- Scripting
- Bring your laptop to the lecture with the listed software pre-installed
- Grab Groovy 3.0.x from the groovy download page (http://groovy-lang.org/download.html). Make sure the "groovyConsole" command-line tool can be started.
- Install Java JDK 11 or higher (if you don't have it installed) from the Java download site
- Checkout this repository to get the source code of the examples and homework assignment that will be used during the lecture
- Exercises to work with during the lesson are located in the “lecture1004/exercises” folder
- The homework is to be found at “lecture10004/homework”
- The “lecture10004/slides” holds the slides for the lecture
- Dynamic meta-programming
- Intro into Domain Specific Languages
- Domain specific languages
- Builders
- Same as for Lesson 1
- Do a fresh checkout of this repository to get updated source code for examples and homework assignments
- Exercises to work with during the lesson are located in the “lecture1018/exercises” folder
- The homework is to be found at “lecture1018/homework”
- The “lecture1018/slides” holds the slides for the lecture
- Static meta-programming
- AST transformations
- Same as for Lesson 1
- Do a fresh checkout of this repository to get updated source code for examples and homework assignments
- Exercises to work with during the lesson are located in the “lecture1025/exercises” folder
- The homework is to be found at “lecture1025/homework”
- The “lecture1025/slides” holds the slides for the lecture
- Concurrency abstractions in modern languages ** Dataflow ** Fork-join ** Actors ** Parallel collections ** Agents
- Same as for Lesson 1
- Do a fresh checkout of this repository to get updated source code for examples and homework assignments
- Exercises to work with during the lesson are located in the “lecture1101/exercises” folder
- The homework is to be found at “lecture1101/homework”
- The “lecture1101/slides” holds the slides for the lecture
- Bytecode
- Statically-typed languages (Scala) - Part I
- Grab and install SBT (http://www.scala-sbt.org/)
- Install Java JDK (if you don't have it installed) from the Java download site
- Checkout this repository to get all examples
- Go to lecture1102-1123/exercises-homework and run "sbt compile" to download all necessary packages (Scala and related libraries)
- Exercises to work with during the lesson and the homework are located in the lecture1102-1123/exercises-homework” folder
- The “lecture1102-1123/slides” holds the slides for the lecture
- Statically-typed languages (Scala) - Part II
- Same as for Lesson 5
- Statically-typed languages (Scala) - Part III
- Same as for Lesson 5
- Statically-typed languages (Scala) - Part IV
- Same as for Lesson 5
- Prototype-based languages (IO)
- Download IO interpreter from http://iolanguage.org/binaries.html
- Checkout this repository to get all examples
- Exercises to work with during the lesson and the homework are located in the “lecture1130-1207/exercises-homework” folder
- The homework assignment is located in io/ioH.io
- The “lecture1130-1207/slides” holds the slides for the lecture
- Prototype-based languages (JavaScript, TypeScript)
- Checkout this repository to get all examples
- Download and install Node.JS from https://nodejs.org/en/download/
- In directories "js/whiteboard" and "typescript" execute "npm install"
- Exercises to work with during the lesson and the homework are located in the “lecture1130-1207/exercises-homework” folder
- The homework assignment is located in js/whiteboard/index.js
- The “lecture1130-1207/slides” holds the slides for the lecture