Русские вычислители

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Русские вычислители » О языках программирования » Неразрывный пробел


Неразрывный пробел

Сообщений 1 страница 3 из 3

1

Неразрывный пробел не взлетит.

ПафосныйСтиль (так обычно набирают заголовки в англоязычных текстах: Билл Гейтс Сегодня Заработал на Сто Миллионов Меньше) и
горбатыйСтиль (кемел — одногорбый верблюд)
А ещё есть стиль_с_пробелами.

Уже есть же '_' в ASCII, но не срабатывает. Вот и с неразрывным пробелом то же самое получится (его, кстати, тоже надо будет по-особому отображать в специальном редакторе, ну как сейчас иногда включают отображение табов).

Отредактировано ВежливыйЛис (07.11.2016 09:52:28)

0

2

А чем обычный пробел не устраивает?

P.S. Если надо грубой силой, то в Концепте проблема решается квадратными скобками для всех переменных (если не изменяет память).

0

3

ВежливыйЛис написал(а):

Неразрывный пробел не взлетит.

Можно определить «неразрывный пробел» как обычный пробел между словами одного названия, точно также можно задать разделитель разрядов для числа:

Название = Слово (Пробелы Слово)* .

Число = Цифры (РазделительРазряда Цифры)* .

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

Число = Цифры (Разделитель разряда Цифры)* .

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

Число = Цифры (Разделитель разряда, Цифры)* .

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

Число = Цифры (Разделитель разряда Цифры)* .

Число = Цифры (Разделитель Алексея Цифры)* .

Число = Цифры (Разделитель согласно ГОСТу Цифры)* .

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

Так что дело не в пробелах, дело в их грамотном применении.

0

Быстрый ответ

Напишите ваше сообщение и нажмите «Отправить»



Вы здесь » Русские вычислители » О языках программирования » Неразрывный пробел