https://www4.informatik.uni-erlangen.de/DE/Lehre/WS04/V_PA/Skript/Kap1.ppt.pdf