Операция (программирование)
Материал из Википедии — свободной энциклопедии
Опера́ция — конструкция языков программирования, аналогичная по записи математическим операциям, то есть специальный способ записи некоторых действий. Наиболее часто применяются арифметические, логические и строковые операции. В отличие от функций, операции часто являются базовыми элементами языка и обозначаются различными символами пунктуации, а не алфавитно-цифровыми; они имеют специальный инфиксный синтаксис и нестандартные правила передачи аргументов. Терминология, однако, несколько отличается от языка к языку.
Содержание |
[править] Операция и инструкция
Английское слово operator, соответствующее термину «операция», иногда ошибочно переводят как «оператор». На самом деле (по историческим причинам) русский термин «оператор» обозначает то же, что и «инструкция», которой соответствует английское statement. Путаница усугубилась тем, что в Си присваивание и инкремент/декремент являются и операторами, и операциями.
[править] Операция и функция
Фактически, операция — это та же функция, но записываемая особым образом. По этой причине логично иметь возможность определять операции для произвольных типов таким же образом, как и методы — чтобы можно было работать с ними точно так же, как и с элементарными типами. Эта возможность называется «перегрузка операций» и присутствует в большинстве языков 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 |
деление по модулю | Си, Pascal |
a++ |
увеличение на 1 с присваиванием (инкремент) уменьшение на 1 с присваиванием (декремент) |
Си, PHP |
a ^ b или a ** b |
возведение в степень | BASIC, Fortran |
Логические | ||
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 : c |
тернарный условный оператор (если условие a истинно, всё выражение равно b, иначе c) | Си, PHP |
Строковые | ||
a + b или a & b |
конкатенация (слияние) | практически все |
Это незавершённая статья о компьютерных языках. Вы можете помочь проекту, исправив и дополнив её. |