- Операция (программирование)
-
Опера́ция — конструкция в языках программирования, аналогичная по записи математическим операциям, то есть специальный способ записи некоторых действий. Наиболее часто применяются арифметические, логические и строковые операции. В отличие от функций, операции часто являются базовыми элементами языка и обозначаются различными символами пунктуации, а не алфавитно-цифровыми; они имеют специальный инфиксный синтаксис и нестандартные правила передачи аргументов. Терминология, однако, несколько отличается от языка к языку.
Содержание
Операция и инструкция
Английское слово operator, соответствующее термину «операция», иногда ошибочно переводят как «оператор». На самом деле (по историческим причинам) русский термин «оператор» обозначает то же, что и «инструкция», которой соответствует английское statement[1]. Путаница усугубилась тем, что в C присваивание и инкремент/декремент являются и операторами, и операциями.
Операция и функция
Фактически, операция — это та же функция, но записываемая особым образом. По этой причине логично иметь возможность определять операции для произвольных типов таким же образом, как и методы — чтобы можно было работать с ними точно так же, как и с элементарными типами. Эта возможность называется «перегрузка операций» и присутствует в большинстве языков 4—5 поколений. В таких языках транслятор, фактически, подставляет вместо выполнения операции вызов соответствующей ей функции.
Типы операций
Операции делятся по количеству принимаемых аргументов на:
- унарные — один аргумент (отрицание, унарный минус)
- бинарные — два аргумента (сложение, вычитание, умножение и т.д.)
- тернарные — три аргумента ("условие ? выражение1 : выражение2")
Синтаксис операций
Поскольку операции аналогичны по записи алгебраическим выражениям, для них, как и для последних, существует 3 варианта синтаксиса:
- префиксная (польская) (+ab) нотация;
- инфиксная (a+b) нотация;
- постфиксная (обратная польская) (ab+) нотация;
Для бинарных и тернарных (с 3 операндами) операций в подавляющем большинстве случаев используют инфиксную нотацию — по той простой причине, что она принята в математике и наиболее привычна большинству людей. Для унарных операций инфиксной нотации не существует, и, как правило, используется префиксная.
Список типовых операций
Операции обычно переходят из языков в родственные — например, операции языка С присутствуют в языках C++, Java, JavaScript и многих других.
Оператор Выполняемая операция Языки программирования a = b
илиa := b
присваивание практически все Арифметические a + b
сложение аргументов практически все a - b
вычитание практически все -a
изменение знака практически все a / b
,a div b
деление практически все a % b
,a mod b
деление по модулю С, Java, PHP, Pascal a++
a--увеличение на 1 с присваиванием (инкремент)
уменьшение на 1 с присваиванием (декремент)С, Java, PHP a ^ b
илиa ** b
возведение в степень BASIC, Fortran, Ruby Логические a & b
, илиa && b
, илиa and b
И практически все a | b
, илиa || b
, илиa or b
ИЛИ ~a
, или!a
, илиnot a
НЕ a = b
илиa == b
a <> b
илиa != b
проверка на равенство
проверка на неравенство
a > b
,a >= b
a < b
,a <= b
больше, больше или равно
меньше, меньше или равно
a ? b : c
тернарный условный оператор (если условие a истинно, всё выражение равно b, иначе c) С, C++, Java, PHP Строковые a + b
илиa & b
илиa.b
(в языке PHP)конкатенация (слияние) практически все См. также
В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.
Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники.
Эта отметка установлена 14 мая 2011.Ссылки
Категория:- Операции в программировании
Wikimedia Foundation. 2010.