You generally go around two key loops many times as you search for bugs.
*---------------------------* | Write or edit source code | <--* <---------------------* *---------------------------* | | | | Fix bugs that | v | emerge during | *---------------------------* | compilation | | Compile source code | ---* | *---------------------------* | | Fix bugs that | v emerge during | *---------------------------* execution | | Execute program | ----------------------------* *---------------------------*