Microchip's Flash and OTP PIC® microcontrollers feature ICSP capability. This feature uses the MCLR, ICSP CLK and ICSP DATA pins of the PIC® to program the chip. ICSP allows the microcontroller to be programmed after being placed in a circuit board, which offers tremendous flexibility, reduced development time, increased manufacturing efficiency and improved time to market. OTP's can only be programmed once, but a few offer a windowed package which allows it to be erased with a special UV eraser.
There are various types of programmers available. The standalone device programmers have a socket to program through-hole chips. Special adapters are available to be used for other package types. Another option is to have an ICD jack which allows chips to be programmed and debugged in-circuit.
Programmers also differ in the way they are connected to a PC. For example, they may have a serial interface, a USB interface or connect to a parallel port of the PC. Some standalone programmers can also program chips without a PC program by storing the hex file locally, on an EEPROM, or compact flash card. Another option is a gang/cluster programmer that allows programming several chips in parallel. These can be very useful in a high volume production environment. Some programmers also have support for different types of chips such as EPROM, EEPROM, Flash memory, PIC's and chips from other manufacturers.
An ICD (in-circuit-debugger) is another common way to program flash chips. They usually provide ICD jacks to allow for programming and debugging while in-circuit.