算子或運算符(operator)在電腦編程上是指一種程式語言裡面行為類似函數的東西,他們可以進行諸如「加減」(+和-)或者「比較兩個數的大小」()以及逻辑运算等運算。編程语言通常内置一組运算符,某些情况下用户可以為现有的运算符添加新的含义,甚至定义全新的运算符。
「砌」算子
在程式語言的設計(程式語言理論)中,比較複雜的算子通常都有是由簡單或者「基礎」的算子「砌」出來;舉個簡單例子,想像現在一隻程式語言要通過陳述式語句來進行「比較兩個數值」的運算-需要用到 =(等於)、>(大於)、(小於)、>=(大於或者等於)... 等算子,其實這些算子都可以靠 就可以砌出來:
*假設現在的編程語言
*#能夠理解到什麼是 (小於;lessThan)與 not(邏輯非),
*#知道 if... then... 這樣的條件陳述式,以及
*#能處理布林(真和假)的輸入輸出;
*>=(大於或者等於)可以定義為:
*:
public static boolean greaterThanOrEqualTo(int a, int b) {
return not(lessThan(a, b));
}
*:如果 a ,name lessThan(a, b) 會輸出 1(真),而 return not(lessThan(a, b)) 那麼這個程序就會輸出 0,這樣就定義了 >=-因為a 就表示「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。
... 如此類推。
参考文献
评论 (0)