Let’s Go!
Akim Demaille, Etienne Renault, Roland Levillain April 2, 2020
TYLA Let’s Go! April 2, 2020 1 / 58
Lets Go ! Akim Demaille, Etienne Renault, Roland Levillain April 2, - - PowerPoint PPT Presentation
Lets Go ! Akim Demaille, Etienne Renault, Roland Levillain April 2, 2020 TYLA Lets Go ! April 2, 2020 1 / 58 Table of contents Overview 1 Language Syntax 2 Closure 3 Typed functional programming and Polymorphism 4 Co-routines 5
TYLA Let’s Go! April 2, 2020 1 / 58
TYLA Let’s Go! April 2, 2020 2 / 58
TYLA Let’s Go! April 2, 2020 3 / 58
TYLA Let’s Go! April 2, 2020 3 / 58
◮ Ken Thompson (Multics, Unix, B, Plan 9, ed, UTF-8, etc. – Turing
TYLA Let’s Go! April 2, 2020 3 / 58
◮ Ken Thompson (Multics, Unix, B, Plan 9, ed, UTF-8, etc. – Turing
◮ Rob Pike (Plan 9, Inferno, Limbo, UTF-8, Squeak, etc.) TYLA Let’s Go! April 2, 2020 3 / 58
◮ Ken Thompson (Multics, Unix, B, Plan 9, ed, UTF-8, etc. – Turing
◮ Rob Pike (Plan 9, Inferno, Limbo, UTF-8, Squeak, etc.) ◮ Russ Cox (Plan 9, R2E etc.) TYLA Let’s Go! April 2, 2020 3 / 58
◮ Ken Thompson (Multics, Unix, B, Plan 9, ed, UTF-8, etc. – Turing
◮ Rob Pike (Plan 9, Inferno, Limbo, UTF-8, Squeak, etc.) ◮ Russ Cox (Plan 9, R2E etc.)
TYLA Let’s Go! April 2, 2020 3 / 58
◮ Ken Thompson (Multics, Unix, B, Plan 9, ed, UTF-8, etc. – Turing
◮ Rob Pike (Plan 9, Inferno, Limbo, UTF-8, Squeak, etc.) ◮ Russ Cox (Plan 9, R2E etc.)
TYLA Let’s Go! April 2, 2020 3 / 58
◮ Ken Thompson (Multics, Unix, B, Plan 9, ed, UTF-8, etc. – Turing
◮ Rob Pike (Plan 9, Inferno, Limbo, UTF-8, Squeak, etc.) ◮ Russ Cox (Plan 9, R2E etc.)
TYLA Let’s Go! April 2, 2020 3 / 58
TYLA Let’s Go! April 2, 2020 4 / 58
TYLA Let’s Go! April 2, 2020 5 / 58
TYLA Let’s Go! April 2, 2020 6 / 58
TYLA Let’s Go! April 2, 2020 6 / 58
TYLA Let’s Go! April 2, 2020 7 / 58
TYLA Let’s Go! April 2, 2020 8 / 58
TYLA Let’s Go! April 2, 2020 9 / 58
TYLA Let’s Go! April 2, 2020 10 / 58
TYLA Let’s Go! April 2, 2020 11 / 58
TYLA Let’s Go! April 2, 2020 12 / 58
TYLA Let’s Go! April 2, 2020 13 / 58
TYLA Let’s Go! April 2, 2020 14 / 58
TYLA Let’s Go! April 2, 2020 15 / 58
TYLA Let’s Go! April 2, 2020 16 / 58
TYLA Let’s Go! April 2, 2020 17 / 58
TYLA Let’s Go! April 2, 2020 18 / 58
TYLA Let’s Go! April 2, 2020 19 / 58
TYLA Let’s Go! April 2, 2020 20 / 58
TYLA Let’s Go! April 2, 2020 21 / 58
◮ the index ◮ a reference toward the element at that index.
TYLA Let’s Go! April 2, 2020 22 / 58
TYLA Let’s Go! April 2, 2020 23 / 58
TYLA Let’s Go! April 2, 2020 24 / 58
TYLA Let’s Go! April 2, 2020 25 / 58
TYLA Let’s Go! April 2, 2020 26 / 58
1
TYLA Let’s Go! April 2, 2020 26 / 58
1
2
TYLA Let’s Go! April 2, 2020 26 / 58
1
2
3
TYLA Let’s Go! April 2, 2020 26 / 58
1
2
3
4
TYLA Let’s Go! April 2, 2020 26 / 58
1
2
3
4
TYLA Let’s Go! April 2, 2020 26 / 58
TYLA Let’s Go! April 2, 2020 27 / 58
TYLA Let’s Go! April 2, 2020 28 / 58
TYLA Let’s Go! April 2, 2020 29 / 58
TYLA Let’s Go! April 2, 2020 30 / 58
TYLA Let’s Go! April 2, 2020 31 / 58
TYLA Let’s Go! April 2, 2020 32 / 58
TYLA Let’s Go! April 2, 2020 33 / 58
TYLA Let’s Go! April 2, 2020 34 / 58
TYLA Let’s Go! April 2, 2020 35 / 58
TYLA Let’s Go! April 2, 2020 36 / 58
TYLA Let’s Go! April 2, 2020 37 / 58
TYLA Let’s Go! April 2, 2020 38 / 58
◮ Opportunistic behavior of the type instances. ◮ Dynamic OO languages like CLOS or Groovy include duck typing in a
TYLA Let’s Go! April 2, 2020 39 / 58
TYLA Let’s Go! April 2, 2020 40 / 58
TYLA Let’s Go! April 2, 2020 40 / 58
TYLA Let’s Go! April 2, 2020 40 / 58
TYLA Let’s Go! April 2, 2020 41 / 58
TYLA Let’s Go! April 2, 2020 41 / 58
TYLA Let’s Go! April 2, 2020 41 / 58
TYLA Let’s Go! April 2, 2020 41 / 58
TYLA Let’s Go! April 2, 2020 42 / 58
TYLA Let’s Go! April 2, 2020 43 / 58
TYLA Let’s Go! April 2, 2020 44 / 58
TYLA Let’s Go! April 2, 2020 45 / 58
◮ Goroutines are then automatically mapped to the OS host concurrency
TYLA Let’s Go! April 2, 2020 45 / 58
◮ Goroutines are then automatically mapped to the OS host concurrency
◮ A goroutine does not return anything (side-effects are needed) TYLA Let’s Go! April 2, 2020 45 / 58
◮ Goroutines are then automatically mapped to the OS host concurrency
◮ A goroutine does not return anything (side-effects are needed)
TYLA Let’s Go! April 2, 2020 45 / 58
◮ Goroutines are then automatically mapped to the OS host concurrency
◮ A goroutine does not return anything (side-effects are needed)
TYLA Let’s Go! April 2, 2020 45 / 58
TYLA Let’s Go! April 2, 2020 46 / 58
TYLA Let’s Go! April 2, 2020 47 / 58
TYLA Let’s Go! April 2, 2020 48 / 58
TYLA Let’s Go! April 2, 2020 49 / 58
TYLA Let’s Go! April 2, 2020 50 / 58
TYLA Let’s Go! April 2, 2020 51 / 58
TYLA Let’s Go! April 2, 2020 52 / 58
TYLA Let’s Go! April 2, 2020 53 / 58
TYLA Let’s Go! April 2, 2020 54 / 58
TYLA Let’s Go! April 2, 2020 55 / 58
TYLA Let’s Go! April 2, 2020 56 / 58
TYLA Let’s Go! April 2, 2020 57 / 58
TYLA Let’s Go! April 2, 2020 58 / 58