Update after a long time!
This commit is contained in:
parent
2bc7ee5f42
commit
d6f7a51e11
32 changed files with 3005 additions and 117 deletions
1
presentation/.gitignore
vendored
Normal file
1
presentation/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
dist/
|
30
presentation/Makefile
Normal file
30
presentation/Makefile
Normal file
|
@ -0,0 +1,30 @@
|
|||
# Author: Daniel Nicolas Gisolfi
|
||||
# Date: 2020-8-11
|
||||
|
||||
source=$(shell find . -type f -name "*.md")
|
||||
title=$(shell grep -m 1 title $(source) | cut -d ':' -f2 | xargs)
|
||||
version=$(shell grep -m 1 version $(source) | cut -d ':' -f2 | xargs)
|
||||
theme=$(shell find . -type f -name "*.css")
|
||||
flags=--allow-local-files --theme $(theme)
|
||||
devflags=--server --watch --allow-local-files
|
||||
dist="./dist"
|
||||
|
||||
.PHONY: pptx
|
||||
pptx:
|
||||
marp $(flags) "$(source)" -o "$(dist)/$(title)-$(version).pptx"
|
||||
|
||||
.PHONY: pdf
|
||||
pdf:
|
||||
marp $(flags) "$(source)" -o "$(dist)/$(title)-$(version).pdf"
|
||||
|
||||
.PHONY: html
|
||||
html:
|
||||
marp $(flags) "$(source)" -o "$(dist)/$(title)-$(version).html"
|
||||
|
||||
.PHONY: png
|
||||
png:
|
||||
marp $(flags) --images png "$(source)"
|
||||
|
||||
.PHONY: dev
|
||||
dev:
|
||||
marp $(devflags) .
|
BIN
presentation/assets/assembler.png
Normal file
BIN
presentation/assets/assembler.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 65 KiB |
BIN
presentation/assets/brian-kostiuk-S4jSvcHYcOs-unsplash.jpg
Normal file
BIN
presentation/assets/brian-kostiuk-S4jSvcHYcOs-unsplash.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 MiB |
BIN
presentation/assets/harrison-broadbent-VOz0gV9HC0I-unsplash.jpg
Normal file
BIN
presentation/assets/harrison-broadbent-VOz0gV9HC0I-unsplash.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 996 KiB |
BIN
presentation/assets/was-ist-cpu-darstellung.png
Normal file
BIN
presentation/assets/was-ist-cpu-darstellung.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.4 KiB |
330
presentation/dracula.css
Normal file
330
presentation/dracula.css
Normal file
|
@ -0,0 +1,330 @@
|
|||
@charset "UTF-8";
|
||||
/*!
|
||||
* Marp Dracula theme.
|
||||
* @theme dracula
|
||||
* @author Daniel Nicolas Gisolfi
|
||||
*
|
||||
* @auto-scaling true
|
||||
* @size 4:3 960px 720px
|
||||
* @size 16:9 1280px 720px
|
||||
*/
|
||||
|
||||
@import url("https://fonts.googleapis.com/css?family=Lato:400,900|IBM+Plex+Sans:400,700");
|
||||
|
||||
:root {
|
||||
--dracula-background: #282a36;
|
||||
--dracula-current-line: #44475a;
|
||||
--dracula-foreground: #f8f8f2;
|
||||
--dracula-comment: #6272a4;
|
||||
--dracula-cyan: #8be9fd;
|
||||
--dracula-green: #50fa7b;
|
||||
--dracula-orange: #ffb86c;
|
||||
--dracula-pink: #ff79c6;
|
||||
--dracula-purple: #bd93f9;
|
||||
--dracula-red: #ff5555;
|
||||
--dracula-yellow: #f1fa8c;
|
||||
}
|
||||
|
||||
.hljs {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
padding: 0.5em;
|
||||
background: var(--dracula-background);
|
||||
}
|
||||
|
||||
/* Dracula Foreground */
|
||||
.hljs,
|
||||
.hljs-subst,
|
||||
.hljs-typing,
|
||||
.hljs-variable,
|
||||
.hljs-template-variable {
|
||||
color: var(--dracula-foreground);
|
||||
}
|
||||
|
||||
/* Dracula Comment */
|
||||
.hljs-comment,
|
||||
.hljs-quote,
|
||||
.hljs-deletion {
|
||||
color: var(--dracula-comment);
|
||||
}
|
||||
|
||||
/* Dracula Cyan */
|
||||
.hljs-meta .hljs-doctag,
|
||||
.hljs-built_in,
|
||||
.hljs-selector-tag,
|
||||
.hljs-section,
|
||||
.hljs-link,
|
||||
.hljs-class {
|
||||
color: var(--dracula-cyan);
|
||||
}
|
||||
|
||||
/* Dracula Green */
|
||||
.hljs-title {
|
||||
color: var(--dracula-green);
|
||||
}
|
||||
|
||||
/* Dracula Orange */
|
||||
.hljs-params {
|
||||
color: var(--dracula-orange);
|
||||
}
|
||||
|
||||
/* Dracula Pink */
|
||||
.hljs-keyword {
|
||||
color: var(--dracula-pink);
|
||||
}
|
||||
|
||||
/* Dracula Purple */
|
||||
.hljs-literal,
|
||||
.hljs-number {
|
||||
color: var(--dracula-purple);
|
||||
}
|
||||
|
||||
/* Dracula Red */
|
||||
.hljs-regexp {
|
||||
color: var(--dracula-red);
|
||||
}
|
||||
|
||||
/* Dracula Yellow */
|
||||
.hljs-string,
|
||||
.hljs-name,
|
||||
.hljs-type,
|
||||
.hljs-attr,
|
||||
.hljs-symbol,
|
||||
.hljs-bullet,
|
||||
.hljs-addition,
|
||||
.hljs-template-tag {
|
||||
color: var(--dracula-yellow);
|
||||
}
|
||||
|
||||
.hljs-keyword,
|
||||
.hljs-selector-tag,
|
||||
.hljs-literal,
|
||||
.hljs-title,
|
||||
.hljs-section,
|
||||
.hljs-doctag,
|
||||
.hljs-type,
|
||||
.hljs-name,
|
||||
.hljs-strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.hljs-params,
|
||||
.hljs-emphasis {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
svg[data-marp-fitting="svg"] {
|
||||
max-height: 580px;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
margin: 0.5em 0 0 0;
|
||||
color: var(--dracula-pink);
|
||||
}
|
||||
h1 strong,
|
||||
h2 strong,
|
||||
h3 strong,
|
||||
h4 strong,
|
||||
h5 strong,
|
||||
h6 strong {
|
||||
font-weight: inherit;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.8em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
p,
|
||||
blockquote {
|
||||
margin: 1em 0 0 0;
|
||||
}
|
||||
|
||||
ul > li,
|
||||
ol > li {
|
||||
margin: 0.3em 0 0 0;
|
||||
color: var(--dracula-cyan);
|
||||
}
|
||||
ul > li > p,
|
||||
ol > li > p {
|
||||
margin: 0.6em 0 0 0;
|
||||
}
|
||||
|
||||
code {
|
||||
display: inline-block;
|
||||
font-family: "IBM Plex Mono", monospace;
|
||||
font-size: 0.8em;
|
||||
letter-spacing: 0;
|
||||
margin: -0.1em 0.15em;
|
||||
padding: 0.1em 0.2em;
|
||||
vertical-align: baseline;
|
||||
color: var(--dracula-green);
|
||||
}
|
||||
|
||||
pre {
|
||||
display: block;
|
||||
margin: 1em 0 0 0;
|
||||
min-height: 1em;
|
||||
overflow: visible;
|
||||
}
|
||||
pre code {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
min-width: 100%;
|
||||
padding: 0.5em;
|
||||
font-size: 0.7em;
|
||||
}
|
||||
pre code svg[data-marp-fitting="svg"] {
|
||||
max-height: calc(580px - 1em);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 1em 0 0 0;
|
||||
padding: 0 1em;
|
||||
position: relative;
|
||||
color: var(--dracula-orange);
|
||||
}
|
||||
blockquote::after,
|
||||
blockquote::before {
|
||||
content: "“";
|
||||
display: block;
|
||||
font-family: "Times New Roman", serif;
|
||||
font-weight: bold;
|
||||
position: absolute;
|
||||
color: var(--dracula-green);
|
||||
}
|
||||
blockquote::before {
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
blockquote::after {
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
blockquote > *:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
mark {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
table {
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
margin: 1em 0 0 0;
|
||||
}
|
||||
table th,
|
||||
table td {
|
||||
padding: 0.2em 0.4em;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
section {
|
||||
font-size: 35px;
|
||||
font-family: "IBM Plex Sans";
|
||||
line-height: 1.35;
|
||||
letter-spacing: 1.25px;
|
||||
padding: 70px;
|
||||
color: var(--dracula-foreground);
|
||||
background-color: var(--dracula-background);
|
||||
}
|
||||
section > *:first-child,
|
||||
section > header:first-child + * {
|
||||
margin-top: 0;
|
||||
}
|
||||
section a,
|
||||
section mark {
|
||||
color: var(--dracula-red);
|
||||
}
|
||||
section code {
|
||||
background: var(--dracula-current-line);
|
||||
color: var(--dracula-current-green);
|
||||
}
|
||||
section h1 strong,
|
||||
section h2 strong,
|
||||
section h3 strong,
|
||||
section h4 strong,
|
||||
section h5 strong,
|
||||
section h6 strong {
|
||||
color: var(--dracula-current-line);
|
||||
}
|
||||
section pre > code {
|
||||
background: var(--dracula-current-line);
|
||||
}
|
||||
section header,
|
||||
section footer,
|
||||
section section::after,
|
||||
section blockquote::before,
|
||||
section blockquote::after {
|
||||
color: var(--dracula-comment);
|
||||
}
|
||||
section table th,
|
||||
section table td {
|
||||
border-color: var(--dracula-current-line);
|
||||
}
|
||||
section table thead th {
|
||||
background: var(--dracula-current-line);
|
||||
color: var(--dracula-yellow);
|
||||
}
|
||||
section table tbody > tr:nth-child(even) td,
|
||||
section table tbody > tr:nth-child(even) th {
|
||||
background: var(--dracula-current-line);
|
||||
}
|
||||
|
||||
header,
|
||||
footer,
|
||||
section::after {
|
||||
box-sizing: border-box;
|
||||
font-size: 66%;
|
||||
height: 70px;
|
||||
line-height: 50px;
|
||||
overflow: hidden;
|
||||
padding: 10px 25px;
|
||||
position: absolute;
|
||||
color: var(--dracula-comment);
|
||||
}
|
||||
|
||||
header {
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
footer {
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
section::after {
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
font-size: 80%;
|
||||
}
|
101
presentation/presentation.md
Normal file
101
presentation/presentation.md
Normal file
|
@ -0,0 +1,101 @@
|
|||
---
|
||||
title: Hence
|
||||
version: 1.0.0
|
||||
theme: dracula
|
||||
footer: Grimm
|
||||
header: Hence
|
||||
marp: true
|
||||
size: 4K
|
||||
---
|
||||
|
||||
# Hence
|
||||
|
||||
Ein Ausflug in die Welt einer virtuellen CPU
|
||||
|
||||
_Dominic Grimm_
|
||||
|
||||
<style scoped>
|
||||
h1 {
|
||||
padding-top: 1.5em;
|
||||
}
|
||||
</style>
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
# Inhalt
|
||||
|
||||
- Was ist eine CPU?
|
||||
- Überblick Assembler
|
||||
- Hence
|
||||
- (Hence-)Forth
|
||||
|
||||
=> _Workshop_
|
||||
|
||||
---
|
||||
|
||||
# Was ist eine CPU?
|
||||
|
||||
- Herzstück eines Computers
|
||||
- Kleiner Chip auf Hauptplatine
|
||||
- Verarbeitung Arithmetik und Logik
|
||||
- Zugriff auf Speicher und Peripherie
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Aufbau
|
||||
|
||||

|
||||
|
||||
- _Steuerwerk, Rechenwerk, Cache, Register_
|
||||
- Cache: schneller Speicher für oft benötigte Daten
|
||||
- CPU kommuniziert über Bus-Systeme
|
||||
- Leistung abhängig von Kernzahl, Taktfrequenz, Cache und Architektur
|
||||
- Neueste Entwicklungen: Multi-Core-Prozessoren und KI
|
||||
|
||||
---
|
||||
|
||||
## Machine code
|
||||
|
||||
- Niedrigste Ebene der Programmierung.
|
||||
- Binäre Instruktionen, direkt von der CPU ausgeführt
|
||||
- Jede CPU-Architektur hat ihre eigene Maschinensprache, die spezifisch für diese Architektur ist
|
||||
|
||||
- Sehr effizient, da direkt von CPU ausgeführt
|
||||
- Meist in höherer Programmiersprache geschrieben
|
||||
|
||||
=> *Assembler*
|
||||
|
||||
---
|
||||
|
||||
### Beispiel
|
||||
|
||||
*hexadezimal kodiert (`hexdump`)*
|
||||
|
||||
```
|
||||
00000000 03 7f fc 86 03 a0 00 06 00 06 03 c0 02 8b 06 00 |................|
|
||||
00000010 05 03 c0 01 8c 04 00 06 8c 03 00 01 06 00 05 03 |................|
|
||||
*
|
||||
```
|
||||
|
||||
| Code | Opcode | Argument |
|
||||
| ---------- | -------------- | ---------------- |
|
||||
| `03 7f fc` | `0x03` (`ts`) | `0x7ffc` (32764) |
|
||||
| `86` | `0x06` (`tlr`) | |
|
||||
| `03 a0 00` | `0x03` (`ts`) | `0xa000` (40960) |
|
||||
|
||||
---
|
||||
|
||||
# Überblick Assembler
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
# Hence
|
||||
|
||||
- Virtuelle "CPU" (eher SBC)
|
||||
-
|
Loading…
Add table
Add a link
Reference in a new issue