HDL - Hardware Descriptive Language -- is used to specify the logic that will be configured in FPGA's
FPGA - Field Programmable Gate Array -- A device which can be programmed to implement a variety of logic systems, such as state machines, DSP, Micro Processors, etc.
CPLD - Complex Programmable Logic Device -- sort of like an FPGA, but smaller and not as felxible.
Microcontroller - A microprocessor with integrated periphreals, such as UART's, timers, instruction memory, etc.
Some overlap exists in applications between FPGA's and microcontrollers. They typically have differnet apps, however.