Комментарий (программирование)


Комментарий (программирование)

Коммента́рии — пояснения к исходному тексту программы, находящиеся непосредственно внутри комментируемого кода. Синтаксис комментариев определяется языком программирования. С точки зрения компилятора или интерпретатора, комментарии — часть текста программы, не влияющая на её семантику. Комментарии не оказывают никакого влияния на результат компиляции программы или её интерпретацию. Помимо исходных текстов программ, комментарии также применяются в языках разметки и языках описания.

Содержание

Назначение комментариев

Большинство специалистов сходятся во мнении, что комментарии должны объяснять намерения программиста, а не код; то, что можно выразить на языке программирования, не должно выноситься в комментарии — в частности, надо использовать говорящие названия переменных, функций, классов, методов и пр., разбивать программу на лёгкие для понимания части, стремиться к тому, чтобы структура классов и структура баз данных были максимально понятными и прозрачными и т. д. Есть даже мнение (его придерживаются в экстремальном программировании и некоторых других гибких методологиях программирования), что если для понимания программы требуются комментарии — значит, она плохо написана.

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

Комментарии часто используются для временного отключения части кода. В языках C и C++, некоторые рекомендуют использовать с той же целью директивы препроцессора (#if 0#endif).

Однострочные и многострочные комментарии

С точки зрения синтаксиса, существуют два вида комментариев. Многострочный комментарий может иметь любую длину, он отмечается специальными символами в начале и конце (например, /* */). Некоторые языки позволяют вложение многострочных комментариев, другие — нет. Однострочный комментарий отмечается специальным символом в начале (например, //) и продолжается до конца строки. Обычно допускается вложение однострочных комментариев в другие, как одно- так и многострочные комментарии. Способы записи можно чередовать, с точки зрения семантики они одинаковы.

Аннотации

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

Автоматическая генерация документации

Специальным образом оформленные комментарии (т. н. документирующие комментарии) используются для автоматического создания документации, в первую очередь, к библиотекам функций или классов. Для этого используются генераторы документации, например, такие как [1] для языка doxygen [2] для C и C++ и др. В некоторых средах программирования (например, Python) документирующие комментарии используются в качестве интерактивной подсказки по интерфейсу классов и функций.

Трансляция программ

Во время трансляции комментарии распознаются на стадии лексического анализа (и, соответственно, считаются лексемами). Распознавание на стадии препроцессирования накладно и даже чревато ошибками; включение комментариев в синтаксические диаграммы практически невозможно.

В различных языках и средах программирования

; однострочный комментарий
COMMENT +
Многострочный комментарий.
+ Строка с этим символом завершает комментарий, вместо плюса может быть другой символ.
\ стандартный однострочный комментарий
( Комментарий до закрывающей скобки. Может быть многострочным (зависит от реализации). Пробел после открывающей скобки обязателен.)
  • BAT-файлы и команды
    :: однострочный комментарий
    /* многострочный комментарий */
    // однострочный комментарий
    # однострочный комментарий (для PHP)
    Способ комментирования больших кусков кода в C/C++. Используется не для написания комментариев к программе, а для временного сокрытия части функциональности (в Java и JavaScript невозможен):
    #if 0
    …кусок кода…
    #endif
    * (на седьмой позиции) — однострочный комментарий
    • Object Pascal)
    (* многострочный комментарий *)
    { многострочный комментарий }
    // однострочный комментарий
    c однострочный комментарий (в старых версиях Фортрана после латинской c должно идти 5 пробелов)
    • XML, wiki-разметка
    <!-- многострочный комментарий -->
    • Конфигурационные (ini) файлы
    ; неиспользуемый ключ либо другой комментарий
    • Система аналитических вычислений
      • Pascal, Modula-2, Modula-3, Oberon и
        { многострочный комментарий }
        • Python, различные варианты командных оболочек UNIX, sed,
          -- однострочный комментарий
          /* многострочный комментарий */
          • =end
            # однострочный комментарий
              • LaTeX,
                ' однострочный комментарий
                Rem однострочный комментарий

                Специальные комментарии

                Комментарии должны игнорироваться транслятором, но на практике это не всегда так. Некоторые специальные команды транслятору, сильно зависящие от реализации языка программирования, часто оформляются как комментарии.

                Например в диалекте Турбо Паскаль псевдокомментарии {$I-} и {$I+} используются для отключения и включения стандартного контроля ошибок ввода-вывода. Похожие специальные комментарии используются в языке разметки SGML-документа, «экранирования» таблиц стилей и сценариев на языках VBScript:

                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
                …
                <STYLE TYPE="text/css">
                <!--
                … описание стилей
                -->
                </STYLE>
                …
                <SCRIPT TYPE="text/javascript">
                 <!-- скрыть содержимое сценария от старых браузеров
                 … код сценария на JavaScript
                 // конец скрытого содержимого -->
                </SCRIPT>
                
                

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

                См. также

                Условный комментарий


                Wikimedia Foundation. 2010.

Смотреть что такое "Комментарий (программирование)" в других словарях:

  • Комментарий — Комментарии (программирование) Комментарий (пост, сообщение) Комментарий (файл) …   Википедия

  • Комментарии (программирование) — У этого термина существуют и другие значения, см. Комментарий. Комментарии  пояснения к исходному тексту программы, находящиеся непосредственно внутри комментируемого кода. Синтаксис комментариев определяется языком программирования. С точки …   Википедия

  • Директива (программирование) — У этого термина существуют и другие значения, см. Директива (значения). В программировании термин «директива» (указание) по использованию похож на термин «команда», так как также используется для описания некоторых конструкций языка… …   Википедия

  • Отчет об ошибке (программирование) — Содержание 1 Введение 2 Создание отчета об ошибке 2.1 Mac OS X 2.2 Windows …   Википедия

  • Отчёт об ошибке (программирование) — Содержание 1 Введение 2 Создание отчета об ошибке 2.1 Mac OS X 2.2 Windows …   Википедия

  • Tcl — Запрос «TCL» перенаправляется сюда; о минидистрибутиве Linux см. Tiny Core Linux. Tcl Семантика: императивный …   Википедия

  • TCL — Семантика: императивный, скриптовый Тип исполнения: интерпретатор Появился в: 1988 г. Автор(ы): Джон Остераут Последняя версия: 8.5.7 / 15 апреля 2009 …   Википедия

  • C++ — У этого термина существуют и другие значения, см. C. См. также: Си (язык программирования) C++ Семантика: мультипарадигмальный: объектно ориентированное, обобщённое, процедурное, метапрограммирование Тип исполнения: компилируемый Появился в …   Википедия

  • D (язык программирования) — У этого термина существуют и другие значения, см. D. D Семантика: мультипарадигменный: императивное, объектно ориентированное, обобщённое программирование Тип исполнения: компилятор Появился в: 1999 Автор(ы) …   Википедия

  • Ruby — Класс языка: мультипарадигмальный: динамический, объектно ориентиров …   Википедия