MPLAB is an IDE. It is a place to write the code.

When the code is made into a HEX file a compiler is used, MPASM is the one MPLAB uses.

A programmer is hardware to place the code on the chip. Certain voltage levels have to be met on certain pins for the chip to accept the file.

Like Alan said, look at the PicKit2. Very nice.
http://www.microchip.com/stellent/id...cName=en023805