LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

В качестве ошибкоустойчивости синтаксис максимально контекстнонезависимый? В т.ч. закрытие блоков зависит от типа блока?

Тут контекстнонезависимость скорее не средство достижения цели, а сопутствующий результат.

Вот если взять блоки. У нас привычно есть разные виды скобок, которые группируют синтаксические элементы, такие как скобки при вызове функции или скобки для блока в Си.

В Алголе и Паскале такими скобками были также begin - end.

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

Дальше эволюция синтаксиса пришла к тому, чтобы блок для compound statement оформлять неявно, делая его неотъемлемой частью другой синтаксической конструкции. Таким образом возникли function .. end, if ... end, while ... end и так далее. Как в Обероне, Луа и им подобных.

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

А в таком подходе начала у нас разные, а конец — одинаковый.

По этой логике Бейсик в своё время пришел к End If, Ада пришла к end if;, а я пришел к end:if. Теперь логичная картина восстановлена. Каждому собственную виду начала полагается такой же вид конца.

контекстнонезависимый

Что касается непосредственно контекстно-независимости. То, в какой мере, для парсинга грамматики, необходимо знать словарь определённых идентификаторов, пока вопрос открытый. У меня нет тотального предубеждения против контекстно-зависимой грамматики. Если в каких-то случаях то будет иметь смысл оставить, я оставлю.

Пока это затрагивает объявления в сишном стиле, но я еще не брался за их переделку.

Я иногда в сложном коде такое оформляю комментами

Уже: Нужен совет по придумыванию синтаксиса (комментарий)

Исправление wandrien, :

В качестве ошибкоустойчивости синтаксис максимально контекстнонезависимый? В т.ч. закрытие блоков зависит от типа блока?

Тут контекстнонезависимость скорее не средство достижения цели, а сопутствующий результат.

Вот если взять блоки. У нас привычно есть разные виды скобок, которые группируют синтаксические элементы, такие как скобки при вызове функции или скобки для блока в Си.

В Алголе и Паскале такими скобками были также begin - end.

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

Дальше эволюция синтаксиса пришла к тому, чтобы блок для compound statement оформлять неявно, делая его неотъемлемой частью другой синтаксической конструкции. Таким образом возникли function .. end, if ... end, while ... end и так далее. Как в Обероне, Луа и им подобных.

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

А в таком подходе начала у нас разные, а конец — одинаковый.

По этой логике Бейсик в своё время пришел к End If, Ада пришла к end if;, а я пришел к end:if. Теперь логичная картина восстановлена. Каждому собственную виду начала полагается такой же вид конца.

контекстнонезависимый

Что касается непосредственно контекстно-независимости. То, в какой мере, для парсинга грамматики, необходимо знать словарь определённых идентификаторов, пока вопрос открытый. У меня нет тотального предубеждения против контекстно-зависимой грамматики. Если в каких-то случаях то будет иметь смысл оставить, я оставлю.

Пока это затрагивает объявления в сишном стиле, но я еще не брался за их переделку.

Я иногда в сложном коде такое оформляю комментами

Уже: Нужен совет по придумыванию синтаксиса (комментарий)

Исправление wandrien, :

В качестве ошибкоустойчивости синтаксис максимально контекстнонезависимый? В т.ч. закрытие блоков зависит от типа блока?

Тут контекстнонезависимость скорее не средство достижения цели, а сопутствующий результат.

Вот если взять блоки. У нас привычно есть разные виды скобок, которые группируют синтаксические элементы, такие как скобки при вызове функции или скобки для блока в Си.

В Алголе и Паскале такими скобками были также begin - end.

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

Дальше эволюция синтаксиса пришла к тому, чтобы блок для compound statement оформлять неявно, делая его неотъемлемой частью другой синтаксической конструкции. Таким образом возникли function .. end, if ... end, while ... end и так далее. Как в Обероне, Луа и им подобных.

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

А в таком подходе начала у нас разные, а конец — одинаковый.

По этой логике Бейсик в своё время пришел к End If, Ада пришла к end if;, а я пришел к end:if. Теперь логичная картина восстановлена. Каждому собственную виду начала полагается такой же вид конца.

контекстнонезависимый

Что касается непосредственно контекстно-независимости. То, в какой мере, для парсинга грамматики, необходимо знать словарь определённых идентификаторов, пока вопрос открытый. У меня нет тотального предубеждения против контекстно-зависимой грамматики. Если в каких-то случаях то будет иметь смысл оставить, я оставлю.

Пока это затрагивает объявления в сишном стиле, но я еще не брался за их переделку.

Я иногда в сложном коде такое оформляю комментами

Уже: Нужен совет по придумыванию синтаксиса (комментарий)

Исправление wandrien, :

В качестве ошибкоустойчивости синтаксис максимально контекстнонезависимый? В т.ч. закрытие блоков зависит от типа блока?

Тут контекстнонезависимость скорее не средство достижения цели, а сопутствующий результат.

Вот если взять блоки. У нас привычно есть разные виды скобок, которые группируют синтаксические элементы, такие как скобки при вызове функции или скобки для блока в Си.

В Алголе и Паскале такими скобками были также begin - end.

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

Дальше эволюция синтаксиса пришла к тому, чтобы блок для compound statement оформлять неявно, делая его неотъемлемой частью другой синтаксической конструкции. Таким образом возникли function .. end, if ... end, while ... end и так далее. Как в Обероне, Луа и им подобных.

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

А в таком подходе начала у нас разные а конец — одинаковый.

По этой логике Бейсик в своё время пришел к End If, Ада пришла к end if;, а я пришел к end:if. Теперь логичная картина восстановлена. Каждому собственную виду начала полагается такой же вид конца.

контекстнонезависимый

Что касается непосредственно контекстно-независимости. То, в какой мере, для парсинга грамматики, необходимо знать словарь определённых идентификаторов, пока вопрос открытый. У меня нет тотального предубеждения против контекстно-зависимой грамматики. Если в каких-то случаях то будет иметь смысл оставить, я оставлю.

Пока это затрагивает объявления в сишном стиле, но я еще не брался за их переделку.

Я иногда в сложном коде такое оформляю комментами

Уже: Нужен совет по придумыванию синтаксиса (комментарий)

Исходная версия wandrien, :

В качестве ошибкоустойчивости синтаксис максимально контекстнонезависимый? В т.ч. закрытие блоков зависит от типа блока?

Тут контекстнонезависимость скорее не средство достижения цели, а сопутствующий результат.

Вот если взять блоки. У есть разные виды скобок, которые группируют синтаксические элементы, такие как скобки при вызове функции или скобки для блока в Си.

В Алголе и Паскале такими скобками были также begin - end.

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

Дальше эволюция синтаксиса пришла к тому, чтобы блок для compound statement оформлять неявно, делая его неотъемлемой частью другой синтаксической конструкции. Таким образом возникли function .. end, if ... end, while ... end и так далее. Как в Обероне, Луа и им подобных.

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

А в таком подходе начала у нас разные а конец — одинаковый.

По этой логике Бейсик в своё время пришел к End If, Ада пришла к end if;, а я пришел к end:if. Теперь логичная картина восстановлена. Каждому собственную виду начала полагается такой же вид конца.

контекстнонезависимый

Что касается непосредственно контекстно-независимости. То, в какой мере, для парсинга грамматики, необходимо знать словарь определённых идентификаторов, пока вопрос открытый. У меня нет тотального предубеждения против контекстно-зависимой грамматики. Если в каких-то случаях то будет иметь смысл оставить, я оставлю.

Пока это затрагивает объявления в сишном стиле, но я еще не брался за их переделку.

Я иногда в сложном коде такое оформляю комментами

Уже: Нужен совет по придумыванию синтаксиса (комментарий)