A programmer typically starts by writing high-level language statements in a text editor. Next, the programmer runs another program to convert the high-level program code into executable code that will also check for syntax errors. What is this program called?