APL
| Bir Programlama Dili | ||
|---|---|---|
|
| ||
| Geliştirici(ler) | ||
|
Kenneth E. Iverson, Larry Breed, Dick Lathwell, Roger Moore ve diğerleri | ||
| Genel bilgi | ||
| paradigma | Dizi, İşlevsel, Yapılandırılmış, Modüler | |
| Ortaya çıkan | 1966 | |
| Tarafından dizayn edilmiştir | Kenneth E Iverson | |
| Lisans | Sahip, Açık Kaynak | |
APL ( Ap rogramming Language ) , 1957 yılında Kenneth Iverson tarafından geliştirilen ve aynı yıl IBM tarafından işe alındığında 1962'de uygulayan matematiksel gösterimden kaynaklanan bir programlama dilidir .
Özellikler
APL, işlevsel bir dile benzer şekilde bir uygulama dili veya bir şeyi uygulamak için kullanılan bir dildir.
Parametrelenebilir operatörler kullanır, bu nedenle çok özlüdür. Sözdizimi birkaç "operatöre" dayanır ve ASCII kodunda bulunmayan özel bir karakter kümesi kullanır . İşlemler kümesi, soyut lineer cebire dayanmaktadır ve bu da onu vektörler ve matrislerle çalışmak için ideal bir dil haline getirir. Yeni mantıksal veya matematiksel işlemler oluşturmanıza izin veren bir operatör repertuarına sahiptir.
Genelleştirilmiş nokta ve çapraz çarpımlara sahip olarak, tek bir cümle Fortran , Basic , PL1, C , vb. Gibi diğer dillerin birçok satırına çevrilebilir . Çünkü bunlarda bu işlemler ve diğerleri döngüler veya yinelemeli döngüler (döngüler) aracılığıyla uygulanır.
Bunun bir örneği, Fortran - Assembler dilinde yaklaşık 25.000 cümle işgal eden, APL'de yeniden yazıldığında basılı versiyonunda iki sayfa işgal eden devre simülasyon dili SIAL'dir. [ 1 ] Öte yandan, bu kadar üst düzey bir dil olmasına rağmen, bit ölçeğinde manipülasyon ve düşük seviyeli programlama dilleriyle (C, assembler vb.) sözde işlemciler aracılığıyla arayüzler de yapabilmektedir. yardımcılar.
Çalışma zamanında bir rutinden başka rutinlerin oluşturulabilmesi, derlenebilmesi ve yürütülebilmesi özelliğine sahiptir, bu da onu derleyicilerin ve yorumlayıcıların otomatik olarak işlenmesi için çok uygun kılar.
Bazı pratik zorluklar şunlardır:
- Her tuşa atanan operatörleri (APL'nin kendi sembolleri) görebilmeniz için klavyede çıkartmalara (veya kalıcı bir işaretleyici ile işaretlemeye) ihtiyacınız vardır (kullanıcı tarafından istediğiniz zaman ve istediğiniz şekilde yeniden tanımlanabilirler).
- APL'de yazılan programlar çok kısadır ve bu, yeni başlayanlar için belgelemelerini ve anlamalarını uzun sürebilir. Ancak, inisiye için kısalığı ve yürütme sırası (her cümle her zaman sağdan sola yürütülür) takip etmeyi çok kolaylaştırır.
- Yorumlanması (çalışma zamanında), hızı genellikle derlenmiş programlama dillerine sahip uygulamalardan biraz daha yavaştır. Bu nedenle günümüzde işlemcilerin yüksek hızları ile çoğu uygulamada kayda değer bir dezavantaj değildir. Aksine, anında etkileşimli test ve incelemeyi kolaylaştırır.
- "Özgür Yazılım Vakfı" kataloğunda ücretsiz bir sürümü mevcut olmasına rağmen, çoğu APL yorumlayıcısı veya derleyicisi kapalı kaynaktır ve kullanıcıları kodlarını paylaşmazlar, bu da kullanımlarının başka dillere sahip oldukları düzeye yayılmasını engeller. diğerleri arasında Matlab , Mathematica , SAGE , Maxima , Octave gibi aritmetik hesaplamalar yapın.
APL örnekleri
APL, belirli bir denklem sistemine uygularsak, bir denklem sistemini tek bir cümlede çözebilir. Örneğin:
7x + 4y + 2z = 4
6x + 8y + 9z = 7
4x + 2y + 1z = 2
Sadece, sözdizimi şöyle olan BİR TEK APL cümlesini yürütün :
4 7 2 ⌹ 3 3 ρ 7 4 2 6 8 9 4 2 1
ρ ( rho ) operatörünün sayı listesini 3x3'lük bir matriste biçimlendirdiği yer. ⌹ (" domino ") operatörü matrisin tersini hesaplar ve bunu 4 7 2 vektörü ile çarparak her değişken (x, y, z) için çözüm üretir:
0 1.1 -0.2
Yukarıdaki program matris işlemleri için kitaplıkları kullanabilir, Fortran yeniden boyutlandırılabilir dizilere izin verir ve paralel hesaplama için uygundur. Ancak diziler ve altyordamları çağırmak için bazı bildirimler gereklidir ve diğer esnek olmayan dillerde dizilerle altyordamlar oluşturmak için daha da karmaşıktır, çünkü matrisin ve ürünün ters çevrilmesi döngüler aracılığıyla en az yaklaşık olarak kodlanmalıdır. 20 satır.
APL, çok kısa bir şekilde ifade edilebilen cebirsel işlemler hakkında doğrudan düşünmenizi sağlar, böylece çok kısa geliştirme ve test sürelerine izin verir. Bu nedenle Matematik , İstatistik , İşletme, Yapay Zeka , Prototipleme gibi çok çeşitli alanlar için çok uygun bir dildir .
popüler
En iyi bilinen uygulamaları arasında özel efektlerin üretilmesi için Walt Disney filmi Tron'da kullanımı yer almaktadır .
Yazar , merak uyandıran JC Sundman'ın Cheap Complex Devices (Ucuz Kompleks Cihazlar) adlı romanında , kitabın içeriğinin bir bilgisayar tarafından otomatik olarak APL'de üretilen kod kullanılarak yazıldığını ve bu sayede kendisine yaratılış için Douglas R. Hofstadter ödülünü kazandırdığını belirtiyor. romanların bilgisayar tarafından 1997'de yayımlanması. [ 3 ] Bütün bunlar, elbette, edebi bir eserdir.
APL'nin halefleri
Kenneth Iverson daha sonra APL'nin halefi olarak faturalandırılan ve J olarak adlandırılan bir programlama dili geliştirmede ön saflarda yer aldı . J'nin belirli özelliklerinden biri, programları ifade etmek için değişkenleri veya parametreleri işlevlere adlandırmanın gerekli olmadığı düşünülen örtük işlevsel programlama olarak adlandırılan şeydir (Bu örtülü programlama kavramları dile dahil edilmiştir. LogoFE kitaplığındaki logo) . J'de rutinlerin çeşitliliği (APL'de "operatörler" olarak adlandırılır) çok daha fazladır.
Diğer diller üzerindeki etkisi
John Backus , Turing Ödülü dersinde FP/FFP'yi tanıttı . FP işlevsel bir dildir ve FFP, APL uygulama diline dayanan işlevsel formlardır. APL'deki fonksiyonel formlara bir örnek op/vector , operatörü uygulayarak bir vektörü azaltan azaltma işlemidir. +/1 2 3 4 hesaplar , bazı dillerde Lisp'in 1 + 2 + 3 + 4 bazı lehçeleri gibi diğer işlevsel dillere miras kalan küçültme adını korumuştur.
Referanslar
- ↑ M. Alfonseca, "SIAL/71, a Continuous Simulation Compiler", "Advances in Cybernetics and Systems", Ed. J. Rose, Gordon and Breach, Londra, Cilt 3, 1974, 1319-1340.
- ↑ David Selby, "İş zekası ormanından notlar". APL '02: APL üzerine 2002 konferansının bildirileri, 2002, sayfa 190-197.
- ^ "Islak makine" . 30 Mart 2009 tarihinde kaynağından arşivlendi . 2009 alındı .
Dış bağlantılar
- APL - Mi Universo HACT KE Iverson'un dilinin ve biyografisinin sözdizimsel kurallarına İspanyolca kısa giriş
- TEMEL dil IBM 5100'de APL ile birlikte kullanılan programlama dili
- IBM 5100 IBM 5100 Taşınabilir Bilgisayar, IBM PC'den altı yıl önce, Eylül 1975'te tanıtılan bir masaüstü bilgisayardı.