Okay, first I am going to state that this is undoutably beyond my programming ability at the moment, though I am interested in it none of the less.

What is the theory behind writing a program so that others can add to it in the form of plugins?

Are there any good tutorials or white pages on this topic?

Note: preferably after c++ oreinted tutes.