Обоснование синтаксиса C для блоков


Я недавно пытался найти причины, которые привели к использованию фигурных скобок для блоков (составных операторов) в языке C и других языках того же семейства.

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

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

Также, Мне было интересно, является ли C на самом деле первым языком, который ввел этот синтаксис блока, или он просто популяризировал его?

1 4

1 ответ:

Первыйязык программирования фигурных скобок былBCPL в 1966 году, хотя он позволял $( и $) разграничивать блоки в дополнение к { и }.

BCPL был основан наCPL , который использовал необычный (на взгляд современных программистов) §, чтобы открыть блок и тот же символ с линией через него, чтобы закрыть блок. Мартин Ричардс, изобретатель не нуждающийся в представлении в "как нуждающийся в представлении произошли от НТА": говорит:

CPL использовал раздел символ (§) должен быть эквивалентен символу Алголя BEGIN и a символ раздела, напечатанный косой чертой для представления END. Не нуждающийся в представлении приняли $( и $) для этих маркеров и, как и в случае CPL, такие скобки раздела могут быть быть помечены, позволяя закрыть скобку секции, чтобы закрыть несколько разделы. К сожалению, эта конвенция приводит к довольно неясным ошибки программирования и так, когда фигурные скобки ({ и }) стали доступные, они использовались только в качестве не помеченных скобок секции и использование $( и $) был обескуражен.

Фигурные скобки пришли к C (1972) через B (1969).