Source: http://nwerle.at/Protokolle_WS08/Pascal2.pdf