As usual, 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 | ---* | *---------------------------* | | | v | *---------------------------* | | Link object code | | *---------------------------* | | Fix bugs that | v emerge during | *---------------------------* execution | | Run program | ----------------------------* *---------------------------*