Daha eski öncüller olmasına rağmen, etkili Fransız matematikçi Rene Descartes, genellikle 1637'de yayınlanan Geometrie çalışmasında, matematiksel yazıya ( b ) üstlenilmiş üstellerin tanıtılması için kredilendirildi .
Fortran, üstelleştirme operatörü sağlayan sayısal hesaplamalar için yaygın olarak kullanılan en eski programlama dilidir, 1954 yılına dayanmaktadır. Üst üssü işlem, çift yıldız işaretiyle belirtilir **
. O sırada birçok bilgisayarın, bir çizgi karakteri sağlamayan 6 bitlik karakter kodlamaları kullandığı belirtilmelidir ^
. Kullanımı **
daha sonra Python gibi bir üstelleştirme operasyonu sunan çeşitli yeni programlama dillerinin yaratıcıları tarafından benimsendi.
Şeridi içeren ilk yaygın olarak kabul edilen karakter kümesi , ilk olarak 1963'te standartlaştırılmış olan ^
7 bitlik ASCII kodlamasıydı. İlk olarak 1963'te standardize edilmiş olan şapka işaretini kullandım. Farkında olduğum en eski programlama dili, 1964'e kadar uzanan BASIC'dir. IBM , aynı zamanda şapka da içeren EBCDIC karakter kodlamasını kabul etti ^
.
C dili, 1972'de ortaya çıktı. Bir üs işletmecisi sağlamaz, bunun yerine, kütüphane işlevleri aracılığıyla üstbilgiyi destekler pow()
. Bu nedenle, C'deki üstelik ve diğer C - ailesindeki dilleri (C ++ ve CUDA gibi) bir kenara bırakmak için hiçbir sembolün kullanılması gerekmez.
Öte yandan ve o zamana kadar dilleri programlamak için nadir olan, C bitsel işlemler için semboller sağlar. 7-bit ASCII'de bulunan özel karakterlerin sayısı sınırlıdır ve bazı işlemlerin belirli özel karakterlere “doğal afinitesi” olduğundan, örneğin &
VE ve ~
NOT için, XOR sembolü için o kadar fazla seçenek yoktu. .
Neden XOR'u ^
belirtmeyi seçtikleri konusunda Ritchie veya Kernighan tarafından yayınlanan bir yayınlanmış mantığın farkında değilim ; Ritchie'nin C kısa tarihi bu konuda sessiz. C habercisi için şartname bir bakış dili B , bir XOR operatörünü olmadığını ortaya koymaktadır, ancak zaten dışındaki tüm özel karakterleri kullanılan ^
, $
, @
, #
.
[Güncelleme] B’nin yaratıcısı olan B’nin ve C’nin ortak yapımcılarından Ken Thompson’a e-posta gönderdim ^
, C’nin XOR operatörü olarak seçmenin gerekçesini sordum ve cevabı burada paylaşmak için izin istedim. Cevabı (okunabilirlik için biraz biçimlendirilmiş):
Gönderen: Ken Thompson
Gönderildi: Perşembe, 29 Eylül 2016 04:50 AM
Kime: Norbert Juffa
Konu: Re: C'deki XOR operatörü olarak şapka seçiminin ardındaki mantık ?
Kalan karakterlerin rastgele bir seçimiydi.
Tekrar yapmak zorunda olsaydım (ki yaptım), xor (^) ve bit tamamlayıcısı (~) için aynı operatörü kullanırdım.
çünkü ^ şimdi daha iyi bilinen operatör, halindeyken, ^, xor ve aynı zamanda tamamlayıcıdır.
Kullanımı ^
Eğer işaret ettiğini "matematik" in üs için aslında hangi tarih 1988 için Mathematica olarak cebir sistemleri için böyle Knuth'un TeX gibi 1978'e kadar olan tarihleri, komut satırı arayüzü sistemlerini dizgi ve grafiğe için çok daha sonraki bir tarihte kurulmuş kullanımıdır 1990'ların başında hesap makineleri.
Neden bu ürünler ^
üstel kullanım için kullanıldığını benimsemiştir ? Hesap makineleri durumunda, BASIC'in etkisinden şüpheleniyorum. 1980'lerde çok popüler bir ilk programlama diliydi ve diğer yazılım ürünlerine de dahil edildi. Bu nedenle gösterim, hesap makinelerinin birçok alıcısına aşina olmuş olacaktır. Hafızam belirsiz, ancak basit BASIC tercümanları çalıştıran hesap makinelerinin bile olduğuna inanıyorum.