This impenetrable quality is what gave C its reputation as a write-only language. Use it with care. The program starts at the main function, which calls other functions, which in turn call still others. The flow of execution is controlled by structured statements such as the for, while, and until constructs. Variables are scoped within the block where they are created, and are not accessible outside that block.
Functions have a single entry and exit point.
This paradigm also includes structuring the data. Structs can be copied by value, passed to functions by value, and so on. Data abstraction Data abstraction organizes data into units together with the methods used to manipulate those units. Abstract data types such as Stack and List are classic examples. The hallmark of this paradigm is using concrete types.