Source: https://www.informatik.htw-dresden.de/~robge/bs1/vl/bs1-01-einfuehrung-6up.pdf