Meskipun ada prekursor yang lebih tua, yang berpengaruh matematikawan Perancis Rene Descartes biasanya dikreditkan untuk memperkenalkan eksponen superscripted (a b ) ke dalam tulisan matematika, dalam karyanya Geometri yang diterbitkan pada tahun 1637. Ini adalah notasi masih universal digunakan dalam matematika hari ini.
Fortran adalah bahasa pemrograman tertua yang banyak digunakan untuk perhitungan numerik yang menyediakan operator eksponensial, dimulai pada tahun 1954. Operasi eksponensial dilambangkan dengan tanda bintang ganda **
. Perlu dicatat bahwa banyak komputer pada saat itu menggunakan pengkodean karakter 6-bit yang tidak memberikan karakter tanda sisipan ^
. Penggunaan **
kemudian diadopsi oleh pencipta berbagai bahasa pemrograman yang lebih baru yang menawarkan operasi eksponensial, seperti Python.
Set karakter yang diadopsi secara luas pertama yang berisi tanda sisipan ^
adalah pengkodean ASCII 7-bit yang pertama kali distandarisasi pada tahun 1963. Bahasa pemrograman tertua yang saya ketahui yang menggunakan tanda sisipan untuk menunjukkan eksponensial adalah BASIC, yang bertanggal tahun 1964. Hampir sama waktu IBM mengadopsi pengkodean karakter EBCDIC , yang juga termasuk tanda sisipan ^
.
Bahasa C muncul pada tahun 1972. Bahasa ini tidak menyediakan operator eksponensial, melainkan mendukung eksponen melalui fungsi pustaka seperti pow()
. Oleh karena itu, tidak ada simbol yang perlu dikesampingkan untuk eksponensial dalam bahasa C, dan lainnya, nanti, dalam keluarga C, seperti C ++ dan CUDA.
Di sisi lain, dan tidak umum untuk bahasa pemrograman hingga saat itu, C menyediakan simbol untuk operasi bitwise. Jumlah karakter khusus yang tersedia dalam ASCII 7-bit terbatas, dan karena ada "afinitas alami" dari operasi lain untuk karakter khusus tertentu, misalnya &
untuk DAN dan ~
untuk TIDAK, tidak ada begitu banyak pilihan untuk simbol untuk XOR .
Saya tidak mengetahui alasan yang dipublikasikan yang diberikan oleh Ritchie atau Kernighan tentang mengapa mereka memilih ^
untuk menunjukkan XOR secara khusus; Sejarah singkat Ritchie tentang C tidak membahas masalah ini. J melihat spesifikasi untuk prekursor untuk C, bahasa B , mengungkapkan bahwa itu tidak memiliki operator XOR, tetapi sudah digunakan semua karakter khusus selain ^
, $
, @
, #
.
[Pembaruan] Saya mengirim email ke Ken Thompson, pencipta B dan salah satu co-pencipta C, menanyakan tentang alasan memilih ^
sebagai operator XOR C, dan meminta izin untuk membagikan jawaban di sini. Jawabannya (sedikit diformat ulang untuk dibaca):
Dari: Ken Thompson
Terkirim: Kamis, 29 September 2016 4:50
Kepada: Norbert Juffa
Subjek: Re: Dasar Pemikiran dibalik pemilihan tanda kuret sebagai operator XOR di C?
itu adalah pilihan acak dari karakter yang tersisa.
jika saya harus melakukannya lagi (yang saya lakukan) saya akan menggunakan operator yang sama untuk xor (^) dan komplemen bit (~).
karena ^ sekarang adalah operator yang lebih dikenal, in go, ^ adalah xor dan juga pelengkap.
Penggunaan ^
untuk eksponensial dalam "matematika" yang Anda rujuk sebenarnya adalah penggunaan yang ditetapkan jauh di kemudian hari untuk sistem pengaturan huruf seperti Knuth's TeX yang bertanggal tahun 1978, antarmuka baris perintah untuk sistem aljabar seperti Mathematica yang tanggal tahun 1988, dan grafik kalkulator di awal 1990-an.
Mengapa produk-produk ini mengadopsi penggunaan ^
eksponensial? Dalam kasus kalkulator saya curiga pengaruh BASIC. Sepanjang 1980-an itu adalah bahasa pemrograman pertama yang sangat populer dan juga tertanam ke dalam produk perangkat lunak lainnya. Oleh karena itu, notasi ini sudah biasa bagi banyak pembeli kalkulator. Ingatan saya tidak jelas, tetapi saya percaya bahkan ada kalkulator yang benar-benar menjalankan penerjemah BASIC sederhana.