답변:
더 오래된 선구자가 있었음에도 불구하고, 영향력있는 프랑스 수학자 인 Rene Descartes는 일반적으로 1637 년에 출판 된 그의 작업 Geometrie 에서 위첨자 지수 (a b )를 수학 글쓰기 에 도입 한 것으로 유명 합니다.
포트란은 지수 연산을 제공하는 숫자 계산에 널리 사용되는 가장 오래된 프로그래밍 언어이며, 1954 년으로 거슬러 올라갑니다. 지수 연산은 이중 별표로 표시됩니다 **
. 당시 많은 컴퓨터 는 캐럿 문자를 제공하지 않은 6 비트 문자 인코딩 을 사용했습니다 ^
. **
이후 파이썬과 같은 지수 연산을 제공하는 다양한 최신 프로그래밍 언어를 만든 사람들이이 사용을 채택했습니다.
캐럿 ^
이 포함 된 첫 번째 널리 채택 된 문자 집합 은 1963 년에 처음 표준화 된 7 비트 ASCII 인코딩이었습니다. 필자가 알고있는 가장 오래된 프로그래밍 언어는 지수를 나타 내기 위해 캐럿을 사용한 것으로 BASIC이며 1964 년으로 거슬러 올라갑니다. IBM 은 캐럿을 포함하는 EBCDIC 문자 인코딩을 채택했습니다 ^
.
C 언어는 1972 년에 등장했습니다. 지수 연산자는 제공하지 않고, 같은 라이브러리 함수를 통한 지수화를 지원합니다 pow()
. 따라서 C 및 C ++ 및 CUDA와 같은 C 계열 언어의 지수화를 위해 기호를 따로 따로 설정할 필요가 없습니다.
반면에, 그 당시까지 프로그래밍 언어에서는 흔하지 않은 C는 비트 연산을위한 기호를 제공합니다. 7 비트 ASCII에서 사용할 수있는 특수 문자의 수는 제한되어 있으며 특정 특수 문자 (예 : &
AND 및 ~
NOT)에 대한 다른 작업의 "자연적 선호도" 가 있었기 때문에 XOR 기호에 대한 선택이 많지 않았습니다. .
Ritchie 또는 Kernighan이 ^
XOR을 구체적으로 표시 하기 로 선택한 이유에 대해 제공된 근거를 알지 못합니다 . 리치의 짧은 C 역사는 이 문제에 대해 침묵하고있다. C의에 전구체의 사양에보기 언어 B는 , 그것이 XOR 연산자를 가지고 있지 않은 것을 알 수 있지만, 이미 이외의 모든 특수 문자를 사용 ^
, $
, @
, #
.
[업데이트] 저는 B의 제작자이자 C의 공동 제작자 중 한 사람인 Ken Thompson에게 ^
C의 XOR 연산자로 선택하는 근거에 대한 질문을하고 여기에 답변을 공유 할 수있는 권한을 요청하는 이메일을 보냈습니다 . 그의 답변 (가독성을 위해 약간 재구성) :
보낸 사람 : Ken Thompson 보낸
날짜 : 2016 년 9 월 29 일 목요일 오전 4:50받는 사람 : Norbert Juffa
제목 : Re : C에서 XOR 연산자로 캐럿을 선택한 이유는 무엇입니까?남은 캐릭터를 무작위로 선택했습니다.
내가 그것을 다시 수행해야한다면 (내가 한) xor (^) 및 비트 보수 (~)에 동일한 연산자를 사용합니다.
^는 이제 더 잘 알려진 연산자이기 때문에 ^는 xor이고 또한 보수입니다.
^
당신이 말하는 "수학"에서의 지수 의 사용 은 실제로 1978 년에 시작된 Knuth의 TeX와 같은 조판 시스템, 1988 년까지의 Mathematica와 같은 대수 시스템에 대한 명령 행 인터페이스 및 그래프 작성을 위해 훨씬 나중에 설립 된 사용법입니다. 1990 년대 초의 계산기.
이 제품들은 왜 ^
지수 의 사용을 채택 했습니까? 계산기의 경우 BASIC의 영향을 의심합니다. 1980 년대에이 언어는 매우 인기있는 첫 프로그래밍 언어였으며 다른 소프트웨어 제품에도 포함되었습니다. 따라서이 표기법은 많은 계산기 구매자에게 친숙했을 것입니다. 내 기억은 모호하지만 실제로 간단한 기본 통역사를 운영하는 계산기조차 있다고 생각합니다.
^
합니다 . 그리고 위첨자에는 "위"문자를, 아래 첨자에는 "아래"문자 ( ) 를 사용하는 것이 좋습니다 . _
^
위 화살표를 제안 한다는 것을 동의합니다 . 나는 도날드 크 누스가 ^
TeX에서 지수화에 사용 하기로 한 그의 결정에 관해 문의하는 이메일에 답장을 보낼 것이라고 확신 하지만, TAOCP 완료와 같은 더 중요한 일에 바쁘다는 것을 감안할 때, 나는 그 단계를 원하지 않았다. 그것).