Axiom (bilgisayarlı cebir sistemi)

**Axiom**, özgür, genel amaçlı bir bilgisayarlı cebir sistemidir. Bir yorumlayıcı ortamı, bir derleyici ve güçlü tipleme hiyerarşisi tanımlayan bir kütüphaneden oluşur.

## Tarihçe
**Scratchpad** adlı iki bilgisayar cebir sistemi IBM tarafından geliştirilmiştir. İlki 1965 yılında James Griesmer tarafından Ralph Gomory'nin isteği üzerine başlatılmış ve Fortran dilinde yazılmıştır. Bu yazılımın geliştirilmesi herhangi bir halka açık sürümden önce durdurulmuştur. Orijinal adı **Scratchpad II** olan ikinci Scratchpad, 1977'den itibaren Richard Dimick Jenks yönetiminde Thomas J. Watson Araştırma Merkezi'nde geliştirildi.

Tasarım esas olarak Richard D. Jenks (IBM Research), James H. Davenport (Bath Üniversitesi), Barry M. Trager (IBM Research), David Y.Y. Yun (Southern Methodist University) ve Victor S. Miller'a (IBM Research) aittir. Projenin ilk danışmanları David Barton (University of California, Berkeley) ve James W. Thatcher (IBM Research) idi. Uygulamada Robert Sutor (IBM Research), Scott C. Morrison (University of California, Berkeley), Christine J. Sundaresan (IBM Research), Timothy Daly (IBM Research), Patrizia Gianni (Pisa Üniversitesi), Albrecht Fortenbacher (Universitaet Karlsruhe), Stephen M. Watt (IBM Research ve Waterloo Üniversitesi), Josh Cohen (Yale Üniversitesi), Michael Rothstein (Kent State University), Manuel Bronstein (IBM Research), Michael Monagan (Simon Fraser Üniversitesi), Jonathan Steinbach (IBM Research), William Burge (IBM Research), Jim Wen (IBM Research), William Sit (City College of New York) ve Clifton Williamson (IBM Research)

Scratchpad II, IBM 1990 civarında ticari bir ürün haline getirmeye karar verdiğinde **Axiom** olarak yeniden adlandırıldı. Birkaç yıl sonra NAG'a satıldı. 2001 yılında piyasadan çekildi ve Değiştirilmiş BSD Lisansı altında yeniden yayımlandı. O zamandan beri projenin baş geliştiricisi Tim Daly'dir.

2007 yılında, "proje hedefleri konusunda ciddi anlaşmazlık" sonrasında Axiom iki kez çatallandı ve iki farklı açık kaynaklı proje ortaya çıktı: **OpenAxiom** ve **[[FriCAS]]**. Axiom projesi Tim Daly tarafından geliştirilmeye devam etti.

## Belgelendirme
Axiom, bir kolay anlaşılır programdır. Kaynak kodu, `axiom-developer.org` web sitesinde bulunan bir dizi cilt halinde kullanıma sunulmaktadır. Bu ciltler sistemin gerçek kaynak kodunu içermektedir.

Halihazırda mevcut olan belgeler şunlardır:
* İçindekiler: 
* Cilt 0:  — Ana ders kitabı
* Cilt 1:  — Basit bir giriş
* Cilt 2:  — Etki alanı (domain) kullanımına ilişkin ayrıntılı örnekler (tamamlanmamış)
* Cilt 3:  — Yönlendirmeli program yazma örnekleri (tamamlanmamış)
* Cilt 4:  — Geliştiricilere özgü konular üzerine kısa makaleler (tamamlanmamış)
* Cilt 5:  — Axiom yorumlayıcısı için kaynak kodu (tamamlanmamış)
* Cilt 6:  — Sistem komutları ve betik dosyaları için kaynak kodu (tamamlanmamış)
* Cilt 7:  — X11 Hyperdoc yardım tarayıcısının kaynak kodu ve açıklaması
** Cilt 7.1  — Hyperdoc sayfaları için kaynak kodu
* Cilt 8:  — X11 Grafik alt sistemi için kaynak kodu
** Cilt 8.1  — Axiom resimlerinden oluşan bir galeri
* Cilt 9:  — Spad derleyicisi için kaynak kodu (tamamlanmamış)
* Cilt 10:  — Uygulama sorunları üzerine makaleler (tamamlanmamış)
** Cilt 10.1:  — Arka plan teorisi içeren makaleler
** Cilt 10.2:  — Axiom kategorileri için kaynak kodu
** Cilt 10.3:  — Axiom etki alanları (domain) için kaynak kodu
** Cilt 10.4:  — Axiom paketleri için kaynak kodu
** Cilt 10.5:  — Axiom numerikleri için kaynak kodu
* Cilt 11:  — Axiom Firefox tarayıcı ön yüzü için kaynak sayfalar
* Cilt 12:  — Axiom Crystal ön yüzü için kaynak kodu (tamamlanmamış)
* Cilt 13:  — Axiom Cebri kanıtı (tamamlanmamış)
* Cilt 15: 
* Bibliyografya:  —Literatür referansları
* Bug Listesi:  — Yazılım hata Listesi
* Referans Kartı:  — Yararlı fonksiyonlar özeti

## Videolar
Axiom projesi dokümantasyon sağlamaya büyük önem vermektedir. Kısa bir süre önce proje, `axiom-developer.org` web sitesinde de bulunan bir dizi eğitici videonun ilkini duyurdu. İlk video Axiom bilgi kaynakları hakkında ayrıntılı bilgi vermektedir.

## Felsefe
Axiom projesi, "30 Yıllık Ufuk (30 Year Horizon)" üzerine odaklanmaktadır. Temel felsefe, Axiom'un yeni nesil hesaplamalı matematikçiler için yararlı olabilmesi için birkaç temel özellik geliştirmesi gerektiğidir. Knuth'un kolay anlaşılır programlama tekniği kaynak kodu boyunca kullanılmaktadır. Axiom, algoritmaların doğruluğunu kanıtlamak için kanıt teknolojisini kullanmayı planlamaktadır (Coq ve ACL2 gibi).

Axiom, sürekli sürüm sürecinin bir parçası olarak Docker konteynerler kullanır. En son görüntü, docker ve komutlar kullanılarak herhangi bir platformda kullanılabilir:


```text
docker pull daly/axiom

docker run -i -t daly/axiom axiom
```


## Tasarım
Axiom'da her nesne bir türe sahiptir. Türlere örnek olarak matematiksel yapılar (örneğin halkalar, cisimler, polinomlar) ve bilgisayar bilimlerindeki veri yapıları (örneğin listeler, ağaçlar, özet tabloları) verilebilir.

Bir fonksiyon, argüman olarak bir tür alabilir ve geri dönüş değeri de bir tür olabilir. Örneğin, `Fraction` argüman olarak bir `IntegralDomain` alan ve argümanının kesirler alanını döndüren bir fonksiyondur. Başka bir örnek olarak, rasyonel girdileri olan 4\times 4 matrislerinin halkası `SquareMatrix(4, Fraction Integer)` olarak oluşturulabilir. Elbette, bu alanda çalışırken, `1` kimlik matrisi olarak yorumlanır ve `A^-1`, eğer varsa, `A` matrisinin tersini verir.

Birkaç işlem aynı isme sahip olabilir ve hem argümanların hem de sonucun türleri hangi işlemin uygulanacağını belirlemek için kullanılır (bkz. fonksiyon aşırı yükleme).

Axiom, SPAD adı verilen bir uzantı dili ile birlikte gelir. Axiom'un tüm matematiksel bilgisi bu dilde yazılır. Yorumlayıcı kabaca aynı dili kabul eder.

## Özellikler
Yorumlayıcı ortamında Axiom, tip kalıtımı ve sezgisel bir algoritma kullanarak açık tip ek açıklamalarını çoğunlukla gereksiz hale getirir.

Etkileşimli tarayıcı benzeri bir yardım sistemi olan 'HyperDoc' özelliğine sahiptir ve iki ve üç boyutlu grafikleri görüntüleyebilir, ayrıca döndürme ve aydınlatma gibi etkileşimli özellikler sağlar. Ayrıca Emacs için özel bir etkileşim modunun yanı sıra TeXmacs editörü için bir eklentiye sahiptir.


Dosya:AxiomHyperDoc.png|
Dosya:Axiomfirefox.jpg|
Dosya:Heatequation.jpg|
Dosya:Matrixinmatrix.jpg|
Dosya:RischIntegration.jpg|


Axiom, Manuel Bronstein ve Barry Trager tarafından yapılan temel integral fonksiyonu için Risch algoritmasının bir uygulamasına sahiptir. Bu uygulama çoğu temel ters-türevi ve var olup olmadıklarını bulabilirken, bazı uygulanmamış dallara sahiptir ve integral alma sırasında bu tür durumlarla karşılaşıldığında bir hata verir.

## Ayrıca bakınız
* A# programlama dili
* Aldor programlama dili
* Bilgisayarlı cebir sistemleri listesi

## Kaynakça

## Konuyla ilgili okumalar
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* Timothy Daly "Axiom -- Thirty Years of Lisp"
* Timothy Daly "Axiom" Invited Talk, Free Software Conference, Lyon, France, May, 2002
* Timothy Daly "Axiom" Invited Talk, Libre Software Meeting, Metz, France, July 9–12, 2003

## Dış bağlantılar

* Axiom Homepage
* Online sandbox to try Axiom
* Source code repositories: Github, SourceForge, GNU Savannah
* Jenks, R.D. and Sutor, R. "Axiom, The Scientific Computation System"
* Daly, T. "Axiom Volume 1: Tutorial"

Yazılım çatallanmaları:
* OpenAxiom ()
* FriCAS ()