В Алголе 68, какие проблемы с читаемостью могут возникнуть при использовании обращенных слов закрытия для структур управления?

Как и в Алголе 68, оператор if заканчивается на fi, а оператор case заканчивается на esac, так что какие-то проблемы с удобочитаемостью, кроме зарезервированных слов, на самом деле не имеют смысла в английском языке.

Мы ценим любые предложения

1 ответ

Решение

На самом деле это не проблема читабельности, это просто то, к чему вы привыкли, и после некоторого опыта проблемы выпадают из процесса. Подобно тому, как много пользователей Lisp "не видят" скобки. Они просто не выделяются в общем случае для опытного читателя.

Вы должны вспомнить время Алгола, особенно "68", как в 1968 году.

Яркой стороной fi, esac и od является то, что они четко указывают, какой тип блока они заканчивают, и делают это с помощью одного токена.

esac не менее понятен, чем}, который является бессмысленной скобкой, пока вы не узнаете иначе. {} Имеют преимущество согласованности, в то время как менее многословно, чем начальная и конечная последовательности блоков Паскаля.

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

Таким образом, это короткое препятствие, которое быстро исчезает при использовании.

Какие проблемы с читабельностью? Никто.

Подход "брекетинга" устраняет двусмысленность, которая в противном случае разрешается указанием.

Например, в синтаксисе Algol 60 в

 if B1 then if B2 then S2 else S3

неоднозначно, с чем сочетается "тогда" и "иначе"; действительно ли это так?

 if B1 then begin if B2 then S2 else S3 end

или вот так?

 if B1 then begin if B2 then S2 end else S3

Чтобы решить эту проблему, существует явное правило, гласящее, что это первый случай. В Algol 68 это просто не проблема. Эти два случая синтаксически различны.

 if B1 then if B2 then S2 else S3 fi fi

а также

 if B1 then if B2 then S2 fi else S3 fi

Это прочитать не сложнее, чем использование круглых скобок в арифметических выражениях для определения значения.

Такие языки, как C и Java, которые регрессировали к стилю "начало / конец" (через фигурные скобки { }), по сравнению с ними страдают от удобочитаемости.

Другие вопросы по тегам