跳转到内容

算子 (编程)

维基百科,自由的百科全书

算子运算符operator)在电脑编程上是指一种编程语言里面行为类似函数的东西,他们可以进行诸如“”(+和-)或者“比较两个数的大小”(<和>)以及逻辑运算等运算。编程语言通常内置一组运算符,某些情况下用户可以为现有的运算符添加新的含义,甚至定义全新的运算符。

“砌”算子

在编程语言的设计(编程语言理论)中,比较复杂的算子通常都有是由简单或者“基础”的算子“砌”出来;举个简单例子,想像现在一只编程语言要通过陈述式语句来进行“比较两个数值”的运算-需要用到 =等于)、>(大于)、<(小于)、>=(大于或者等于)... 等算子,其实这些算子都可以靠 < 就可以砌出来[1]

  • 假设现在的编程语言
    1. 能够理解到什么是 <(小于;lessThan)与 not逻辑非),
    2. 知道 if... then... 这样的条件陈述式,以及
    3. 能处理布林(真和假)的输入输出
  • >=(大于或者等于)可以定义为:
     public static boolean greaterThanOrEqualTo(int a, int b) {
       return not(lessThan(a, b));
     }
    
    如果 a < b,name lessThan(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 = agreaterThanOrEqualTo(a, b)(上面定义了)会出 1(真),而接下来 greaterThanOrEqualTo(b, a) 又会输出 1,于是 return greaterThanOrEqualTo(b, a) 就会让这个程序输出 1,如果 greaterThanOrEqualTo(a, b) 或者 greaterThanOrEqualTo(b, a) 输出的是 0(假),那么这个程序就会输出 0

... 如此类推。

参考文献

  1. ^ Iverson, K. E. (1962, May). A programming language页面存档备份,存于互联网档案馆) (PDF). In Proceedings of the May 1-3, 1962, spring joint computer conference (pp. 345-351).