Since the early years of programming, when programmers wrote laboriously in the native machine code of the processor, translators have been necessary to convert from higher-level languages such as assembly language (second generation), Pascal (third generation), and SQL (fourth generation) to machine code. Compilers, interpreters and assemblers are different types of translator. Pascal is a compiled language, so this tutorial concentrates on compilers (which convert source code into either an intermediate language or into executable code). Follow Link 1 below for some basic information.
While all four sections of this tutorial provide opportunities for experimenting with code, Jack Crenshaw's fine tutorial, Let's Build a Compiler! will absorb you for many hours and help you to devise your own language.
An assembler converts assembly language code to machine code. The third section of this tutorial provides further information and introduces the MASM assembler.
Interpreters translate and execute scripts an instruction at a time without producing a binary file of the translated code. Follow Link 4 below for more information.