Source: https://www.usenix.org/publications/compsystems/1989/win_stroustrup.pdf