Scala (programlama dili)
Paradigması | Çok paradigmalı; fonksiyonel, nesne yönelimli, emirsel (imperative) |
---|---|
İlk çıkışı | 20 Ocak 2004 | )
Tasarımcı | Martin Odersky |
Geliştirici | İsviçre Federal Teknoloji Enstitüsü Lozan Programlama Yöntemleri Laboratuvarı |
Kararlı sürüm | 3.5.0[1] (22 Ağustos 2024) |
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, 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[2] Scala'nın tasarım kararlarının çoğu Java eleştirilerini ele almayı amaçlıyor.
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.[3] 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.[4]
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.[5]
Scala adı, ölçeklenebilirlik ve dilin bir portmanteau olup, kullanıcılarının talepleriyle büyümek üzere tasarlandığını ifade eder.[6]
Kaynakça
[değiştir | kaynağı değiştir]- Scala'nın sitesi23 Eylül 2020 tarihinde Wayback Machine sitesinde arşivlendi.
- ^ Hata: Referans düzgün görüntülenemiyor. Bilgi için belgeleme sayfasına bakınız.
- ^ 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.
- ^ "Frequently Asked Questions: Java Interoperability". Scala-lang.org. 17 Ağustos 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 6 Şubat 2015.
- ^ Martin Odersky (17 Haziran 2020). Martin Odersky: A Scala 3 Update (video) (İngilizce). YouTube. Etkinlik zamanı: 36.35-45.08. 21 Aralık 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Nisan 2021.
- ^ "Effect expt". scala. 20 Ekim 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Temmuz 2022.
- ^ 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.
Programlama dili ile ilgili bu madde taslak seviyesindedir. Madde içeriğini genişleterek Vikipedi'ye katkı sağlayabilirsiniz. |