Programming design style where you have functions/modules that are independent of each other.

Each module has an entry point and exit point At its exit point, control is returned back to its calling function