跳至內容

算子 (編程)

維基百科,自由的百科全書

算子運算符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).