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


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

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

Содержание

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

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

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

Комментарии часто используются для временного отключения части кода. В языках 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.

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

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

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

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

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

  • Скобки — У этого термина существуют и другие значения, см. Скобки (значения). Сюда перенаправляются запросы :) и некоторые другие, начинающиеся с двоеточия. О них см. статью смайлик. ( ) Название символа Скобки Юникод U+0028 29 HTML …   Википедия

  • Угловые скобки — Сюда перенаправляются запросы :) и некоторые другие, начинающиеся с двоеточия. О них см. статью смайлик. Скобки парные знаки, используемые в различных областях. Различают: круглые () скобки; квадратные [ ] скобки; фигурные { } скобки; угловые… …   Википедия

  • Пифагор (язык программирования) — У этого термина существуют и другие значения, см. Пифагор (значения). Пифагор Семантика: функциональный, потоковый Появился в: 1995 Автор(ы): Легалов Александр Иванович …   Википедия

  • Джобс, Стив — Стив Джобс Steve Jobs …   Википедия

  • Компьютерная программа — Эта статья или раздел описывает ситуацию применительно лишь к одному региону. Вы можете помочь Википедии, добавив информацию для других стран и регионов. Для термина «программа» см. другие …   Википедия

  • Баг — Эта статья должна быть полностью переписана. На странице обсуждения могут быть пояснения. Не следует путать с лагом. В программировании баг (англ …   Википедия

Книги