Jump to content

Order of operations

This is a fully translated article. Click here for more information.
From DawoumWiki, the free Mathematics self-learning

수학(mathematics)컴퓨터 프로그래밍(computer programming)에서, 연산의 순서(order of operations) (또는 연산자 우선순위(operator precedence))는 주어진 수학적 표현(mathematical expression)을 평가하기 위해 먼저 수행하기 위한 절차에 대한 규칙을 반영하는 규칙의 모음입니다.

예를 들어, 수학과 대부분의 컴퓨터 언어에서, 곱셈은 덧셈보다 더 높은 우선순위를 제공하고, 현대 대수 표기법의 도입이래로 이 방법을 사용해 왔습니다.[1][2] 따라서, 표현 1 + 2 × 3(1 + 2) × 3 = 9가 아닌 값 1 + (2 × 3) = 7을 가지는 것으로 해석됩니다. 지수가 16세기와 17세기에서 도입되었을 때, 그것들은 덧셈과 곱셈 둘 다에 걸쳐 우선순위를 제공하고, 오직 그것들의 밑수의 오른쪽에 위첨자로 위치될 수 있습니다.[1] 따라서 3 + 52 = 28이고 3 × 52 = 75입니다.

이들 관례는 표기법을 가능한 간결하게 하면서 모호성을 없애기 위해 존재합니다. 우선순위 관례를 덮어쓰기를 원하거나, 심지어 단순히 그것들을 강조하기 위해, 괄호(parentheses) ( )는 대안적인 연산의 순서를 나타내기 위해 (또는 단순히 연산의 기본 순서를 강화하기 위해) 사용될 수 있습니다. 예를 들어, (2 + 3) × 4 = 20는 곱셈에 앞서 덧셈을 강제하고, 반면에 (3 + 5)2 = 64지수(exponentiation)에 앞서 덧셈을 강제합니다. 만약 괄호의 여러 쌍이 (중첩된 괄호에서 처럼) 수학적 표현에 요구되면, 괄호는 [2 × (3 + 4)] − 5 = 9에서 처럼 혼동을 피하기 위해 대괄호(bracket) 또는 중괄호(braces)로 대체될 수 있습니다.

Definition

수학, 과학, 기술, 및 많은 컴퓨터 프로그래밍 언어(programming language)에서 사용되는 연산의 순서는 여기에 표현됩니다:[1][3][4]

  1. 지수화(exponentiation)근 추출(root extraction)
  2. 곱셈(multiplication)나눗셈(division
  3. 덧셈(addition)뺄셈(subtraction)

이것은, 만약 수학 표현에서, 두 연산자(operators) 사이에 부분표현이 나타나면, 위 목록에서 더 높이 있는 연산자가 먼저 적용되어야 함을 의미합니다.

덧셈과 곱셈의 교환적(commutative)결합적(associative) 속성은 항을 임의의 순서로 더하고, 인수를 임의의 순서로 곱하는 것을 허용하지만 혼합된 연산은 표준 연산의 순서를 따라야 합니다.

일부 문맥에서, 나눗셈을 역수 (곱셈의 역)에 의한 곱셈으로 대체하고 뺄셈을 반대 (덧셈의 역)에 의한 덧셈으로 바꾸는 것이 도움이 됩니다. 예를 들어, 컴퓨터 대수(computer algebra)에서, 이것은 더 적은 수의 이항 연산(binary operation)을 처리할 수 있게 하고, 큰 표현식을 단순화할 때 교환성(commutativity)결합성(associativity)을 사용하기 위해 더 쉽게 만들 수 있습니다 (자세한 내용에 대해 Computer algebra § Simplification를 참조하십시오). 따라서 3 ÷ 4 = 3 × 1/4입니다; 다시 말해서, 3과 4의 몫은 3과 1/4의 곱과 같습니다. 역시 3 − 4 = 3 + (−4)입니다; 다시 말해서, 3과 4의 차이는 3과 −4의 합과 같습니다. 따라서, 1 − 3 + 71 + (−3) + 7의 합으로 생각될 수 있고, 셋의 피합수(summand)는 임의의 순서로 더해질 수 있으며, 모든 경우에서 5를 결과로 제공합니다.

제곱근 기호 √ 는 전통적으로 피제곱근(radicand) 위에 막대 (괄선(vinculum)이라고 불림)에 의해 연장됩니다 (이것은 피제곱근 주위에 괄호에 대한 필요를 피합니다). 다른 함수는 모호성을 피하기 위해 입력 주위에 괄호를 사용합니다.[5][6][a] 괄호는 입력이 단일 숫자 변수 또는 상수이면[1] (sin x = sin(x)sin π = sin(π)의 경우에서 처럼) 생략될 수 있습니다.[a] 때때로 사용되는 또 다른 단축 규칙은 입력이 단항식(monomial)일 때입니다; 따라서 (sin(3)) x가 아니라 sin 3x = sin(3x)이지만, sin x + y = sin(x) + y인데, 왜냐하면 x + y는 단항식이 아니기 때문입니다. 이것은, 어쨌든, 모호하고 특정 문맥의 외부에서 보편적으로 이해되지 않습니다.[b] 일부 계산기와 프로그래밍 언어는 함수 입력 주위에 괄호를 요구하지만, 일부는 그렇지 않습니다. .

그룹화의 기호는 보통의 연산의 순서를 덮어쓰기 위해 사용될 수 있습니다.[1] 그룹화된 기호는 단일 표현으로 취급될 수 있습니다.[1] 그룹화의 기호는 결합적과 분배적(distributive) 속성을 사용하여 제거될 수 있으며, 역시 그것들은 만약 그룹화의 기호 내부의 표현이 충분하게 단순화되므로 모호성은 그것들의 제거로 인해 발생하지 않으면 제거될 수 있습니다.

Examples

수평 분수 직선은 역시 그룹화의 기호로 행동합니다:

읽기 쉽도록, 중괄호 { } 또는 대괄호 [ ]와 같은 다른 그룹화 기호가 종종 괄호 ( )와 함께 사용됩니다. 예를 들어:

Mnemonics

니모닉(Mnemonics)은 종종 다양한 연산을 나타내는 단어의 첫 글자를 포함하여, 학생들이 규칙을 기억하기 쉽도록 돕기 위해 사용될 수 있습니다. 다른 니모닉은 다른 국가에서 사용됩니다.[7][8][9]

  • 미국,[10] 및 프랑스에서,[11] 약어 PEMDAS가 공통입니다. 그것은 Parentheses, Exponents, Multiplication/Division, Addition/Subtraction를 의미합니다.[10] PEMDAS는 종종 학교에서 니모닉 "Please Excuse My Dear Aunt Sally"으로 확장됩니다.[12]
  • 캐나다와 뉴질랜드는 BEDMAS를 사용하며, Brackets, Exponents, Division/Multiplication, Addition/Subtraction를 의미합니다.[10]
  • Most common in the 영국, 파키스탄, 인도, 방글라데시와 호주,[13] 및 일부 다른 영어권 국가에서 대부분 공통은 BODMAS이며 Brackets, Order, Division/Multiplication, Addition/Subtraction 또는 Brackets, Of/Division/Multiplication, Addition/Subtraction를 의미합니다.[c][14] Nigeria and some other West African countries also use BODMAS. 유사하게 영국에서, BIDMAS가 역시 사용되며, Brackets, Indices, Division/Multiplication, Addition/Subtraction를 의미합니다.

이들 니모닉은 이런 방법으로 작성될 때 오해의 소지가 있습니다.[12] 예를 들어, 위의 규칙 중 임의의 하나를 "덧셈 먼저, 그 후 뺄셈"를 의미하는 것으로 잘못 해석하면 표현이 잘못 평가됩니다.[12]

니모닉에서 "Addition/Subtraction"은 임의의 덧셈과 뺄셈이 왼쪽에서 오른쪽으로 순서에서 수행되어야 하는 것으로 해석되어야 합니다. 유사하게, 표현 a ÷ b × c는 여러 방법으로 읽힐 수 있지만, 니모닉에서 "Multiplication/Division"은 곱셈과 나눗셈이 왼쪽에서 오른쪽으로 수행되어야 함을 의미합니다.

병치에 의한 곱셈(multiplication by juxtaposition)과 나눗셈을 나타내기 위해 슬래시(slash)를 사용하여 발생하는 추가적인 모호성은 아래에서 논의됩니다. 일반적으로, 모호성을 피하는 가장 확실한 방법은 괄호를 사용하는 것입니다.

Special cases

Serial exponentiation

만약 지수(exponentiation)가 위첨자 표기법을 사용하여 기호를 누적함으로써 표시되면, 일반적인 규칙은 위에서 아래로 작동하는 것입니다:[15][1][6][16]

abc = a(bc)

이것은 전형적으로 (ab)c와 같지 않습니다. 이 관례는 유용한데 왜냐하면 (ab)c = abc지수의 속성이 있기 때문이므로, 이것에 대해 직렬 지수를 사용하는 것이 필요없습니다.

어쨌든, 캐럿(caret) (^) 또는 화살표(arrow) (↑)를 갖는 연산자 표기법을 사용할 때, 공통된 표준이 없습니다.[17] 예를 들어 마이크로소프트 엑셀과 계산 프로그래밍 언어 MATLABa^b^c를 (ab)c로 평가하지만, 구글 검색Wolfram Alphaa(bc)로 평가합니다. 따라서, 4^3^2는 첫 번째 경우에서 4,096, 두 번째 경우에서 262,144로 평가됩니다.

Unary minus sign

단항 연산자 − (보통 "빼기"로 읽음)와 관련하여 다른 규칙이 있습니다. 쓰는 또는 인쇄된 수학에서, 표현 −32−(32) = −9을 의미하는 것으로 해석됩니다.[1][18]

일부 응용 프로그램과 프로그래밍 언어, 특히 Microsoft Excel, PlanMaker (및 기타 스프레드시트 응용 프로그램)과 프로그래밍 언어 bc에서, 단항 연산자는 이항 연산자보다 더 높은 우선순위를 가지며, 즉, 단항 연산자 빼기는 지수보다 더 높은 우선순위를 가지므로, 그들 언어에서 −32(−3)2 = 9로 해석됩니다.[19] 이것은 이항 빼기 연산자 −에는 적용되지 않습니다; 예를 들어 Microsoft Excel에서 수식 =−2^2, =-(2)^2, 및 =0+−2^2는 4를 반환하고, 수식 =0−2^2 and =−(2^2)는 4를 반환합니다.

Mixed division and multiplication

일부 학술 문헌에서, 병치에 의해 표시된 곱셈(multiplication denoted by juxtaposition) (역시 암시된 곱셈(implied multiplication)으로 알려져 있음)은 1 ÷ 2n(1 ÷ 2)n가 아니라 1 ÷ (2n)와 같게 되도록 나눗셈보다 더 높은 우선순위를 가지는 것으로 해석됩니다.[1][7] 예를 들어, Physical Review 저널에 대해 원고 제출 지침은 곱셈이 나눗셈보다 더 높은 우선순위를 가진다고 명시되어 있고,[20] 이것은 역시 LandauLifshitz에 의한 Course of Theoretical PhysicsFeynman Lectures on Physics와 같은 저명한 물리학 교과서에서 관찰되는 규칙이기도 합니다.[d] 이 모호성은 "8÷2(2+2)"와 같은 인터넷 밈(internet meme)에서 자주 이용됩니다.[21]

모호성은 역시 나눗셈에 대해 슬래시 기호, '/'의 사용에 의해 발생될 수 있습니다. Physical Review 제출 지침은 형식 a/b/c의 표현을 피하도록 제안합니다; 모호성은 대신 (a/b)/c 또는 a/(b/c)를 씀으로써 피해질 수 있습니다.[20]

Calculators

다른 계산기는 다른 연산의 순서를 따릅니다.[1] 스택없는 많은 간단한 계산기는, 예를 들어, 다음 입력과 같이, 다른 연산자에 주어진 임의의 우선순위없이 왼쪽에서 오른쪽으로 작동하는 체인 입력(chain input)을 구현합니다:

1 + 2 × 3는 9를 산출합니다,

반면에 더 정교한 계산기는, 예를 들어, 다음 입력과 같이, 더 표준적인 우선순위를 사용할 것입니다:

1 + 2 × 3는 7을 산출합니다.

Microsoft Calculator 프로그램은 표준 보기에서 전자를 사용하고 과학 및 프로그래머 보기에서 후자를 사용합니다.

체인 입력은 둘의 피연산자(operand)와 하나의 연산자를 예상합니다. 다음 연산자가 눌려질 때, 그 표현은 즉시 평가되고 답은 다음 연산자의 왼쪽 항이 됩니다. 고급 계산기는 전체 표현의 엔트리를 필요에 따라 그룹화하고 오직 사용자가 등호를 눌렀을 때 평가하는 것을 허용합니다.

계산기는 지수를 왼쪽에서 오른쪽으로 결합할 수 있습니다. 예를 들어, 표현 a^b^c는 "Mathprint 모드"에서 TI-92와 "Mathprint mode"에서 TI-30XS MultiView에서 a(bc)로 해석되고, 반면에 TI-30XII와 "Classic mode"에서 TI-30XS MultiView에서 (ab)c로 해석됩니다.

1/2x와 같은 표현은 TI-82와 마찬가지로 많은 최신 Casio 계산기에서 1/(2x)로 해석되지만,[22] TI-83와 1996년 이후 출시된 다른 모든 TI 계산기와 마찬가지로 대수적 표기법을 갖는 모든 Hewlett-Packard 계산기에서 (1/2)x로 해석됩니다.[23] 첫 번째 해석이 암시된 곱셈(implied multiplication)의 본성으로 인해 일부 사용자에 의해 예상될 수 있지만, 후자는 곱셈과 나눗셈이 같은 우선순위를 가진다는 표준 규칙에 더 가까우며,[24][25] 여기서 1/2x는 1을 2로 나누고 그 답에 x를 곱하는 것으로 읽습니다.

사용자가 계산기가 표현을 어떻게 해석할지 확신할 수 없을 때, 괄호는 모호성을 제거하기 위해 사용될 수 있습니다.

역시 후위 표기법이라고 알려져 있는 역 폴란드어 표기법(reverse Polish notation) (RPN)은 괄호에 대한 필요 또는 임의의 가능한 모델-별 실행 순서없이 올바른 우선순위의 순서에서 표현을 입력하기 위해 스택(stack)을 사용합니다.[12][10]

Programming languages

일부 프로그래밍 언어는 수학에서 공통적으로 사용되는 순서를 따르는 우선순위 수준을 사용하지만,[17] APL, Smalltalk, Occam, 및 Mary와 같은 다른 언어는 연산자(operator) 우선순위 규칙을 가지고 있지 않습니다 (APL에서, 평가는 엄격하게 오른쪽에서 왼쪽입니다; Smalltalk에서, 그것은 엄격하게 왼쪽에서 오른쪽입니다).

게다가, 많은 연산자가 결합적이지 않기 때문에, 임의의 단일 수준 내의 순서는 16/4/416/(4/4) = 16가 아니라 (16/4)/4 = 1로 해석되도록 보통 왼쪽에서 오른쪽으로 그룹화함으로써 정의됩니다; 그러한 연산자는 아마도 오해의 소지가 있는 "왼쪽 결합적"으로 참조됩니다. 예외가 존재합니다; 예를 들어, 목록에 대한 cons 연산에 해당하는 연산자를 갖는 언어는 보통 그것들을 오른쪽에서 왼쪽으로 그룹화 ("오른쪽 결합적")로 만듭니다; 예를 들어, 하스켈에서, 1:2:3:4:[] == 1:(2:(3:(4:[]))) == [1,2,3,4].

C 언어창시자비교 연산자 위로 비트별 연산자를 이동하는 것이 더 선호되었을 것이라고 C에서 우선순위에 대해 말했습니다 (C에서 그것들 규칙을 차용하는 프로그래밍 언어, 예를 들어 C++, Perl, 및 PHP에 의해 공유됩니다).[26] 어쨌든, 많은 프로그래머는 이 순서에 익숙하게 되었습니다. 많은 C-스타일 언어에서 볼 수 있는 연산자(operators)의 상대적 우선순위 수준은 다음과 같습니다:

1 ()   []   ->   .   :: Function call, scope, array/member access
2 !   ~   -   +   *   &   sizeof   type cast   ++   --   (most) unary operators, sizeof and type casts (right to left)
3 *   /   % MOD Multiplication, division, modulo
4 +   - Addition and subtraction
5 <<   >> Bitwise shift left and right
6 <   <=   >   >= Comparisons: less-than and greater-than
7 ==   != Comparisons: equal and not equal
8 & Bitwise AND
9 ^ Bitwise exclusive OR (XOR)
10 | Bitwise inclusive (normal) OR
11 && Logical AND
12 || Logical OR
13 ? : Conditional expression (ternary)
14 =   +=   -=   *=   /=   %=   &=   |=   ^=   <<=   >>= Assignment operators (right to left)
15 , Comma operator

예제: (주의: 아래 예제에서, '≡'는 "...와 동등입니다"를 의미하기 위해 사용되고, 예제 표현의 일부로 사용되는 실제 할당 연산자로 해석되지 않습니다.)

  • !A + !B(!A) + (!B)
  • ++A + !B(++A) + (!B)
  • A + B * CA + (B * C)
  • A || B && CA || (B && C)
  • A && B == CA && (B == C)
  • A & B == CA & (B == C)

여러 언어로 컴파일되는 소스-에서-소스 컴파일러(source-to-source compiler)는 언어에 걸쳐 서로 다른 연산의 순서 문제를 명시적으로 처리해야 합니다. Haxe는 예를 들어 순서를 표준화하고 그것이 적절한 곳에 대괄호를 삽입함으로써 이를 강제합니다.[27]

이항 연산자 우선순위에 대한 소프트웨어 개발자 지식의 정확성은 소스 코드에서 발생의 빈도를 밀접하게 따르는 것으로 나타났습니다.[28]

See also

Notes

  1. ^ a b Some authors deliberately avoid any omission of parentheses with functions even in the case of single numerical variable or constant arguments (f.e. Oldham in Atlas), whereas other authors (like NIST) apply this notational simplification only conditionally in conjunction with specific multi-character function names (like sin), but don't use it with generic function names (like f).
  2. ^ To avoid any ambiguity, this notational simplification for monomials is deliberately avoided in works such as Oldham's Atlas of Functions or the NIST Handbook of Mathematical Functions.
  3. ^ "Of" is equivalent to division or multiplication, and commonly used especially at primary school level, as in "Half of fifty".
  4. ^ For example, the third edition of Mechanics by Landau and Lifshitz contains expressions such as hPz/2π (p. 22), and the first volume of the Feynman Lectures contains expressions such as 1/2N (p. 6–7). In both books, these expressions are written with the convention that the solidus is evaluated last. This also implies that an expression like 8/2(4) has solution 1 as the omission of the multiplication sign (x * or .) implies that the solidus is evaluated last even if positioned more to the left.

References

  1. ^ a b c d e f g h i j Bronstein, Ilja Nikolaevič; Semendjajew, Konstantin Adolfovič (1987) [1945]. "2.4.1.1. Definition arithmetischer Ausdrücke" [Definition of arithmetic expressions]. Written at Leipzig, Germany. In Grosche, Günter; Ziegler, Viktor; Ziegler, Dorothea (eds.). Taschenbuch der Mathematik [Pocketbook of mathematics] (in German). Vol. 1. Translated by Ziegler, Viktor. Weiß, Jürgen (23 ed.). Thun, Switzerland / Frankfurt am Main, Germany: Verlag Harri Deutsch (and B. G. Teubner Verlagsgesellschaft, Leipzig). pp. 115–120, 802. ISBN 3-87144-492-8. Regel 7: Ist F(A) Teilzeichenreihe eines arithmetischen Ausdrucks oder einer seiner Abkürzungen und F eine Funktionenkonstante und A eine Zahlenvariable oder Zahlenkonstante, so darf F A dafür geschrieben werden. [Darüber hinaus ist noch die Abkürzung Fn(A) für (F(A))n üblich. Dabei kann F sowohl Funktionenkonstante als auch Funktionenvariable sein.]
  2. ^ "Order of Operations: Why?". The Math Doctors. 2019-09-30. Retrieved 2021-10-21.
  3. ^ Weisstein, Eric W. "Precedence". mathworld.wolfram.com. Retrieved 2020-08-22.
  4. ^ Stapel, Elizabeth. "The Order of Operations: PEMDAS". Purplemath. Retrieved 2020-08-22.
  5. ^ Oldham, Keith B.; Myland, Jan C.; Spanier, Jerome (2009) [1987]. An Atlas of Functions: with Equator, the Atlas Function Calculator (2 ed.). Springer Science+Business Media, LLC. doi:10.1007/978-0-387-48807-3. ISBN 978-0-387-48806-6. LCCN 2008937525.
  6. ^ a b Olver, Frank W. J.; Lozier, Daniel W.; Boisvert, Ronald F.; Clark, Charles W., eds. (2010). NIST Handbook of Mathematical Functions. National Institute of Standards and Technology (NIST), U.S. Department of Commerce, Cambridge University Press. ISBN 978-0-521-19225-5. MR 2723248.[1]
  7. ^ a b "Rules of arithmetic" (PDF). Mathcentre.ac.uk. Retrieved 2019-08-02.
  8. ^ "Please Excuse My Dear Aunt Sally (PEMDAS)--Forever!". Education Week - Coach G's Teaching Tips. 2011-01-01.
  9. ^ "What is PEMDAS? - Definition, Rule & Examples". Study.com.
  10. ^ a b c d Vanderbeek, Greg (June 2007). Order of Operations and RPN (Expository paper). Master of Arts in Teaching (MAT) Exam Expository Papers. Lincoln, Nebraska, USA: University of Nebraska. Paper 46. Archived from the original on 2020-06-14. Retrieved 2020-06-14.
  11. ^ Archived at Ghostarchive and the Wayback Machine: Le calcul qui divise : 6÷2(1+2) - Micmaths, retrieved 2021-11-01
  12. ^ a b c d Ball, John A. (1978). Algorithms for RPN calculators (1 ed.). Cambridge, Massachusetts, USA: Wiley-Interscience, John Wiley & Sons, Inc. p. 31. ISBN 0-471-03070-8.
  13. ^ "Order of operations" (DOC). Syllabus.bos.nsw.edu.au. Retrieved 2019-08-02.
  14. ^ "Bodmas Rule - What is Bodmas Rule - Order of Operations". vedantu.com. Retrieved 2019-08-21.
  15. ^ Robinson, Raphael Mitchel (October 1958) [1958-04-07]. "A report on primes of the form k · 2n + 1 and on factors of Fermat numbers" (PDF). Proceedings of the American Mathematical Society. 9 (5). University of California, Berkeley, California, USA: 673–681 [677]. doi:10.1090/s0002-9939-1958-0096614-7. Archived (PDF) from the original on 2020-06-28. Retrieved 2020-06-28.
  16. ^ Zeidler, Eberhard [in German]; Schwarz, Hans Rudolf; Hackbusch, Wolfgang; Luderer, Bernd [in German]; Blath, Jochen; Schied, Alexander; Dempe, Stephan; Wanka, Gert; Hromkovič, Juraj; Gottwald, Siegfried (2013) [2012]. Zeidler, Eberhard [in German] (ed.). Springer-Handbuch der Mathematik I (in German). Vol. I (1 ed.). Berlin / Heidelberg, Germany: Springer Spektrum, Springer Fachmedien Wiesbaden. p. 590. doi:10.1007/978-3-658-00285-5. ISBN 978-3-658-00284-8. (xii+635 pages)
  17. ^ a b Van Winkle, Lewis (2016-08-23). "Exponentiation Associativity and Standard Math Notation". Codeplea - Random thoughts on programming. Archived from the original on 2020-06-28. Retrieved 2016-09-20.
  18. ^ Angel, Allen R. Elementary Algebra for College Students (8 ed.). Chapter 1, Section 9, Objective 3.
  19. ^ "Formula Returns Unexpected Positive Value". Microsoft. 2005-08-15. Archived from the original on 2015-04-19. Retrieved 2012-03-05.
  20. ^ a b "Physical Review Style and Notation Guide" (PDF). American Physical Society. Section IV–E–2–e. Retrieved 2012-08-05.
  21. ^ "Know Your Meme: 8÷2(2+2)".
  22. ^ "Calculation Priority Sequence". support.casio.com. Casio. Retrieved 2019-08-01.
  23. ^ "Implied Multiplication Versus Explicit Multiplication on TI Graphing Calculators". Texas Instruments. 2011-01-16. 11773. Archived from the original on 2016-04-17. Retrieved 2015-08-24.
  24. ^ Zachary, Joseph L. (1997). "Introduction to scientific programming - Computational problem solving using Maple and C - Operator precedence worksheet". Retrieved 2015-08-25.
  25. ^ Zachary, Joseph L. (1997). "Introduction to scientific programming - Computational problem solving using Mathematica and C - Operator precedence notebook". Retrieved 2015-08-25.
  26. ^ Ritchie, Dennis M. (1996). "The Development of the C Language". History of Programming Languages (2 ed.). ACM Press.
  27. ^ Li, Andy (2011-05-02). "6÷2(1+2)=?". Andy Li's Blog. Retrieved 2012-12-31.
  28. ^ Jones, Derek M. "Developer beliefs about binary operator precedence". CVu. 18 (4): 14–21.

Further reading