Категория:Нотации
Нотация — система условных обозначений, принятая в какой-либо области знаний или деятельности. Включает множество символов, используемых для представления понятий и их взаимоотношений, составляющее алфавит нотации, а также правила их применения.
Нотация используется для отображения моделей в рабочих продуктах (документах).
Для отражения одного или нескольких видов модели в каком-то виде документов используются нотации, поддерживающие (supports) тот язык, который использует (uses) тот или иной вид моделей. Один язык может быть использован множеством видов моделей, а вид модели использует только один язык.
Письменные нотации
Типы письменности человеческих языков:
- Пиктографический — письменный знак привязан к определенному объекту.
- Идеографический — письменный знак привязан к определённому смыслу.
- Фоноидеографический — письменный знак привязан и к смыслу, и к звучанию
- Логографический — письменный знак обозначает определённое слово
- Морфемный — письменный знак обозначает определённую морфему (см. «Китайская письменность»)
Нотации в программировании
- Форма Бэкуса — Наура (сокр. БНФ, Бэкуса — Наура форма) — формальная система описания синтаксиса, в которой одни синтаксические категории последовательно определяются через другие категории. БНФ используется для описания контекстно-свободных формальных грамматик. Существует расширенная форма Бэкуса — Наура (РБНФ), отличающаяся лишь более ёмкими конструкциями.
- Венгерская нотация — соглашение об именовании переменных, констант и прочих идентификаторов в коде программ. Суть венгерской нотации сводится к тому, что имена идентификаторов предваряются заранее оговорёнными префиксами, состоящими из одного или нескольких символов. При этом, как правило, ни само наличие префиксов, ни их написание не являются требованием языков программирования, и у каждого программиста (или коллектива программистов) они могут быть своими.
- Математические языки разметки нотации для представления математических формул:
- TeX/LaTeX
- MathML
Нотации в управлении
- Therblig — базовые элементарные движения в управлении операциями
Нотации в математике
- Нотации для представления различных математических идей
- Нотации в теории вероятностей
- Прямоугольная система координат
- Нотации для дифференциального исчисления
- «O» большое — математическое обозначение для сравнения асимптотического поведения функций. Применяется, например, для определения вычислительной сложности алгоритма.
- Z-нотация — формальный язык спецификации, используемый для описания и моделирования программ и их формальной верификации.
- Порядковая индексация
- Форма записи числовых множеств
- Нотация Конвея
- Стрелочная нотация Кнута
- Нотация Штейнгауза — Мозера
- по способу изображения чисел системы
- Позиционные
- Непозиционные
- Смешанные
- двоичная
- десятичная
- восьмеричная
- шестнадцатеричная
- двоично-десятичная
- естественная форма (форма с фиксированной запятой)
- нормальная форма (форма с плавающей запятой)
- Инфиксная нотация
- Польская нотация
- Обратная польская нотация
Нотации в физике
- Для обозначения физических величин и понятий в физике используются буквы латинского и греческого алфавитов, а также несколько специальных символов и диакритических знаков. Поскольку количество физических величин больше количества букв в латинском и греческом алфавитах, одни и те же буквы используются для обозначения различных величин. Для некоторых физических величин принято несколько обозначений (например для энергии, скорости, длины и других), чтобы предотвратить путаницу с другими величинами в данном разделе физики.
- Диакритические знаки добавляются к символу физической величины для обозначения определённых различий (производная, векторная величина, средне значение, оператор и др.).
- Бра и кет (англ. bra-ket < bracket скобка) — алгебраический формализм, предназначенный для описания квантовых состояний. Называется также обозначениями Дирака. В матричной механике данная система обозначений является общепринятой.
- Обозначение тензоров. Тензор обычно обозначают некоторой буквой с совокупностью верхних (контрвариантных) и нижних (ковариантных) индексов. При смене базиса ковариантные компоненты меняются так же, как и базис (с помощью того же преобразования), а контравариантные — обратно изменению базиса (обратным преобразованием).
Графические нотации
- Семейства IDEF (Integrated DEFinition):
- IDEF0 (функциональное моделирование);
- IDEF1.X (информационное моделирование);
- IDEF3 (моделирование деятельности или процессное моделирование).
Страницы в категории «Нотации»
Показано 12 страниц из 12, находящихся в данной категории.
Что такое нотация в программировании
Скачай курс
в приложенииПерейти в приложение
Открыть мобильную версию сайта© 2013 — 2023. Stepik
Наши условия использования и конфиденциальности
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 Куратор тега Программирование
Любые ответы на любые вопросыНе вижу смысла в условиях современных IDE с подсветкой синтаксиса, засовывать информацию о типе и принадлежности классам в название переменной.
-меньше абракадабры
-больше читаемости и самокомментирующего кодаОтвет написан более трёх лет назад
Нравится 3 3 комментария
Ann As @snave Автор вопросаДа, я думаю не использовать префиксы принадлежности к классам и типам. По крайней мере работая в IDE. Обучаясь основам C/C++ в «code blocks» без указания префиксов было тяжело.