Scala (programlama dili)

Scala, hem nesne yönelimli programlamayı hem de fonksiyonel programlamayı destekleyen, statik olarak yazılmış güçlü bir genel amaçlı programlama dilidir. Kısa ve öz olacak şekilde tasarlanan[1] Scala'nın tasarım kararlarının çoğu Java eleştirilerini ele almayı amaçlıyor.

Scala (programlama dili)
Scala-full-color
Paradigması Çok paradigmalı; fonksiyonel, nesne yönelimli, emirsel (imperative)
İlk çıkışı 20 Ocak 2004 (18 yıl önce) (2004-01-20)
Tasarımcı Martin Odersky
Geliştirici İsviçre Federal Teknoloji Enstitüsü Lozan Programlama Yöntemleri Laboratuvarı
Kararlı sürüm

3.1.1

(21 Ocak 2022 (10 ay önce) (2022-01-21))
Tip sistemi statik, güçlü, structural
Etkilendikleri Erlang, Haskell, Java, F#, Scheme
Etkiledikleri F#, C#, Kotlin
Platformu

Java Sanal Makinesi (JVM)

JavaScript (Scala.js)
Lisans Apache 2.0
Olağan dosya uzantıları .scala, .sc
Web sitesi scala-lang.org

Scala kaynak kodu Java bayt koduna derlenebilir ve bir Java sanal makinesinde (JVM) çalıştırılabilir. Scala ayrıca bir tarayıcıda veya doğrudan yerel bir yürütülebilir dosyada çalıştırılmak üzere JavaScript'e derlenebilir. JVM'de Scala, her iki dilde yazılmış kitaplıklara doğrudan Scala veya Java üzerinden ulaşılabilmesi için Java ile birlikte çalışabilirliği sağlar. Java gibi, Scala da nesne yönelimlidir ve C diline benzeyen küme ayracı olarak adlandırılan bir sözdizimi kullanır.[2] Scala 3'ten beri, blokları yapılandırmak için girinti kullanma seçeneği de vardır ve kullanılması tavsiye edilir. Martin Odersky, bunun Scala 3'te sunulan en verimli değişiklik olduğunu söyledi.[3]

Java'dan farklı olarak Scala, körleme, değişmezlik, tembel değerlendirme ve kalıp eşleştirme dahil olmak üzere fonksiyonel programlama dillerinin (Scheme, Standard ML ve Haskell gibi) birçok özelliğine sahiptir. Ayrıca cebirsel veri türlerini, kovaryans ve kontravaryansı, higher-order types (ancak higher-rank types değil), anonim türleri, operatör aşırı yüklemesini, isteğe bağlı parametreleri, adlandırılmış parametreleri, ham dizeleri ve yalnızca deneysel bir istisnayı destekleyen gelişmiş bir tür sistemine sahiptir.[4]

Scala adı, ölçeklenebilirlik ve dilin bir portmanteau olup, kullanıcılarının talepleriyle büyümek üzere tasarlandığını ifade eder.[5]

KaynakçaDüzenle

  1. Scala'nın sitesi23 Eylül 2020 tarihinde Wayback Machine sitesinde arşivlendi.
  1. ^ Potvin, Pascal; Bonja, Mario (24 Eylül 2015). An IMS DSL Developed at Ericsson. Lecture Notes in Computer Science. 7916. arXiv:1509.07326 $2. doi:10.1007/978-3-642-38911-5. ISBN 978-3-642-38910-8. 
  2. ^ "Frequently Asked Questions: Java Interoperability". Scala-lang.org. 17 Ağustos 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Şubat 2015. 
  3. ^ Martin Odersky (36:35–45:08). Martin Odersky: A Scala 3 Update (video) (İngilizce). YouTube. 21 Aralık 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Nisan 2021.  Tarih değerini gözden geçirin: |tarih= (yardım)
  4. ^ "Effect expt". scala. 20 Ekim 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Temmuz 2022. 
  5. ^ Loverdo, Christos (2010). Steps in Scala: An Introduction to Object-Functional Programming. Cambridge University Press. s. xiii. ISBN 9781139490948. 12 Eylül 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Temmuz 2014.