First, the Pike level interface needs to be defined. The module programmer has to define the components of the module. In other words, he has to define the classes, methods, constants, and variables that his module is going to contain. Where needed he also has to map the components to the C level item (in most cases a function) that will represent the implementation of that component.
When the Pike interface has been defined, what we have is stubs for the whole module. This is where the second major step starts: to turn these stubs into a working module. In plain English: the code for the C functions that are the implementation of the defined Pike methods has to be written.
The following two sections describe more in detail how these two steps are conducted. There are major differences depending on if we use CMOD or not, that is why both sections are divided into two parts.