Почему имена модулей и процедур повторяются после тела? - PullRequest
0 голосов
/ 29 мая 2018

В Modula-2 и Oberon каждое объявление модуля и процедуры должно заканчиваться именем модуля или процедуры.Это не нужно в Паскале.Я никогда не понимал мотивацию для этого.Может ли кто-нибудь просветить меня?

1 Ответ

0 голосов
/ 29 мая 2018

Прочитав некоторые из них (я не эксперт), могу поспорить, что это всего лишь требование синтаксиса функции для лучшей читабельности.

Я пойду на шаг вперед и скажу в большом, старом,плохо написанные процедуры / функции на других языках, иногда это делается без языка, требующего этого.Я часто видел:

int veryLongC++Function() {
    ...
    ...
    ... 3000 code lines
} //veryLongC++Function

Так что читатель, прыгающий ближе к концу, знает, что в беспорядке он смотрит.Август упоминает в комментарии, что это гораздо менее надежно, если не применяется компилятором - в случае изменения имени.

Другим важным аспектом являются вложенные процедуры - здесь явное окончание делает вещи намного более читабельными - см. Пример глава 7 - вложенная процедура объявляется между объявлением и до BEGIN,Синтаксис делает это выглядит намного лучше (на мой взгляд).

Короче говоря, я думаю, что главное преимущество - читабельность.

...