演算子
演算子(えんざんし、英: operator)は、数式やコンピュータプログラミング言語などで、各種の演算を表わす記号・シンボルである。通例、演算子は単なる記号あるいは記号列であって構文論的な要素であり、それに対応する演算は意味論の側にある。たとえばJavaにおいて、演算子 + を使った a + b という式は、構文論上は単にそういう式だというだけである。意味論的には数値の加算であったり、文字列の連結であったりするが、それは a と b の型に依って決まる(理論的には項書き換えのように、構文論的といったものもある)。
演算が作用する対象のことを被演算子(operand; オペランド、被演算数、引数)という。たとえば、n と 3 との和を表す式 "n + 3" において、"+" は演算子であり、その被演算子は "n" と "3" である。また、数式として一般的な被演算子と被演算子の間に演算子を記述する構文は中置記法と呼ばれる。
数学的には、基本的には、関数(単項演算子では1引数の関数、2項演算子は2引数の関数)をあらわすある種の糖衣構文のようなものに過ぎない。しかし、汎函数計算など、演算子を操作するような手法もある。
二項演算子における記法の多くはそれ以上の任意有限個の被演算子を持つ演算子に対しても、引数を列記する方法を与えるなどの適当な方法で拡張を受ける。さらに、添字集合を適当に指定することによって複数(一般には無限個)の被演算子を一つの被演算子に見立てることも有限的な記述には効果的である。それによって無限個の被演算子を持つ演算子に有限項演算の記法を援用することが可能になる。また、このとき与えた添字もやはり被演算子と解釈することが可能である。
また、前述の log に対する記述とまったく同じ理屈を逆に考えれば、二項演算子のとる二つの被演算子のうち一つを固定する(代入可能な値を代入する)ならば、それによって新たに単項演算子が得られる(あるいは固定する被演算子を添字とする単項演算子の族が得られる)ということが理解される。同様にして、多くの被演算子を持つ多項演算子のうち一つあるいは複数の被演算子を固定することによって、与えられた多項演算子をより制限された数の被演算子を持つ演算子族と読みかえることができる(カリー化)。
1 < x < 5が「xは1より大きく5より小さい」を意味しないプログラミング言語が多い。そのような場合には論理演算子を使って「1 < x and x < 5」のように記述する。