High Level Languages for Microcontrollers