вспомнил про ма-аленький такой нюанс - мы зациклились на VAR-секции, при этом абсолютно забыв про CONST и TYPE секции, а также про безымянную секцию (но которая также до BEGIN'а) для вложенных процедур.
Ну так просто последовательно объявляем константы, типы, переменные, вложенные процедуры без ключевых слов VAR, CONST и TYPE. Можно обойтись вообще без разделительного знака - компилятор и так легко определит, где закончилась секция объявления.
Что насчет объявления с возможностью инициализации?
proc S(X : array of real) : real
s, e: real:=0.0, E(x)
i : int:=0
while i # len(X)
s := s + (X[i]-e)*(X[i]-e)
inc(i);
return Math.sqrt(s)
end S;