Что такое нотация в программировании
Перейти к содержимому

Что такое нотация в программировании

  • автор:

Категория:Нотации

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

Нотация используется для отображения моделей в рабочих продуктах (документах).

Для отражения одного или нескольких видов модели в каком-то виде документов используются нотации, поддерживающие (supports) тот язык, который использует (uses) тот или иной вид моделей. Один язык может быть использован множеством видов моделей, а вид модели использует только один язык.

Письменные нотации

Типы письменности человеческих языков:

  • Пиктографический — письменный знак привязан к определенному объекту.
  • Идеографический — письменный знак привязан к определённому смыслу.
  • Фоноидеографический — письменный знак привязан и к смыслу, и к звучанию
    • Логографический — письменный знак обозначает определённое слово
    • Морфемный — письменный знак обозначает определённую морфему (см. «Китайская письменность»)

    Нотации в программировании

    • Форма Бэкуса — Наура (сокр. БНФ, Бэкуса — Наура форма) — формальная система описания синтаксиса, в которой одни синтаксические категории последовательно определяются через другие категории. БНФ используется для описания контекстно-свободных формальных грамматик. Существует расширенная форма Бэкуса — Наура (РБНФ), отличающаяся лишь более ёмкими конструкциями.
    • Венгерская нотация — соглашение об именовании переменных, констант и прочих идентификаторов в коде программ. Суть венгерской нотации сводится к тому, что имена идентификаторов предваряются заранее оговорёнными префиксами, состоящими из одного или нескольких символов. При этом, как правило, ни само наличие префиксов, ни их написание не являются требованием языков программирования, и у каждого программиста (или коллектива программистов) они могут быть своими.
    • Математические языки разметки нотации для представления математических формул:
      • TeX/LaTeX
      • MathML

      Нотации в управлении

      • Therblig — базовые элементарные движения в управлении операциями

      Нотации в математике

      • Нотации для представления различных математических идей
        • Нотации в теории вероятностей
        • Прямоугольная система координат
        • Нотации для дифференциального исчисления
        • «O» большое — математическое обозначение для сравнения асимптотического поведения функций. Применяется, например, для определения вычислительной сложности алгоритма.
        • Z-нотация — формальный язык спецификации, используемый для описания и моделирования программ и их формальной верификации.
        • Порядковая индексация
        • Форма записи числовых множеств
        • Нотация Конвея
        • Стрелочная нотация Кнута
        • Нотация Штейнгауза — Мозера
        • по способу изображения чисел системы
          • Позиционные
          • Непозиционные
          • Смешанные
          • двоичная
          • десятичная
          • восьмеричная
          • шестнадцатеричная
          • двоично-десятичная
          • естественная форма (форма с фиксированной запятой)
          • нормальная форма (форма с плавающей запятой)
          • Инфиксная нотация
          • Польская нотация
          • Обратная польская нотация

          Нотации в физике

          • Для обозначения физических величин и понятий в физике используются буквы латинского и греческого алфавитов, а также несколько специальных символов и диакритических знаков. Поскольку количество физических величин больше количества букв в латинском и греческом алфавитах, одни и те же буквы используются для обозначения различных величин. Для некоторых физических величин принято несколько обозначений (например для энергии, скорости, длины и других), чтобы предотвратить путаницу с другими величинами в данном разделе физики.
          • Диакритические знаки добавляются к символу физической величины для обозначения определённых различий (производная, векторная величина, средне значение, оператор и др.).
          • Бра и кет (англ. bra-ket < bracket скобка) — алгебраический формализм, предназначенный для описания квантовых состояний. Называется также обозначениями Дирака. В матричной механике данная система обозначений является общепринятой.
          • Обозначение тензоров. Тензор обычно обозначают некоторой буквой с совокупностью верхних (контрвариантных) и нижних (ковариантных) индексов. При смене базиса ковариантные компоненты меняются так же, как и базис (с помощью того же преобразования), а контравариантные — обратно изменению базиса (обратным преобразованием).

          Графические нотации

          • Семейства IDEF (Integrated DEFinition):
            • IDEF0 (функциональное моделирование);
            • IDEF1.X (информационное моделирование);
            • IDEF3 (моделирование деятельности или процессное моделирование).

            Страницы в категории «Нотации»

            Показано 12 страниц из 12, находящихся в данной категории.

            Что такое нотация в программировании

            Скачай курс
            в приложении

            Перейти в приложение
            Открыть мобильную версию сайта

            © 2013 — 2023. Stepik

            Наши условия использования и конфиденциальности

            Get it on Google Play

            Public user contributions licensed under cc-wiki license with attribution required

            Совершенный код: именование в программировании

            Совершенный код: именование в программировании главное изображение

            Эта шутка пользуется популярностью среди программистов не случайно. Именование часто становится причиной целых баталий. И действительно, то, как мы именуем наши сущности (функции/переменные/константы/классы/модули), имеет большое значение, ведь большую часть времени мы читаем код, а не пишем.

            В этой статье я разберу наиболее общие правила, принятые в среде разработчиков. Для примеров будет использоваться javascript , но это не принципиально. Рекомендации подходят для всех.

            Нотация

            Перед тем, как говорить о семантике, давайте посмотрим на синтаксис. Существует несколько популярных нотаций именования:

            • Верблюжья нотация (CamelCase): myClass
            • Змеиная нотация (snake_case): my_const
            • Шашлычная нотация (kebab-case): my-data
            • Особняком стоит Венгерская нотация

            В реальности их гораздо больше, хотя многие вышли из обихода и не употребляются, либо употребляются крайне редко (по крайней мере, вряд ли многие помнят COBOL-CASE ).

            Возникает вопрос, какой выбрать стиль? Ответ очень прост. В каждом конкретном языке программирования существует общепризнанный — часто официальный — стандарт кодирования. Именно он должен являться для вас ориентиром. Потратьте время, найдите стандарт для вашего языка и пробегитесь по нему, обычно он лежит на гитхабе и содержит большое количество показательных примеров.

            Подписывайтесь на канал Кирилла Мокевнина в Telegram — чтобы узнать больше о программировании и профессиональном пути разработчика

            Размер имеет значение

            Те, кто сдавал лабораторные по программированию, хорошо помнят, что большинство переменных в них были однобуквенными. Интересный факт состоит в том, что в первых языках программирования идентификаторы были таки односимвольными, как обозначения в математике. Первым языком, судя по всему, который начал использовать слова как идентификаторы, был лисп. С тех пор (шестидесятые) утекло много воды и использование однобуквенных идентификаторов в современном мире рассматривается как моветон.

            И все же их можно и нужно использовать в некоторых ситуациях. Обычно это счетчики и индексы.

            Сущность-Действие

            bed(); // bad sleep(); // good 

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

            С переменными обычно такой проблемы не возникает, никто не использует глаголы для их именования, но на всякий случай: значение — существительное.

            Предикаты

            Напомню, что предикат — это функция-проверка, она всегда возвращает либо true , либо false .

            В большинстве языков предикаты предваряют префиксом is .

            isEmpty(); isValid(); isBusy(); 

            Но не все языки следуют этому правилу. В большинстве лиспов, а так же в ruby (который взял это из лиспов) используется знак ? в конце слова:

            empty? valid? busy? 

            Если учесть, что в указанных языках вызов функции не требует скобок в конце, то такая форма смотрится особенно естественной.

            Вхождение

            Не все предикаты можно выразить через is . Например, как задать вопрос, если мы хотим узнать, есть ли в списке чисел нечетное? В таких ситуациях принято использовать слово has :

            node.hasChildren(); 

            Количество

            Если вам нужна переменная, в которой содержится количество чего-либо, используйте комбинацию: сущность во множественном числе + count .

            symbolsCount peopleCount 

            Это правило важнее даже в другом варианте, а именно, как не надо называть переменную, обозначающую количество:

            errors; 

            Такое именование гарантированно вводит в заблуждение. Сущность во множественном числе всегда должна обозначать только коллекцию.

            Примеры

            // Нормализация данных normalizeDomainName('hexlet.io'); // Извлечение части данных getName(user); getDomainFromEmail('support@hexlet.io'); // Получение массива с ошибками const errors = validate(user); if (errors.length > 0)  // . > // Подсчеты calculateDiff(first, second) // Допуск canSwim(user) canViewProfile(user) 

            Какие существуют нотации(правила именования) в программировании?

            Я встречал два типа нотации:
            — camelCase;
            — under_score.
            На основании вышеупомянутых видел комбинации стилей.
            За и против, как я понимаю — это сугубо личный вопрос (индивида, компании). Что используете вы? Я завтра уже буду использовать скорректированный стиль, основываясь на источнике.

            Я изучаю программирование пару месяцев. Сейчас в Java использую такие соглашения:
            1. переменная int iValue = 0; (в префикс ставлю первый символ типа);
            2. переменная экземпляра int m_iValue = 0; (встретил в книге С.Праты)
            3. функция/метод: camelCase;
            4. классы: CamelCase;
            5. объекты: obj_jlabName = new JLabel(); (что-то похожее в книге у Г.Шилдта про Swing).

            Вывод № 1: Самодокументируемый код. Источник — пост и комментарии к этому вопросу.
            Вывод № 2: Чтение таких книг, как — «Совершенный код», «Clean Code».

            • Вопрос задан более трёх лет назад
            • 4633 просмотра

            Комментировать
            Решения вопроса 2

            gbg

            Армянское Радио @gbg Куратор тега Программирование
            Любые ответы на любые вопросы

            Не вижу смысла в условиях современных IDE с подсветкой синтаксиса, засовывать информацию о типе и принадлежности классам в название переменной.

            -меньше абракадабры
            -больше читаемости и самокомментирующего кода

            Ответ написан более трёх лет назад
            Нравится 3 3 комментария
            Ann As @snave Автор вопроса

            Да, я думаю не использовать префиксы принадлежности к классам и типам. По крайней мере работая в IDE. Обучаясь основам C/C++ в «code blocks» без указания префиксов было тяжело.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *