Каким должен быть язык программирования? Анализ и критика Описание языка Компилятор
Отечественные разработки Cтатьи на компьютерные темы Компьютерный юмор Новости и прочее

Длинные комментарии

Длинные комментарии в Си-образных языках неудобны из-за «/».
Длинные комментарии
Этот символ находится на разных кнопках для латинской и русской раскладки. Комментарий из Оберона «(*» и «*)» выглядят привлекательнее. К тому же, такие комментарии дополнительно подчёркивают свою скобочную сущность и выглядят более естественно.

            И так, длинный комментарий — это то, что находится между «(*» и «*)». Такие комментарии не могут быть вложенными. Они заканчиваются при первом же появлении «*)».

Пример:

текст программы
(* комментарий — это любой текст,
располагающийся на любом количестве строк *)
текст программы

Опубликовано: 2012.09.25, последняя правка: 2014.12.04    11:38

ОценитеОценки посетителей
   ██████████ 5 (23.8%)
   ████ 2 (9.52%)
   ██████ 3 (14.2%)
   ██████████████████████ 11 (52.3%)

Отзывы

     2014/12/25 01:00, Сергей          # 

Лучше добавить вложенность пояснений. Часто так бывает, что нужно запояснить отрывок исходника, в котором уже есть пояснения. Этих пояснений может быть много, а отрывок может быть большим. Из-за отсутствия вложенности в таком случае придётся вручную удалять вложенные пояснения или их ограничители (в случае удаления ограничителей после распояснения охватывающего отрывка появятся ошибки, так что удалять придётся пояснения целиком), или же пытаться добавить возможность самодейного удаления вложенных пояснений в свою ЕСР (единую среду разработки). Кстати, в Глаголе пояснения могут быть вложенными. И это на самом деле очень удобно.

     2014/12/25 11:09, Автор сайта          # 

Как раз про это: Нерабочий код.

     2021/03/27 12:14, Виталий Монастырский          # 

Сущность многострочных комментариев — это комбинация символов, которые ГАРАНТИРОВАННО не могут быть встречены в программе вместе. Именно потому в Си — это // (два знака деления, которые не используются) и */ — деление и умножение, которое тоже не совместимо нигде и ни в каком виде.

У меня, к сожалению, // используется для извлечения корня, так что я такую комбинацию задействовать не могу, а потому ищу другие варианты. Пока остановился на базе собаки, так как она встречается только в адресах почты, а потому явно не может быть совместима ни с какими другими символами, включая кавычки. Возможность встретить такую комбинацию символов возможна только при их умышленном сочетании, что равносильно такому же употреблению */. Но, честно говоря, хотя комментарии в таком исполнении очень хорошо отделимы визуально, но все-таки кажутся пугающе огромными. Но на безрыбье и рак — щука, так что пока я оставил именно эту реализацию. Тем более, что для символа собаки все-равно трудно придумать разумное применение в языке.

     2021/03/28 00:00, alextretyak          # 

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

Трудно, но возможно. :)(:

Символ @ похож на английские буквы Ca, а потому в языке 11l используется[http://11l-lang.org/doc/ru/prefixes] в качестве префикса для обозначения captured-переменных [в языке Python для этого используется ключевое слово nonlocal, а в C++ — список захвата (capture list)].

     2021/03/28 10:22, Виталий Монастырский          # 

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

Так что — нет, не подходит. Думайте еще... :)

     2021/04/01 13:13, Александр Коновалов aka Маздайщик          # 

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

Поделитесь нам своим подходом.

Добавить свой отзыв

Написать автору можно на электронную почту mail(аt)compiler.su

Авторизация

Регистрация

Выслать пароль

Карта сайта


Содержание

Каким должен быть язык программирования?

Анализ и критика

●  Устарел ли текст как форма представления программы

●  Русский язык и программирование

●  Многоязыковое программирование

Синтаксис языков программирования

Синтаксический сахар

●  Некоторые «вкусности» Алгол-68

●  «Двухмерный» синтаксис Python

●  Почему языки с синтаксисом Си популярнее языков с синтаксисом Паскаля?

●  Должна ли программа быть удобочитаемой?

●  Стиль языка программирования

●  Тексто-графическое представление программы

●●  Разделители

●●  Строки программы

●●  Слева направо или справа налево?

●  Комментарии

●●  Длинные комментарии

●●  Короткие комментарии

●●  Комментарии автоматической генерации документации

●●  Нерабочий код

●●  Помеченные комментарии

●  Нужны ли беззнаковые целые?

●  Шестнадцатиричные и двоичные константы

●  Условные операторы

●  Переключатель

●  Циклы

●●  Продолжение цикла и выход из него

●  Некошерный «goto»

●  Изменение приоритетов операций

●  Операции присвоения и проверки на равенство. Возможно ли одинаковое обозначение?

●  Так ли нужны операции «&&», «||» и «^^»?

●  Постфиксные инкремент и декремент

●  Почему в PHP для конкатенации строк используется «.»?

●  Указатели и ссылки в C++

●●  Обработка ошибок

Использование памяти

●  Почему динамическое распределение памяти — это плохо

●  Как обеспечить возврат функциями объектов переменной длины?

●●  Типы переменного размера (dynamically sized types, DST) в языке Rust

●●  Массивы переменной длины в C/C++

●●  Размещение объектов в стеке, традиционный подход

●●  Размещение объектов переменной длины с использованием множества стеков

●●  Размещение объектов переменной длины с использованием двух стеков

●●  Реализация двухстековой модели размещения данных

●●  Двухстековая модель: тесты на скорость

●●  Изменение длины объекта в стеке во время исполнения

●●  Размещение объектов переменной длины с использованием одного стека

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

●  Безопасность и размещение объектов переменной длины в стеке

●  Массивы, структуры, типы, классы переменной длины

●  О хранении данных в стеке, вместо заключения

●  Реализация параметрического полиморфизма

Описание языка

Компилятор

Отечественные разработки

Cтатьи на компьютерные темы

Компьютерный юмор

Новости и прочее




Последние отзывы

2021/09/11 16:46 ••• Gudleifr
Изобретение очередного велосипеда?

2021/09/01 23:42 ••• Gudleifr
Философия языка

2021/08/31 22:04 ••• Gudleifr
Должна ли программа быть удобочитаемой?

2021/08/30 00:42 ••• Gudleifr
Все языки эквивалентны. Но некоторые из них эквивалентнее других

2021/08/19 20:52 ••• Gudleifr
В защиту PL/1

2021/08/19 20:34 ••• Gudleifr
Каким должен быть язык программирования?

2021/08/11 11:24 ••• Gudleifr
Почему обречён язык Форт

2021/08/07 13:43 ••• Anatoly
Компилятор

2021/08/07 13:30 ••• Anatoly
Многоязыковое программирование

2021/06/16 13:10 ••• Александр Коновалов aka Маздайщик
Не поминайте всуе PL/1

2021/05/19 23:15 ••• Денис Будяк
Энтузиасты-разработчики компиляторов и их проекты

2021/04/25 08:41 ••• kt
Некошерный «goto»

2021/04/19 17:01 ••• Клихальт
О наименовании проекта и языка программирования

2021/04/04 18:29 ••• kt
Переключатель

2021/04/02 19:32 ••• Александр Коновалов aka Маздайщик
Циклы