算子(编程):修订间差异

求闻百科,共笔求闻
添加的内容 删除的内容
无编辑摘要
 
→‎参考文献:​20
 

(未显示4个用户的7个中间版本)

第1行: 第1行:
{{Program execution}}
#REDIRECT [[算子_(編程)]]
'''算子'''或'''运算符'''('''operator''')在[[电脑编程]]上是指一种[[程式语言]]里面行为类似[[函数]]的东西,他们可以进行诸如“[[加]][[減]]”(+和-)或者“比较两个数的大小”(<和>)以及[[邏辑运算符|逻辑运算]]等运算。编程语言通常内置一组运算符,某些情况下用户可以为现有的运算符添加新的含义,甚至定义全新的运算符。
{{簡繁重定向}}

== “砌”算子 ==
{{See also|程式语言理论}}

在程式语言的设计([[程式语言理论]])中,比较[[复杂]]的算子通常都有是由简单或者“基础”的算子“砌”出来;举个简单例子,想像现在一只程式语言要通过[[陈述式语句]]来进行“[[不等式|比较两个数值]]”的运算-需要用到 <code>=</code>([[等于]])、<code>></code>(大于)、<code><</code>(小于)、<code>>=</code>(大于或者等于)... 等算子,其实这些算子都可以靠 <code><</code> 就可以砌出来<ref>Iverson, K. E. (1962, May). [https://dl.acm.org/doi/pdf/10.1145/1460833.1460872 A programming language] (PDF). In ''Proceedings of the May 1-3, 1962, spring joint computer conference'' (pp. 345-351).</ref>:
* 假设现在的编程语言
*# 能够理解到什么是 <code><</code>(小于;<code>lessThan</code>)与 <code>not</code>([[邏辑非]]),
*# 知道 <code>if... then...</code> 这样的[[条件陈述式]],以及
*# 能处理[[布林 (资料类型)|布林]](真和假)的[[输入]][[输出]];
* <code>>=</code>(大于或者等于)可以定义为:
*: <syntaxhighlight lang="c">
public static boolean greaterThanOrEqualTo(int a, int b) {
return not(lessThan(a, b));
}
</syntaxhighlight>
*: 如果 <code>a < b</code>,name <code>lessThan(a, b)</code> 会输出 <code>1</code>(真),而 <code>return not(lessThan(a, b))</code> 那么这个程序就会输出 <code>0</code>,这样就定义了 <code>>=</code>-因为<code>a < b</code> 就表示“<code>a >= b</code>”为假。
* 而 <code>=</code>(等如)也可以这样定义:
*: <syntaxhighlight lang="c">
public static boolean equalTo(int a, int b) {
if (greaterThanOrEqualTo(a, b))
return greaterThanOrEqualTo(b, a);
else
return false;
}
</syntaxhighlight>
*: 如果 <code>b = a</code>,<code>greaterThanOrEqualTo(a, b)</code>(上面定义了)会出 <code>1</code>(真),而接下来 <code>greaterThanOrEqualTo(b, a)</code> 又会输出 <code>1</code>,于是 <code>return greaterThanOrEqualTo(b, a)</code> 就会让这个程序输出 <code>1</code>,如果 <code>greaterThanOrEqualTo(a, b)</code> 或者 <code>greaterThanOrEqualTo(b, a)</code> 输出的是 <code>0</code>(假),那么这个程序就会输出 <code>0</code>。
... 如此类推。

== 参考文献 ==
{{reflist}}
[[Category:程序设计语言]]
[[Category:运算符(编程)]]