У кого есть желание выработать единый стандарт оформления кода для проектов на КП (если это ещё не сделано)?
Думаю, будет полезно для общих КП-проектов: примеры кода, модули для BB, правки в BB и т.д.
Вот мой вариант ( касается только именования переменных ):

1) Названия всех переменных и функций составляются слитно, каждое новое слово присоединяется к текущему без разделителя. Переменные модуля пишутся с маленькой буквы: itemCount, releaseMemory, directory

2) Экспортируемые переменные носят не сокращённые имена, начинаются с большой буквы: Maps, Page, IgnoreCase

3) Поля записей и параметры функции пишутся без сокращений, с маленькой буквы: PROCEDURE (VAR list: List) AddItem(IN data : Data), RECORD sessionID: LONGINT; count: INTEGER END
Название можно сократить, если оно используется в смысле индекса, например t

4) Локальные переменные пишутся с маленькой буквы, и сокращаются. Чем меньше область видимости, тем короче название.

5) Для индексов резервируются переменные: i, j, k, m, n, t

6) Для длины и количества резервируются переменные length и сount соответственно

7) Константы именуются заглавными буквами, слова разделяются _: PAGE_SIZE
С учётом вышеописанного, исходная функция выглядела бы так:
## Код:
```
PROCEDURE (reader: StdReader) SetPosition (t: INTEGER);
      VAR p1, p2: Page;
   BEGIN
      ASSERT((time >= 0), 20);
      p1:= reader.Base.First;
      WHILE (p2 # NIL) & (p2.time[p2.length-1] < t) DO
         p1 := p2; p2 := p2.next
      END;
      (* Post:
         (p1 = NIL) OR (p1.time[n] < t),
         (p2 = NIL) OR (time <= p2.time[n]),
         (p1 # NIL) OR (p2 # NIL)
         ==>
         Post:
         (p1 = NIL) & (p2 # NIL) & (t<= p2.time[n])
         OR (p1 # NIL) & (p2 # NIL) & (p1.time[n] < t) & (t<= p2.time[n])
         OR (p1 # NIL) & (p2 = NIL) & (p1.time[n] < t)
      *)
      IF p1 = NIL THEN
         reader.page := p2;
         reader.length:= LookAtPage(p2, t);
      ELSIF p2 # NIL THEN
         IF time >= p2.time[p2.length-1] THEN
            reader.page := p2;
            reader.length:= LookAtPage(p2, t)
         ELSE
            reader.page := p1;
            reader.length:= PAGE_SIZE -1
         END
      ELSE
         reader.page := p1;
         reader.length:= PAGE_SIZE
      END;
      ExtractIt(reader)
   END SetPosition;
```

Какие у кого идеи?