Программа - вариант реализации алгоритма для обработки данных.
Программу тоже можно рассматривать как данные и производить с ней манипуляции. Например, если рассматривать программу как текст то её можно модифицировать в другой программе. А программу, уже загруженную в оперативную память можно рассматривать как последовательность байт, которые можно модифицировать.
P.S. Компиляторы и парсеры делают не сильно сложную работу. Они рассматривают поток текста как некие синтаксические сущности и на их основе создают понятные для компьютера вычислимые сущности. Тот код, который ты пишешь - просто текст. А вся магия в метаописании сущностей.
i, k, Count: Integer;
begin
Count:=0;
for i:=0 to 2 do
for k:=0 to 1 do
c[i][k]:=Random(300) - 100;
for i:=0 to 1 do
if ((c[1][i] Mod 2 = 0) And (c[1][i] >= 0) then
Inc(Count); // увеличиваем переменную на 1цу
WriteLn(Count);
end.