Так и писали в двоичном коде системы команд конкретной машины, т.е. с помощью машинных кодов. У каждой операции в компьютере (сложение, умножение, какие-то более сложные операции) есть код. Люди (прогаммисты) сами по табличке выбирали этот код, всякие адреса в памяти, всё это набивали руками на перфокартах, засовывали в считыватель, запускали программу и она выполняла вычисления. Чтобы облегчить себе жизнь, умные головы придумали языки символического кодирования и написали программы перевода (трансляции) сначала только вычислительных программ в машинные коды (мнемокоды, ассемблеры, макроассемблеры). А затем с их помощью придумали и написали более сложные трансляторы с языков высокого уровня (Фортран, Бейсик, С и т.д.)
Program Summa;
Uses Crt;
var n,s:integer;
begin
clrscr;
write('Вводите числа конец ввода 0: ');
s:=0;
repeat
readln(n);
s:=s+n;
until (n=0);
writeln;
writeln('Сумма чисел: ',s);
readkey;
end.