算子 (编程)
程序执行 |
---|
基础概念 |
代码类型 |
编译策略 |
|
知名运行环境 |
著名编译器及工具链 |
算子或运算符(operator)在电脑编程上是指一种编程语言里面行为类似函数的东西,他们可以进行诸如“加减”(+和-)或者“比较两个数的大小”(<和>)以及逻辑运算等运算。编程语言通常内置一组运算符,某些情况下用户可以为现有的运算符添加新的含义,甚至定义全新的运算符。
“砌”算子
在编程语言的设计(编程语言理论)中,比较复杂的算子通常都有是由简单或者“基础”的算子“砌”出来;举个简单例子,想像现在一只编程语言要通过陈述式语句来进行“比较两个数值”的运算-需要用到 =
(等于)、>
(大于)、<
(小于)、>=
(大于或者等于)... 等算子,其实这些算子都可以靠 <
就可以砌出来[1]:
- 假设现在的编程语言
>=
(大于或者等于)可以定义为:public static boolean greaterThanOrEqualTo(int a, int b) { return not(lessThan(a, b)); }
- 如果
a < b
,namelessThan(a, b)
会输出1
(真),而return not(lessThan(a, b))
那么这个程序就会输出0
,这样就定义了>=
-因为a < b
就表示“a >= b
”为假。
- 而
=
(等如)也可以这样定义:public static boolean equalTo(int a, int b) { if (greaterThanOrEqualTo(a, b)) return greaterThanOrEqualTo(b, a); else return false; }
- 如果
b = a
,greaterThanOrEqualTo(a, b)
(上面定义了)会出1
(真),而接下来greaterThanOrEqualTo(b, a)
又会输出1
,于是return greaterThanOrEqualTo(b, a)
就会让这个程序输出1
,如果greaterThanOrEqualTo(a, b)
或者greaterThanOrEqualTo(b, a)
输出的是0
(假),那么这个程序就会输出0
。
... 如此类推。
参考文献
- ^ Iverson, K. E. (1962, May). A programming language (页面存档备份,存于互联网档案馆) (PDF). In Proceedings of the May 1-3, 1962, spring joint computer conference (pp. 345-351).