Системы программирования основываются на одном из двух подходов реализации языка: интерпретации или компиляции.
Интерпретация предполагает последовательный анализ текста программы с ее одновременным исполнением. При интерпретации языка компьютер в ходе выполнения программы анализирует каждую инструкцию отдельно, после чего осуществляет ее преобразование в машинный код и выполняет его. Если в ходе выполнения программы повторяется какой-либо фрагмент исходного кода, интерпретатор будет снова анализировать и преобразовывать этот фрагмент перед его исполнением.
Компиляция. В отличие от интерпретаторов компиляторы сначала осуществляют преобразование всего файла исходного текста в машинный код, после чего осуществляется его выполнение. Если какой-либо фрагмент компилируемой программы повторяется, то компиляция повторно не выполняется, как это происходило в интерпретаторе. Следовательно, откомпилированные программы выполняются значительно быстрее, чем интерпретируемые программы, хотя для начинающих проще обучаться на интерпретирующих трансляторах. Язык С относится к языкам компилируемого типа.