Языки второго поколения (2GL) создавались для того, чтобы облегчить тяжёлую работу по программированию, перейдя в выражениях языка от низкоуровневых машинных понятий ближе к тому, как обычно мыслит программист. Эти языки появились в 1950-е годы, в частности, такие языки как Фортран и Алгол. Наиболее важной проблемой, с которыми столкнулись разработчики языков второго поколения, стала задача убедить клиентов в том, что созданный компилятором код выполняется достаточно хорошо, чтобы оправдать отказ от программирования на ассемблере. Скептицизм по поводу возможности создания эффективных программ с автоматических компиляторов был довольно распространён, поэтому разработчикам таких систем должны были продемонстрировать, что они действительно могут генерировать почти такой же эффективный код, как и при ручном кодировании, причём практически для любой исходной задачи.
var
a, b, n, i, j, t: integer;
s, sn: string;
begin
write ('введите начало отрезка: ');
readln (a);
write ('введите окончание отрезка: ');
readln (b);
n : = 0;
for i : = a to b do begin
s : = inttostr (i);
t : = 1;
for j : = 1 to length (s) do
t : = t * strtoint (s[j]);
if t > n then begin
sn : = s;
n : = t;
end;
end;
writeln ('число с наибольшим произведением цифр: ' + sn);
end;