summaryrefslogtreecommitdiff
path: root/presentations/unnormal.md
blob: f112fa0946009a371f594c342e071d73a5e76325 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# Ненормальное программирование

---

# Машина Тьюринга

- Лента, состоящая из ячеек <!-- .element: class="fragment" data-fragment-index="0" -->
- Управляющее устройство <!-- .element: class="fragment" data-fragment-index="1" -->
- Хранилище состояния <!-- .element: class="fragment" data-fragment-index="2" -->
- Правила перехода <!-- .element: class="fragment" data-fragment-index="3" -->

---

# Эзотерические ЯП

![](images/unnormal.png)

---

# Полные по Тьюрингу языки

- C++
- Rust
- Haskell
- Lisp

---
<!-- .slide: data-auto-animate -->

> Любая достаточно сложная программа на Си или Фортране содержит заново
> написанную, неспецифицированную, глючную и медленную реализацию половины языка
> Common Lisp.

- Филипп Гринспен

---
<!-- .slide: data-auto-animate -->

> Любая достаточно сложная программа на Си или Фортране содержит заново
> написанную, неспецифицированную, глючную и медленную реализацию половины языка
> Common Lisp.

- Филипп Гринспен

> ...в том числе и сам Common Lisp.

- Роберт Моррис

---

# Структура простого проекта на C++

- CMakeLists.txt -> Makefile
- main.cpp

---

# Surprisingly turing-complete

- https://gwern.net/turing-complete

![](images/gwern.gif)