<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Operator_%28computer_programming%29</id>
	<title>Operator (computer programming) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Operator_%28computer_programming%29"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Operator_(computer_programming)&amp;action=history"/>
	<updated>2026-05-04T16:12:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Operator_(computer_programming)&amp;diff=5282008&amp;oldid=prev</id>
		<title>imported&gt;W.andrea: /* top */ &quot;meaning&quot; needs cleanup. I&#039;m not sure I explained what I&#039;m confused about very well, so ping me on talk if anything&#039;s unclear.</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Operator_(computer_programming)&amp;diff=5282008&amp;oldid=prev"/>
		<updated>2025-12-16T02:49:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;top: &lt;/span&gt; &amp;quot;meaning&amp;quot; needs cleanup. I&amp;#039;m not sure I explained what I&amp;#039;m confused about very well, so ping me on talk if anything&amp;#039;s unclear.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 02:49, 16 December 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Line 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{About|operators in computer programming|other uses|Operator (disambiguation)}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{About|operators in computer programming|other uses|Operator (disambiguation)}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In [[computer programming]], an &#039;&#039;&#039;operator&#039;&#039;&#039; is a [[programming language]] construct that provides functionality that may not be possible to define as a user-defined [[Function (computer programming)|function]] (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;e&lt;/del&gt;. [[sizeof]] in [[C (programming language)|C]]) or has [[Syntax (programming languages)|syntax]] different than a function (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;i&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;e&lt;/del&gt;. [[Infix notation|infix]] addition as in &amp;lt;code&amp;gt;a+b&amp;lt;/code&amp;gt;). Like other programming language concepts, &#039;&#039;operator&#039;&#039; has a generally accepted, although debatable meaning among practitioners while at the same time each language gives it specific meaning in that context, and therefore the meaning varies by language.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In [[computer programming]], an &#039;&#039;&#039;operator&#039;&#039;&#039; is a [[programming language]] construct that provides functionality that may not be possible to define as a user-defined [[Function (computer programming)|function]] (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;e&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;g&lt;/ins&gt;. [[sizeof]] in [[C (programming language)|C]]) or has [[Syntax (programming languages)|syntax]] different than a function (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;e&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;g&lt;/ins&gt;. [[Infix notation|infix]] addition as in &amp;lt;code&amp;gt;a+b&amp;lt;/code&amp;gt;). Like other programming language concepts, &#039;&#039;operator&#039;&#039; has a generally accepted, although debatable meaning among practitioners&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{clarify|reason=&quot;Practitioners&quot; meaning programmers? And why is it debatable?|date=December 2025}} &lt;/ins&gt;while at the same time each language gives it specific meaning in that context,&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{clarify|date=December 2025|reason=The context of that language?}} &lt;/ins&gt;and therefore the meaning varies by &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;individual &lt;/ins&gt;language.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{copy edit inline|date=December 2025}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some operators are represented with symbols {{endash}} characters typically not allowed for a function [[identifier (computer science)|identifier]] {{endash}} to allow for presentation that is more familiar looking than typical function syntax. For example, a function that tests for greater-than could be named &amp;lt;code&amp;gt;gt&amp;lt;/code&amp;gt;, but many languages provide an infix symbolic operator so that code looks more familiar. For example, this:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some operators are represented with symbols {{endash}} characters typically not allowed for a function [[identifier (computer science)|identifier]] {{endash}} to allow for presentation that is more familiar looking than typical function syntax. For example, a function that tests for greater-than could be named &amp;lt;code&amp;gt;gt&amp;lt;/code&amp;gt;, but many languages provide an infix symbolic operator so that code looks more familiar. For example, this:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Many operators differ syntactically from user-defined functions. In most languages, a function is [[prefix notation]] with fixed [[Order of operations|precedence]] level and associativity and often with compulsory [[parentheses]] (e.g. &amp;lt;code&amp;gt;Func(a)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;(Func a)&amp;lt;/code&amp;gt; in [[Lisp (programming language)|Lisp]]). In contrast, many operators are infix notation and involve different use of delimiters such as parentheses.  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Many operators differ syntactically from user-defined functions. In most languages, a function is [[prefix notation]] with fixed [[Order of operations|precedence]] level and associativity and often with compulsory [[parentheses]] (e.g. &amp;lt;code&amp;gt;Func(a)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;(Func a)&amp;lt;/code&amp;gt; in [[Lisp (programming language)|Lisp]]). In contrast, many operators are infix notation and involve different use of delimiters such as parentheses.  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In general, an operator may be prefix, infix, postfix, [[matchfix]], [[circumfix]] or bifix,&amp;lt;ref&amp;gt;{{Cite web|url=https://reference.wolfram.com/language/tutorial/OperatorInputForms.html.en|title=Operator Input Forms—Wolfram Language Documentation|website=reference.wolfram.com}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;://maxima.sourceforge.net/docs/manual/maxima_7.html|title=Maxima 5.42.0 Manual: 7. Operators|website=maxima.sourceforge.net}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=https://mythryl.org/my-Prefix__Postfix_and_Circumfix_Operators.html|title=Prefix, Postfix and Circumfix Operators|website=mythryl.org}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=http://doc.perl6.org/language/operators#___top|title=Operators|website=doc.perl6.org}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=Pribavkina&amp;gt;{{cite &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;conference&lt;/del&gt;|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ref&lt;/del&gt;= Pribavkina| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;last1 &lt;/del&gt;= &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pribavkina&lt;/del&gt;| last2= Rodaro| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;date&lt;/del&gt;= &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;August 2010&lt;/del&gt;| title= State Complexity of Prefix, Suffix, Bifix and Infix Operators on Regular Languages |&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;journal&lt;/del&gt;= Lecture Notes in Computer Science| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;type= Conference Article| series= Developments in Language Theory| language= English| conference= 14th International Conference on Developments in Language Theory| location= London Ontario| publisher= Springer| publication-&lt;/del&gt;date= 2010| &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;issue&lt;/del&gt;= 6224| pages= &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;376–377 &lt;/del&gt;| doi=10.1007/978-3-642-14455-4_34| isbn= 978-3-642-14454-7&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| issn= 0302-9743&lt;/del&gt;}}&amp;lt;/ref&amp;gt; and the syntax of an [[expression (computer science)|expression]] involving an operator depends on its [[arity]] (number of [[operand]]s), precedence, and (if applicable), [[Operator associativity|associativity]]. Most programming languages support [[binary operator]]s and a few [[unary operation|unary operators]], with a few supporting more operands, such as the [[?:]] operator in C, which is ternary. There are prefix unary operators, such as unary minus &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt;, and postfix unary operators, such as [[post-increment]] &amp;lt;code&amp;gt;x++&amp;lt;/code&amp;gt;; and binary operations are infix, such as &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;x = y&amp;lt;/code&amp;gt;. Infix operations of higher arity require additional symbols, such as the [[ternary operator]] ?: in C, written as &amp;lt;code&amp;gt;a ? b : c&amp;lt;/code&amp;gt; – indeed, since this is the only common example, it is often referred to as &#039;&#039;the&#039;&#039; ternary operator. Prefix and postfix operations can support any desired arity, however, such as &amp;lt;code&amp;gt;1 2 3 4 +&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In general, an operator may be prefix, infix, postfix, [[matchfix]], [[circumfix]] or bifix,&amp;lt;ref&amp;gt;{{Cite web|url=https://reference.wolfram.com/language/tutorial/OperatorInputForms.html.en|title=Operator Input Forms—Wolfram Language Documentation|website=reference.wolfram.com}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https&lt;/ins&gt;://maxima.sourceforge.net/docs/manual/maxima_7.html|title=Maxima 5.42.0 Manual: 7. Operators|website=maxima.sourceforge.net}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=https://mythryl.org/my-Prefix__Postfix_and_Circumfix_Operators.html|title=Prefix, Postfix and Circumfix Operators|website=mythryl.org}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=http://doc.perl6.org/language/operators#___top|title=Operators|website=doc.perl6.org}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=Pribavkina&amp;gt;{{cite &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;book &lt;/ins&gt;| &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;last1&lt;/ins&gt;=Pribavkina | &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;first1&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Elena V. &lt;/ins&gt;| last2=Rodaro | &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;first2&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Emanuele &lt;/ins&gt;| title&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=Developments in Language Theory | chapter&lt;/ins&gt;=State Complexity of Prefix, Suffix, Bifix and Infix Operators on Regular Languages | &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;series&lt;/ins&gt;=Lecture Notes in Computer Science | date=2010 | &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;volume&lt;/ins&gt;=6224 | pages=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;376–386 &lt;/ins&gt;| doi=10.1007/978-3-642-14455-4_34 | isbn=978-3-642-14454-7 }}&amp;lt;/ref&amp;gt; and the syntax of an [[expression (computer science)|expression]] involving an operator depends on its [[arity]] (number of [[operand]]s), precedence, and (if applicable), [[Operator associativity|associativity]]. Most programming languages support [[binary operator]]s and a few [[unary operation|unary operators]], with a few supporting more operands, such as the [[?:]] operator in C, which is ternary. There are prefix unary operators, such as unary minus &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt;, and postfix unary operators, such as [[post-increment]] &amp;lt;code&amp;gt;x++&amp;lt;/code&amp;gt;; and binary operations are infix, such as &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;x = y&amp;lt;/code&amp;gt;. Infix operations of higher arity require additional symbols, such as the [[ternary operator]] ?: in C, written as &amp;lt;code&amp;gt;a ? b : c&amp;lt;/code&amp;gt; – indeed, since this is the only common example, it is often referred to as &#039;&#039;the&#039;&#039; ternary operator. Prefix and postfix operations can support any desired arity, however, such as &amp;lt;code&amp;gt;1 2 3 4 +&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Semantics ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Semantics ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l39&quot;&gt;Line 39:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 39:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== ad hoc polymorphic ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== ad hoc polymorphic ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some languages provide operators that are &#039;&#039;&#039;ad hoc polymorphic&#039;&#039;&#039; {{endash}} inherently overloaded. For example, in [[Java (programming language)|Java]] the {{code|+}} operator sums [[number]]s or [[concatenate]]s [[String (computer science)|strings]].  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{further|Ad hoc polymorphism}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some languages provide operators that are &#039;&#039;&#039;ad hoc polymorphic&#039;&#039;&#039; {{endash}} inherently overloaded. For example, in [[Java (programming language)|Java]] the {{code|+}} operator sums [[number]]s or [[concatenate]]s [[String (computer science)|strings]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Customization ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Customization ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some languages support user-defined  [[operator overloading|overloading]] (such as [[C++]] and [[Fortran]]). An operator, defined by the language, can be [[function overloading|overloaded]] to behave differently based on the type of input.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some languages support user-defined  [[operator overloading|overloading]] (such as [[C++]] and [[Fortran]]). An operator, defined by the language, can be [[function overloading|overloaded]] to behave differently based on the type of input.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some languages (e.g. C, C++ and [[PHP]]) define a fixed set of operators, while others (e.g. [[Prolog]],&amp;lt;ref&amp;gt;{{Cite web|url=https://www.swi-prolog.org/pldoc/man?predicate=op/3|title=SWI-Prolog -- op/3|website=www.swi-prolog.org&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;}}&amp;lt;/ref&amp;gt; [[Seed7]],&amp;lt;ref&amp;gt;{{Cite web|url=http://seed7.sourceforge.net/examples/operator.htm|title=Declare an operator|website=seed7.sourceforge.net&lt;/del&gt;}}&amp;lt;/ref&amp;gt; [[F Sharp (programming language)|F#]], [[OCaml]], [[Haskell]]) allow for user-defined operators. Some programming languages restrict operator symbols to special characters like {{mono|1=&#039;&#039;&#039;[[Addition|+]]&#039;&#039;&#039;}} or {{mono|1=&#039;&#039;&#039;[[Assignment (computer science)|:=]]&#039;&#039;&#039;}} while others allow names like &amp;lt;code&amp;gt;[[Integer_division#Division_of_integers|div]]&amp;lt;/code&amp;gt; (e.g. [[Pascal (programming language)|Pascal]]), and even arbitrary names (e.g. [[Fortran]] where an upto 31 character long operator name is enclosed between dots&amp;lt;ref name=&quot;IntelFortran&quot;&amp;gt;{{cite web |title=Defined Operations |url=https://www.intel.com/content/www/us/en/docs/fortran-compiler/developer-guide-reference/2023-0/defined-operations.html |publisher=Intel |access-date=6 May 2025}}&amp;lt;/ref&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Some languages (e.g. C, C++ and [[PHP]]) define a fixed set of operators, while others (e.g. [[Prolog]],&amp;lt;ref&amp;gt;{{Cite web|url=https://www.swi-prolog.org/pldoc/man?predicate=op/3|title=SWI-Prolog -- op/3|website=www.swi-prolog.org}}&amp;lt;/ref&amp;gt; [[F Sharp (programming language)|F#]], [[OCaml]], [[Haskell]]) allow for user-defined operators. Some programming languages restrict operator symbols to special characters like {{mono|1=&#039;&#039;&#039;[[Addition|+]]&#039;&#039;&#039;}} or {{mono|1=&#039;&#039;&#039;[[Assignment (computer science)|:=]]&#039;&#039;&#039;}} while others allow names like &amp;lt;code&amp;gt;[[Integer_division#Division_of_integers|div]]&amp;lt;/code&amp;gt; (e.g. [[Pascal (programming language)|Pascal]]), and even arbitrary names (e.g. [[Fortran]] where an upto 31 character long operator name is enclosed between dots&amp;lt;ref name=&quot;IntelFortran&quot;&amp;gt;{{cite web |title=Defined Operations |url=https://www.intel.com/content/www/us/en/docs/fortran-compiler/developer-guide-reference/2023-0/defined-operations.html |publisher=Intel |access-date=6 May 2025}}&amp;lt;/ref&amp;gt;).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Most languages do not support user-defined operators since the feature significantly complicates parsing. Introducing a new operator changes the arity and precedence [[lexical specification]] of the language, which affects phrase-level [[lexical analysis]]. Custom operators, particularly via runtime definition, often make correct [[static analysis]] of a program impossible, since the syntax of the language may be Turing-complete, so even constructing the syntax tree may require solving the halting problem, which is impossible. This occurs for [[Perl]], for example, and some dialects of [[Lisp (programming language)|Lisp]].&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Most languages do not support user-defined operators since the feature significantly complicates parsing. Introducing a new operator changes the arity and precedence [[lexical specification]] of the language, which affects phrase-level [[lexical analysis]]. Custom operators, particularly via runtime definition, often make correct [[static analysis]] of a program impossible, since the syntax of the language may be Turing-complete, so even constructing the syntax tree may require solving the halting problem, which is impossible. This occurs for [[Perl]], for example, and some dialects of [[Lisp (programming language)|Lisp]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l129&quot;&gt;Line 129:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 130:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|[[B (programming language)|B]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|[[B (programming language)|B]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|{{code|1=() [] ! ~ ++ -- + - * &amp;amp; / % &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;lt; &amp;lt;= &amp;gt; &amp;gt;= == != ^ &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; [[?:]] = =+ =- =* =/ =% =&amp;amp; =^ =&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;}}&amp;lt;ref&amp;gt;{{Cite web |title=A TUTORIAL INTRODUCTION TO THE LANGUAGE B |url=https://www.bell-labs.com/usr/dmr/www/btut.html}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|{{code|1=() [] ! ~ ++ -- + - * &amp;amp; / % &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;lt; &amp;lt;= &amp;gt; &amp;gt;= == != ^ &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; [[?:]] = =+ =- =* =/ =% =&amp;amp; =^ =&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;}}&amp;lt;ref&amp;gt;{{Cite web |title=A TUTORIAL INTRODUCTION TO THE LANGUAGE B |url=https://www.bell-labs.com/usr/dmr/www/btut.html &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|access-date=2024-08-03 |archive-date=2017-04-03 |archive-url=https://web.archive.org/web/20170403063756/https://www.bell-labs.com/usr/dmr/www/btut.html |url-status=dead &lt;/ins&gt;}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|{{Yes}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|{{Yes}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l294&quot;&gt;Line 294:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 295:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| {{Yes}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| {{Yes}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| {{Yes}}&amp;lt;ref&amp;gt;{{Cite web|url=https://docs.perl6.org/language/functions#Defining_Operators|title=Functions|website=docs.perl6.org}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| {{Yes}}&amp;lt;ref&amp;gt;{{Cite web|url=https://docs.perl6.org/language/functions#Defining_Operators|title=Functions|website=docs.perl6.org}}&amp;lt;/ref&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| [[Seed7]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| &amp;lt;code&amp;gt;{} [] -&amp;gt; ** ! + - * / &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;amp; &amp;gt;&amp;lt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; = &amp;lt;&amp;gt; &amp;gt; &amp;gt;= &amp;lt; &amp;lt;= &amp;lt;&amp;amp; := +:= -:= *:= /:= &amp;lt;&amp;lt;:= &amp;gt;&amp;gt;:= &amp;amp;:= @:=&amp;lt;/code&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| &amp;lt;code&amp;gt;conv varConv parse [[Complex conjugate|conj]] [[Integer division#Division of integers|div]] [[Remainder|rem]] [[Modulo operation|mdiv mod]] times mult in [[Negation#Programming|not]] [[Logical conjunction|and]] [[Logical disjunction|or]] digits lpad rpad lpad0&amp;lt;/code&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| {{Yes}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| {{Yes}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| {{Yes}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| {{Yes}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| {{Yes}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| {{Yes}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| {{Yes}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;| {{Yes}}&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[Smalltalk]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| [[Smalltalk]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| (up to two characters&amp;lt;ref name=&quot;BinaryMessages&quot;&amp;gt;{{cite &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;web&lt;/del&gt;|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;first&lt;/del&gt;=Adele|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;last&lt;/del&gt;=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Goldberg&lt;/del&gt;|url=http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook.pdf|&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;title&lt;/del&gt;=&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Smalltalk&lt;/del&gt;-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;80: The Language and its Implementation&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;p&lt;/del&gt;. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;27, ISBN &lt;/del&gt;0-201-11371-6}}&amp;lt;/ref&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| (up to two characters&amp;lt;ref name=&quot;BinaryMessages&quot;&amp;gt;{{cite &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;book &lt;/ins&gt;|&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;last1=Goldberg |first1&lt;/ins&gt;=Adele |&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;last2&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Robson |first2=David |title=Smalltalk-80: The Language and its Implementation &lt;/ins&gt;|url=http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook.pdf |&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;date=1983 |page=| publisher&lt;/ins&gt;=&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Addison&lt;/ins&gt;-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Wesley |location=Reading&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Mass&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|isbn=&lt;/ins&gt;0-201-11371-6}}&amp;lt;/ref&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| (alphanumeric symbols need a colon suffix)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| (alphanumeric symbols need a colon suffix)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| {{No}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| {{No}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;W.andrea</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Operator_(computer_programming)&amp;diff=516025&amp;oldid=prev</id>
		<title>2A01:799:965:9400:FD0D:B2BF:60C3:3E5C: /* Semantics */ linked assignment</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Operator_(computer_programming)&amp;diff=516025&amp;oldid=prev"/>
		<updated>2025-05-06T20:49:48Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Semantics: &lt;/span&gt; linked assignment&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Basic programming language construct}}&lt;br /&gt;
{{refimprove|date=January 2019}}&lt;br /&gt;
{{About|operators in computer programming|other uses|Operator (disambiguation)}}&lt;br /&gt;
&lt;br /&gt;
In [[computer programming]], an &amp;#039;&amp;#039;&amp;#039;operator&amp;#039;&amp;#039;&amp;#039; is a [[programming language]] construct that provides functionality that may not be possible to define as a user-defined [[Function (computer programming)|function]] (i.e. [[sizeof]] in [[C (programming language)|C]]) or has [[Syntax (programming languages)|syntax]] different than a function (i.e. [[Infix notation|infix]] addition as in &amp;lt;code&amp;gt;a+b&amp;lt;/code&amp;gt;). Like other programming language concepts, &amp;#039;&amp;#039;operator&amp;#039;&amp;#039; has a generally accepted, although debatable meaning among practitioners while at the same time each language gives it specific meaning in that context, and therefore the meaning varies by language. &lt;br /&gt;
&lt;br /&gt;
Some operators are represented with symbols {{endash}} characters typically not allowed for a function [[identifier (computer science)|identifier]] {{endash}} to allow for presentation that is more familiar looking than typical function syntax. For example, a function that tests for greater-than could be named &amp;lt;code&amp;gt;gt&amp;lt;/code&amp;gt;, but many languages provide an infix symbolic operator so that code looks more familiar. For example, this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--this is pseudocode; do not use syntaxhighlight lang=&amp;quot;something&amp;quot;--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;if gt(x, y) then return&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Can be:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;if x &amp;gt; y then return&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some languages allow a language-defined operator to be overridden with user-defined behavior and some allow for user-defined operator symbols.&lt;br /&gt;
&lt;br /&gt;
Operators may also differ semantically from functions. For example, [[short-circuit evaluation|short-circuit]] Boolean operations evaluate later arguments only if earlier ones are not false.&lt;br /&gt;
&lt;br /&gt;
== Differences from functions ==&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
Many operators differ syntactically from user-defined functions. In most languages, a function is [[prefix notation]] with fixed [[Order of operations|precedence]] level and associativity and often with compulsory [[parentheses]] (e.g. &amp;lt;code&amp;gt;Func(a)&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;(Func a)&amp;lt;/code&amp;gt; in [[Lisp (programming language)|Lisp]]). In contrast, many operators are infix notation and involve different use of delimiters such as parentheses. &lt;br /&gt;
&lt;br /&gt;
In general, an operator may be prefix, infix, postfix, [[matchfix]], [[circumfix]] or bifix,&amp;lt;ref&amp;gt;{{Cite web|url=https://reference.wolfram.com/language/tutorial/OperatorInputForms.html.en|title=Operator Input Forms—Wolfram Language Documentation|website=reference.wolfram.com}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=http://maxima.sourceforge.net/docs/manual/maxima_7.html|title=Maxima 5.42.0 Manual: 7. Operators|website=maxima.sourceforge.net}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=https://mythryl.org/my-Prefix__Postfix_and_Circumfix_Operators.html|title=Prefix, Postfix and Circumfix Operators|website=mythryl.org}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=http://doc.perl6.org/language/operators#___top|title=Operators|website=doc.perl6.org}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=Pribavkina&amp;gt;{{cite conference|ref= Pribavkina| last1 = Pribavkina| last2= Rodaro| date= August 2010| title= State Complexity of Prefix, Suffix, Bifix and Infix Operators on Regular Languages |journal= Lecture Notes in Computer Science| type= Conference Article| series= Developments in Language Theory| language= English| conference= 14th International Conference on Developments in Language Theory| location= London Ontario| publisher= Springer| publication-date= 2010| issue= 6224| pages= 376–377 | doi=10.1007/978-3-642-14455-4_34| isbn= 978-3-642-14454-7| issn= 0302-9743}}&amp;lt;/ref&amp;gt; and the syntax of an [[expression (computer science)|expression]] involving an operator depends on its [[arity]] (number of [[operand]]s), precedence, and (if applicable), [[Operator associativity|associativity]]. Most programming languages support [[binary operator]]s and a few [[unary operation|unary operators]], with a few supporting more operands, such as the [[?:]] operator in C, which is ternary. There are prefix unary operators, such as unary minus &amp;lt;code&amp;gt;-x&amp;lt;/code&amp;gt;, and postfix unary operators, such as [[post-increment]] &amp;lt;code&amp;gt;x++&amp;lt;/code&amp;gt;; and binary operations are infix, such as &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;x = y&amp;lt;/code&amp;gt;. Infix operations of higher arity require additional symbols, such as the [[ternary operator]] ?: in C, written as &amp;lt;code&amp;gt;a ? b : c&amp;lt;/code&amp;gt; – indeed, since this is the only common example, it is often referred to as &amp;#039;&amp;#039;the&amp;#039;&amp;#039; ternary operator. Prefix and postfix operations can support any desired arity, however, such as &amp;lt;code&amp;gt;1 2 3 4 +&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Semantics ===&lt;br /&gt;
The semantics of an operator may significantly differ from that of a normal function. For reference, addition is evaluated like a normal function. For example, &amp;lt;code&amp;gt;x + y&amp;lt;/code&amp;gt; can be equivalent to a function &amp;lt;code&amp;gt;add(x, y)&amp;lt;/code&amp;gt; in that the arguments are evaluated and then the functional behavior is applied. However, [[Assignment_(computer_science)|assignment]] is different. For example, given &amp;lt;code&amp;gt;a = b&amp;lt;/code&amp;gt; the target &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; is &amp;#039;&amp;#039;not&amp;#039;&amp;#039; evaluated. Instead its value is replaced with the value of &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;. The [[scope resolution operator|scope resolution]] and element access operators (as in &amp;lt;code&amp;gt;Foo::Bar&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;a.b&amp;lt;/code&amp;gt;, respectively, in the case of e.g. [[C++]]) operate on identifier names; not values.&lt;br /&gt;
&lt;br /&gt;
In C, for instance, the array indexing operator can be used for both read access as well as assignment. In the following example, the  [[increment and decrement operators|increment operator]] reads the element value of an array and then assigns the element value.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=c&amp;gt;&lt;br /&gt;
++a[i];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The C++ &amp;lt;code&amp;gt;&amp;amp;lt;&amp;amp;lt;&amp;lt;/code&amp;gt; operator allows for [[fluent interface|fluent]] syntax by supporting a sequence of operators that affect a single argument. For example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=cpp&amp;gt;&lt;br /&gt;
cout &amp;lt;&amp;lt; &amp;quot;Hello&amp;quot; &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; &amp;quot;world!&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ad hoc polymorphic ==&lt;br /&gt;
Some languages provide operators that are &amp;#039;&amp;#039;&amp;#039;ad hoc polymorphic&amp;#039;&amp;#039;&amp;#039; {{endash}} inherently overloaded. For example, in [[Java (programming language)|Java]] the {{code|+}} operator sums [[number]]s or [[concatenate]]s [[String (computer science)|strings]]. &lt;br /&gt;
&lt;br /&gt;
== Customization ==&lt;br /&gt;
Some languages support user-defined  [[operator overloading|overloading]] (such as [[C++]] and [[Fortran]]). An operator, defined by the language, can be [[function overloading|overloaded]] to behave differently based on the type of input.&lt;br /&gt;
&lt;br /&gt;
Some languages (e.g. C, C++ and [[PHP]]) define a fixed set of operators, while others (e.g. [[Prolog]],&amp;lt;ref&amp;gt;{{Cite web|url=https://www.swi-prolog.org/pldoc/man?predicate=op/3|title=SWI-Prolog -- op/3|website=www.swi-prolog.org}}&amp;lt;/ref&amp;gt; [[Seed7]],&amp;lt;ref&amp;gt;{{Cite web|url=http://seed7.sourceforge.net/examples/operator.htm|title=Declare an operator|website=seed7.sourceforge.net}}&amp;lt;/ref&amp;gt; [[F Sharp (programming language)|F#]], [[OCaml]], [[Haskell]]) allow for user-defined operators. Some programming languages restrict operator symbols to special characters like {{mono|1=&amp;#039;&amp;#039;&amp;#039;[[Addition|+]]&amp;#039;&amp;#039;&amp;#039;}} or {{mono|1=&amp;#039;&amp;#039;&amp;#039;[[Assignment (computer science)|:=]]&amp;#039;&amp;#039;&amp;#039;}} while others allow names like &amp;lt;code&amp;gt;[[Integer_division#Division_of_integers|div]]&amp;lt;/code&amp;gt; (e.g. [[Pascal (programming language)|Pascal]]), and even arbitrary names (e.g. [[Fortran]] where an upto 31 character long operator name is enclosed between dots&amp;lt;ref name=&amp;quot;IntelFortran&amp;quot;&amp;gt;{{cite web |title=Defined Operations |url=https://www.intel.com/content/www/us/en/docs/fortran-compiler/developer-guide-reference/2023-0/defined-operations.html |publisher=Intel |access-date=6 May 2025}}&amp;lt;/ref&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Most languages do not support user-defined operators since the feature significantly complicates parsing. Introducing a new operator changes the arity and precedence [[lexical specification]] of the language, which affects phrase-level [[lexical analysis]]. Custom operators, particularly via runtime definition, often make correct [[static analysis]] of a program impossible, since the syntax of the language may be Turing-complete, so even constructing the syntax tree may require solving the halting problem, which is impossible. This occurs for [[Perl]], for example, and some dialects of [[Lisp (programming language)|Lisp]].&lt;br /&gt;
&lt;br /&gt;
If a language does allow for defining new operators, the mechanics of doing so may involve meta-programming {{endash}} specifying the operator in a separate language.&lt;br /&gt;
&lt;br /&gt;
== Operand coercion ==&lt;br /&gt;
{{further|Type conversion}}&lt;br /&gt;
Some languages implicitly convert (aka [[Type conversion#Implicit type conversion|coerce]]) operands to be compatible with each other. For example, [[Perl]] coercion rules cause &amp;lt;code&amp;gt;12 + &amp;quot;3.14&amp;quot;&amp;lt;/code&amp;gt; to evaluate to &amp;lt;code&amp;gt;15.14&amp;lt;/code&amp;gt;. The string literal &amp;lt;code&amp;gt;&amp;quot;3.14&amp;quot;&amp;lt;/code&amp;gt; is converted to the numeric value 3.14 before addition is applied. Further, &amp;lt;code&amp;gt;3.14&amp;lt;/code&amp;gt; is treated as floating point so the result is floating point even though &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt; is an integer literal. [[JavaScript]] follows different rules so that the same expression evaluates to &amp;lt;code&amp;gt;&amp;quot;123.14&amp;quot;&amp;lt;/code&amp;gt; since &amp;lt;code&amp;gt;12&amp;lt;/code&amp;gt; is converted to a string which is then concatenated with the second operand.&lt;br /&gt;
&lt;br /&gt;
In general, a programmer must be aware of the specific rules regarding operand coercion in order to avoid unexpected and incorrect behavior.&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
{{category see also|Operators (programming)}}&lt;br /&gt;
&lt;br /&gt;
;Mathematical operators&lt;br /&gt;
* [[Arithmetic]]: such as addition, &amp;lt;code&amp;gt;a {{red|+}} b&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Relational operator|Relational]]: such as [[Greater-than sign|greater than]], &amp;lt;code&amp;gt;a {{red|&amp;amp;gt;}} b&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Mathematical logic|Logic]]: such as &amp;lt;code&amp;gt;a {{red|AND}} b&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;a {{red|&amp;amp;amp;&amp;amp;amp;}} b&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Assignment (computer science)|Assignment]]: such as &amp;lt;code&amp;gt;a {{red|&amp;amp;equals;}} b&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;a {{red|:&amp;amp;equals;}} b&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Three-way comparison]] (aka spaceship): &amp;lt;code&amp;gt;x {{red|&amp;amp;lt;&amp;amp;equals;&amp;amp;gt;}} y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Program structure operators&lt;br /&gt;
* [[Record (computer science)|Record]] or [[Object (computer science)|object]] [[Field (computer science)|field]] access: such as &amp;lt;code&amp;gt;a{{red|.}}b&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[scope resolution operator|Scope resolution]]: such as &amp;lt;code&amp;gt;a{{red|::}}b&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;a{{red|.}}b&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Conditional operators&lt;br /&gt;
* [[Ternary conditional operator|Ternary conditional]]: &amp;lt;code&amp;gt;condition {{red|?}} a {{red|:}} b&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Elvis operator|Elvis]]: &amp;lt;code&amp;gt;x {{red|?:}} y&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Null coalescing operator|Null coalesing]]: &amp;lt;code&amp;gt;x {{red|??}} y&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Notable C and C++ operators&lt;br /&gt;
* Address-of operator: &amp;lt;code&amp;gt;{{red|&amp;amp;amp;}}x&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Dereference operator|Dereference]]: &amp;lt;code&amp;gt;{{red|*}}p&amp;lt;/code&amp;gt;&lt;br /&gt;
* [[Comma operator|Comma]]: &amp;lt;code&amp;gt;e{{red|,}} f&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{anchor|Compound operator|Fused operation}}&lt;br /&gt;
;Compound operators&lt;br /&gt;
* [[compound assignment operator|Compound assignment]] (aka augmented assignment) in C/C++: &amp;lt;code&amp;gt;+=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;-=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;*=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;%=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;^=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;|=&amp;lt;/code&amp;gt; &lt;br /&gt;
* [[fused operation|Fused]]: such as [[cis (mathematics)|{{math|1=cis &amp;#039;&amp;#039;x&amp;#039;&amp;#039; = cos &amp;#039;&amp;#039;x&amp;#039;&amp;#039; + &amp;#039;&amp;#039;i&amp;#039;&amp;#039; sin &amp;#039;&amp;#039;x&amp;#039;&amp;#039;}}]]&lt;br /&gt;
&lt;br /&gt;
== Operator features in programming languages ==&lt;br /&gt;
The following table shows the operator features in several programming languages:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;sortable wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Language&lt;br /&gt;
!Symbolic operators&lt;br /&gt;
!Alphanumeric operators&lt;br /&gt;
! {{verth|Prefix}}&lt;br /&gt;
! {{verth|Infix}}&lt;br /&gt;
! {{verth|Postfix}}&lt;br /&gt;
! {{verth|Precedence}}&lt;br /&gt;
! {{verth|Associativity}}&lt;br /&gt;
! {{verth|Overloading}}&lt;br /&gt;
! {{verth|User-defined&amp;lt;br/&amp;gt;overloading}}&lt;br /&gt;
! {{verth|User-defined&amp;lt;br/&amp;gt;symbols}}&lt;br /&gt;
|-&lt;br /&gt;
| [[ALGOL 68]] &amp;lt;small&amp;gt;each symbolic operator has an alphanumeric equivalent and some a non-[[ASCII]] equivalent&amp;lt;/small&amp;gt;&lt;br /&gt;
| {{code|1=+* ** * / % %* %× - + &amp;amp;lt; &amp;amp;lt;= &amp;gt;= &amp;gt; = /= &amp;amp; -:= +:= *:= /:= %:= %*:= +=: :=: :/=:}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;non-ASCII:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
{{code|1=¬ +× ⊥ ↑ ↓ ⌊ ⌈ × ÷ ÷× ÷* □ ≤ ≥ ≠ ∧ ∨ ×:= ÷:= ÷×:= ÷*:= %×:= :≠:}}&lt;br /&gt;
| {{code|not abs arg bin entier leng level odd repr round shorten i shl shr up down lwb upb lt le ge gt eq ne and or over mod elem minusab plusab timesab divab overab modab plusto is {{Not a typo|isnt}}}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}} &amp;lt;small&amp;gt;(prefix operators always have priority 10)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Infix operators are left associative, prefix operators are right associative&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[APL (programming language)|APL]]&lt;br /&gt;
| {{code|1=+ - × ÷ ⌈ ⌊ * ⍟ &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ! ○ ~ ∨ ∧ ⍱ ⍲ &amp;amp;lt; ≤ = ≥ &amp;gt; ≠ . @ ≡ ≢ ⍴ , ⍪ ⍳ ↑ ↓ ? ⍒ ⍋ ⍉ ⌽ ⊖ ∊ ⊥ ⊤ ⍎ ⍕ ⌹ ⊂ ⊃ ∪ ∩ ⍷ ⌷ ∘ → ← / ⌿ \ ⍀ ¨ ⍣ &amp;amp; ⍨ ⌶ ⊆ ⊣ ⊢ ⍠ ⍤ ⌸ ⌺ ⍸}}&lt;br /&gt;
| (requires ⎕ prefix)&lt;br /&gt;
| {{Yes}} &amp;lt;small&amp;gt;(first-order functions only)&amp;lt;/small&amp;gt;&lt;br /&gt;
| {{Yes}} &lt;br /&gt;
| {{Yes}} &amp;lt;small&amp;gt;(higher-order functions only)&amp;lt;/small&amp;gt;&lt;br /&gt;
| Higher-order functions precede first-order functions&lt;br /&gt;
| Higher-order functions are left associative, first-order functions are right associative&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}} &amp;lt;small&amp;gt;(alphanumeric only)&amp;lt;/small&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|[[B (programming language)|B]]&lt;br /&gt;
|{{code|1=() [] ! ~ ++ -- + - * &amp;amp; / % &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;lt; &amp;lt;= &amp;gt; &amp;gt;= == != ^ &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; [[?:]] = =+ =- =* =/ =% =&amp;amp; =^ =&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;}}&amp;lt;ref&amp;gt;{{Cite web |title=A TUTORIAL INTRODUCTION TO THE LANGUAGE B |url=https://www.bell-labs.com/usr/dmr/www/btut.html}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|{{Yes}}&lt;br /&gt;
|{{Yes}}&lt;br /&gt;
|{{Yes}}&lt;br /&gt;
|{{Yes}}&lt;br /&gt;
|{{Yes}}&lt;br /&gt;
|{{No}}&lt;br /&gt;
|{{No}}&lt;br /&gt;
|{{No}}&lt;br /&gt;
|-&lt;br /&gt;
| [[C (programming language)|C]]&lt;br /&gt;
| {{code|1=() [] -&amp;gt; . ! ~ ++ -- + - * &amp;amp; / % &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;lt; &amp;lt;= &amp;gt; &amp;gt;= == != ^ &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; &amp;amp;&amp;amp; &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt; [[?:]] = += -= *= /= %= &amp;amp;= ^= |= &amp;lt;&amp;lt;= &amp;gt;&amp;gt;=}}&lt;br /&gt;
| &amp;lt;code&amp;gt;[[sizeof]]&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
|-&lt;br /&gt;
| [[C++]]&lt;br /&gt;
| (same as C)&lt;br /&gt;
| (same as C plus) &amp;lt;code&amp;gt;[[typeid]] [[new (C++)|new]] [[delete (C++)|delete]] [[Exception handling|throw]] [[decltype]] [[static_cast]] [[dynamic cast]] [[reinterpret_cast]] [[const_cast]]&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
|-&lt;br /&gt;
| [[C sharp (programming language)|C#]]&lt;br /&gt;
| (same as C plus) &amp;lt;code&amp;gt;[[?.]] ?[] [[Null coalescing operator|??]] &amp;lt;nowiki&amp;gt;??=&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;[[sizeof]] nameof new stackalloc await [[Exception handling|throw]] checked unchecked is as delegate default true false&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;#039;&amp;#039;&amp;#039;[[LINQ]]:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;from select where group...by group...by...into join...in...on...equals join...in...on...equals...into orderby orderby...descending&amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;#039;&amp;#039;&amp;#039;[[Roslyn (compiler)|Roslyn]]-only:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;__makeref __refvalue __reftype&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Java (programming language)|Java]]&lt;br /&gt;
| (same as C)&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Java syntax#Instantiation|new]] [[Exception handling|throw]] [[instanceof]]&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Eiffel (programming language)|Eiffel]]&lt;br /&gt;
| &amp;lt;code&amp;gt;[] + - * / // = /= &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;not and or implies &amp;quot;and then&amp;quot; &amp;quot;or else&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Haskell]]&lt;br /&gt;
|&amp;lt;code&amp;gt;+ - * / ^ ^^ ** == /= &amp;gt; &amp;lt; &amp;gt;= &amp;lt;= &amp;amp;&amp;amp; &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt; &amp;gt;&amp;gt;= &amp;gt;&amp;gt; $ $! . ++ !! :&amp;lt;/code&amp;gt; &amp;lt;small&amp;gt;(and many more)&amp;lt;/small&amp;gt;&lt;br /&gt;
| (function name must be in backticks)&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; {{Yes}}, using [[Type class]]es&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[MultiValue|mvBasic Databasic/Unibasic]]&lt;br /&gt;
|&amp;lt;code&amp;gt;+ - * / ^ ** : = ! &amp;amp; [] += -= := # &amp;lt; &amp;gt; &amp;lt;= &amp;gt;= &amp;lt;&amp;gt; &amp;gt;&amp;lt; =&amp;lt; #&amp;gt; =&amp;gt; #&amp;lt; &amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;AND OR NOT EQ NE LT GT LE GE MATCH ADDS() ANDS() CATS() DIVS() EQS() GES() GTS() IFS()&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Pascal (programming language)|Pascal]]&lt;br /&gt;
| &amp;lt;code&amp;gt;* / + - = &amp;lt; &amp;gt; &amp;lt;&amp;gt; &amp;lt;= &amp;gt;= :=&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;[[Negation#Programming|not]] [[Integer division#Division of integers|div]] [[Modulo operation|mod]] [[Logical conjunction|and]] [[Logical disjunction|or]] in&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Perl]]&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;gt; ++ -- ** ! ~ \ + - . =~ !~ * / % &amp;lt; &amp;gt; &amp;lt;= &amp;gt;= == != &amp;lt;=&amp;gt; ~~ &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ^ &amp;amp;amp;&amp;amp;amp; &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt; &amp;#039; &amp;amp;apos;&amp;amp;apos; {{Not a typo|// .. ... ?: {{=}} +{{=}} -{{=}} *{{=}} , {{=}}&amp;gt;}} &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;print sort chmod chdir rand and or not xor lt gt le ge eq ne cmp x &amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PHP]]&lt;br /&gt;
| &amp;lt;code&amp;gt;[] ** ++ -- ~  @!&amp;lt;ref&amp;gt;{{Cite web|url=https://php.net/manual/en/language.operators.errorcontrol.php|title=PHP: Error Control Operators - Manual|website=php.net}}&amp;lt;/ref&amp;gt; * / % + - . &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;lt; &amp;lt;= &amp;gt; &amp;gt;= == != === !== &amp;lt;&amp;gt; [[Spaceship operator|&amp;lt;=&amp;gt;]] &amp;amp; ^ &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; &amp;amp;&amp;amp; &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt; [[Null coalescing operator|??]] [[?:]] = += -= *= **= /= .= %= &amp;amp;= &amp;lt;nowiki&amp;gt;|=&amp;lt;/nowiki&amp;gt; ^= &amp;lt;&amp;lt;= &amp;gt;&amp;gt;= &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;clone new unset print echo isset [[instanceof]] [[Logical conjunction|and]] [[Logical disjunction|or]] [[xor]]&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
|-&lt;br /&gt;
| [[PL/I]]&lt;br /&gt;
| &amp;lt;code&amp;gt;( ) -&amp;gt; + - * / ** &amp;gt; ¬&amp;gt; &amp;gt;= = ¬= &amp;lt;= &amp;lt; ¬&amp;lt; ¬ &amp;lt;nowiki&amp;gt;&amp;amp;&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|  &lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Prolog]]&lt;br /&gt;
| &amp;lt;code&amp;gt;:- ?- ; , . =.. = \= &amp;lt; =&amp;lt; &amp;gt;= &amp;gt; == \== - + / *&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;spy nospy not is mod&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Raku (programming language)|Raku]]&lt;br /&gt;
| &amp;lt;code&amp;gt;++ -- ** ! ~ ~~ * / + - . &amp;lt; &amp;gt; &amp;lt;= &amp;gt;= == != &amp;lt;=&amp;gt; &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ^ &amp;amp;amp;&amp;amp;amp; &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt; //&amp;lt;/code&amp;gt; &amp;lt;ref&amp;gt;{{Cite web|url=https://docs.perl6.org/language/operators|title=Operators|website=docs.perl6.org}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;print sort chmod chdir rand and or not xor lt gt le ge eq ne leg cmp x xx&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&amp;lt;ref&amp;gt;{{Cite web|url=https://docs.perl6.org/language/functions#Defining_Operators|title=Functions|website=docs.perl6.org}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Seed7]]&lt;br /&gt;
| &amp;lt;code&amp;gt;{} [] -&amp;gt; ** ! + - * / &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;amp; &amp;gt;&amp;lt; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; = &amp;lt;&amp;gt; &amp;gt; &amp;gt;= &amp;lt; &amp;lt;= &amp;lt;&amp;amp; := +:= -:= *:= /:= &amp;lt;&amp;lt;:= &amp;gt;&amp;gt;:= &amp;amp;:= @:=&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;conv varConv parse [[Complex conjugate|conj]] [[Integer division#Division of integers|div]] [[Remainder|rem]] [[Modulo operation|mdiv mod]] times mult in [[Negation#Programming|not]] [[Logical conjunction|and]] [[Logical disjunction|or]] digits lpad rpad lpad0&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Smalltalk]]&lt;br /&gt;
| (up to two characters&amp;lt;ref name=&amp;quot;BinaryMessages&amp;quot;&amp;gt;{{cite web|first=Adele|last=Goldberg|url=http://stephane.ducasse.free.fr/FreeBooks/BlueBook/Bluebook.pdf|title=Smalltalk-80: The Language and its Implementation, p. 27, ISBN 0-201-11371-6}}&amp;lt;/ref&amp;gt;)&lt;br /&gt;
| (alphanumeric symbols need a colon suffix)&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Swift (programming language)|Swift]]&lt;br /&gt;
| (any Unicode symbol string except) &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt; (including) &amp;lt;code&amp;gt;! ~ + - * / % =+ =- =* =/ =% &amp;amp;+ &amp;amp;- &amp;amp;* =&amp;amp;+ =&amp;amp;- =&amp;amp;* &amp;amp;&amp;amp; &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt; &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;amp; &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; ^ == != &amp;lt; &amp;lt;= &amp;gt; &amp;gt;= ?? ... ..&amp;lt; &amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;is as as?&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}} &amp;lt;small&amp;gt;(defined as partial order in precedence groups)&amp;lt;/small&amp;gt;&lt;br /&gt;
| {{Yes}} &amp;lt;small&amp;gt;(defined as part of precedence groups)&amp;lt;/small&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
|-&lt;br /&gt;
| [[Visual Basic .NET]]&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | &amp;lt;code&amp;gt;() . ! ?() ?. ?! + - * / \ &amp;amp; &amp;lt;&amp;lt; &amp;gt;&amp;gt; &amp;lt; &amp;lt;= &amp;gt; &amp;gt;= ^ &amp;lt;&amp;gt; = += -= *= /= \= &amp;amp;= ^= &amp;lt;&amp;lt;= &amp;gt;&amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;New Await Mod Like Is IsNot Not And AndAlso Or OrElse Xor If(...,...) If(...,...,...) GetXmlNamespace(...) GetType(...) NameOf(...) TypeOf...Is TypeOf...IsNot DirectCast(...,...) TryCast(...,...) &amp;lt;/code&amp;gt; &amp;lt;br&amp;gt; &amp;#039;&amp;#039;&amp;#039;[[LINQ]]:&amp;#039;&amp;#039;&amp;#039; &amp;lt;code&amp;gt;From Aggregate...Into Select Distinct Where {{nowrap|&amp;lt;Order By&amp;gt;...[Ascending&amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;Descending]}} Take {{nowrap|&amp;lt;Take While&amp;gt;}} Skip {{nowrap|&amp;lt;Skip While&amp;gt;}} Let Group...By...Into Join...On &amp;lt;Group Join...On...Into&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Operators in C and C++]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Operators (programming)| ]]&lt;br /&gt;
[[Category:Programming constructs]]&lt;/div&gt;</summary>
		<author><name>2A01:799:965:9400:FD0D:B2BF:60C3:3E5C</name></author>
	</entry>
</feed>