Инструментальные средства управления изменениями упрощают
Инструментальные средства управления изменениями упрощают эти задачи, поскольку сохраняют изменения (так называемые дельты) относительно первоначальной версии и позволяют на их основе легко восстановить любую предыдущую версию.
3.10. Интерпретаторы
Интерпретатор — это программа, которая непосредственно выполняет код исходной программы. Преимущество интерпретатора перед компилятором состоит в чрезвычайной простоте использования, поскольку не нужно вызывать всю последовательность инструментальных средств: компилятор, компоновщик, загрузчик, и т.д. К тому же интерпретаторы легко писать, поскольку они могут не быть машинно-ориентированными; они непосредственно выполняют программу, и у них на выходе нет никакого машинного кода. Таким образом, интерпретатор, написанный на стандартизированном языке, является переносимым. Относительная простота интерпретаторов связана также с тем, что они традиционно не пытаются что-либо оптимизировать.
В действительности провести различие между интерпретатором и компилятором бывает трудно. Очень немногие интерпретаторы действительно выполняют исходный код программы; вместо этого они переводят (то есть компилируют) исходный код программы в код некой воображаемой машины и затем выполняют абстрактный код (рис. 3.2).

Предположим теперь, что некто изобрел компьютер с машинным кодом, в точности совпадающим с этим абстрактным кодом; или же предположим, что некто написал набор макрокоманд, которые заменяют абстрактный машинный код фактическим машинным кодом реального компьютера. В любом случае так называемый интерпретатор превращается в компилятор, не изменившись при этом ни в одной своей строке.
Первоначально Pascal-компилятор был написан для получения машинного кода конкретной машины (CDC 6400). Немного позже Никлаус Вирт создал компилятор, который вырабатывал код, названный Р-кодом, для абстрактной стековой машины. Написав интерпретатор для Р-кода или компилируя Р-код в машинный код конкретной машины, можно создать интерпретатор или компилятор для языка Pascal, затратив относительно небольшие усилия.