Scala (bahasa pemrograman): Perbedaan antara revisi

Dari Wikipedia bahasa Indonesia, ensiklopedia bebas
Konten dihapus Konten ditambahkan
HsfBot (bicara | kontrib)
k Bot: Perubahan kosmetika
kTidak ada ringkasan suntingan
Baris 38: Baris 38:
* <span class="url">[http://www.scala-lang.org/ Website resmi]</span>{{Official website}}
* <span class="url">[http://www.scala-lang.org/ Website resmi]</span>{{Official website}}
* [http://www.scala-tribes.org/ Komunitas Scala di seluruh dunia]
* [http://www.scala-tribes.org/ Komunitas Scala di seluruh dunia]

{{Java (platform perangkat lunak)}}


[[Kategori:Keluarga bahasa pemrograman Java]]
[[Kategori:Keluarga bahasa pemrograman Java]]

Revisi per 18 Mei 2017 14.18

Scala
ParadigmaMulti-paradigm: functional, object-oriented, imperative, concurrent
Dirancang olehMartin Odersky
PengembangProgramming Methods Laboratory of École Polytechnique Fédérale de Lausanne
Rilis perdana20 Januari 2004; 20 tahun lalu (2004-01-20)
Rilis stabil
2.12.1 / 5 Desember 2016; 7 tahun lalu (2016-12-05)[1]
Tipe sistemstatic, strong, inferred, structural
LisensiBSD 3-clause[2]
Situs webwww.scala-lang.org
Repositoriwww.scala-lang.org
Terpengaruh oleh
Eiffel, Erlang, Haskell,[3] Java,[4] Lisp,[5] Pizza,[6] Standard ML,[4] OCaml,[4] Scheme,[4] Smalltalk, Oz
Mempengaruhi
Ceylon, Fantom, F#, Kotlin, Lasso, Red
Sunting kotak info
Sunting kotak info • L • B
Info templat
Bantuan penggunaan templat ini

Scala (/ˈskɑːlɑː/ SKAH-lah)[7] adalah bahasa pemrograman guna umum yang menyediakan dukungan untuk pemrograman fungsional serta kuat jenis sistem statik  yang kuat.Dirancang untuk menjadi ringkas,[8] Secara umum, tujuan dibuatnya Scala adalah kritisi untuk bahasa pemrograman Java.

Scala kode sumber dibuat untuk dapat dikompilasi dengan Java bytecode, sehingga mengakibatkan eksekusi kode berjalan pada mesin virtual Java. Scala menyediakan bahasa interoperabilitas dengan Java, sehingga perpustakaan yang ditulis dalam dua bahasa ini dapat dirujuk langsung di Scala atau kode Java.[9] Seperti Java, Scala adalah bahasa yang berorientasi objek, dan menggunakan sintaks-kriting mengingatkan pada bahasa pemrograman C. Tidak seperti Java, Scala memiliki banyak fitur dari pemrograman fungsional bahasa seperti Skema, Standar ML dan Haskell, termasuk currying, type inference, ketetapan, evaluasi malas, dan pencocokan pola. Ini juga memiliki lanjutan jenis sistem pendukung jenis data aljabar, covariance dan contravariance, jenis perintah tinggi (tapi tidak jenis lebih tinggi-peringkat), dan jenis anonim . Fitur lain dari Scala tidak hadir di Jawa termasuk operator overloading, optional parameter, parameter bernama, string baku, dan tidak ada pengecualian terperiksa .

Nama Scala adalah lakuran dari scalable dan language, yang berarti bahwa itu dirancang untuk tumbuh dengan tuntutan penggunanya.[10]

Sejarah

Desain Scala dimulai pada tahun 2001 di École Polytechnique Fédérale de Lausanne (EPFL) oleh Martin Odersky. Hal ini diikuti dari bekerja pada Corong, sebuah bahasa pemrograman yang menggabungkan ide-ide dari pemrograman fungsional dan Petri nets.[11] Odersky sebelumnya bekerja pada Generic Javadan javac, Sun Java compiler.

Setelah internal yang rilis pada akhir tahun 2003, Scala dirilis ke publik pada awal tahun 2004 di platform Java,[12] dan pada .NET Framework pada bulan juni 2004.[13] versi kedua (v2.0) diikuti pada bulan Maret 2006. .NET dukungan resmi turun pada tahun 2012.[14]

Meskipun Scala memiliki dukungan yang luas untuk pemrograman fungsional dari awal, Jawa tetap yang sebagian besar berorientasi objek bahasa sampai masuknya ekspresi lambda dengan Jawa 8 di tahun 2014.

Platform dan lisensi

Scala berjalan pada platform Java (Java virtual machine) dan kompatibel dengan yang ada di Jawa program. Sebagai Android aplikasi yang biasanya ditulis di Jawa dan diterjemahkan dari bytecode Java ke Dalvik bytecode (yang selanjutnya dapat diterjemahkan ke asli kode mesin selama instalasi) ketika dikemas, Scala Jawa kompatibilitas membuatnya cocok untuk pengembangan Android, lebih jadi ketika fungsional pendekatan yang lebih disukai.[15] Scala juga dapat mengkompilasi untuk JavaScript, sehingga memungkinkan untuk menulis Scala program-program yang dapat berjalan di web browser.[16]

Contoh-contoh

Contoh "Hello World"

Program Hello World yang ditulis pada bahasa pemrograman Scala memiliki struktur seperti:

 object HelloWorld extends App {
   println("Hello, World!")
 }

Tidak seperti aplikasi pemrograman tunggal dari Java, bahasa pemrograman ini tidak membutuhkan suatu deklarasi kelas statik; sebuah object tunggal dibuat dengan menambahkan kata kunci object di dalamnya.

Ketika pengguna menyimpan dengan nama HelloWorld.scala, pengguna dapat menjalankan kompilasi dengan perintah

$ scalac HelloWorld.scala

dan menjalankan dengan

$ scala HelloWorld

This is analogous to the process for compiling and running Java code. Indeed, Scala's compiling and executing model is identical to that of Java, making it compatible with Java build tools such as Apache Ant.

Referensi

  1. ^ "Scala 2.12.1 is now available!". 2016-12-05. Diakses tanggal 2016-12-05. 
  2. ^ "Scala 2.11.1 is now available!". 
  3. ^ Fogus, Michael (6 August 2010). "MartinOdersky take(5) toList". Send More Paramedics. Diakses tanggal 2012-02-09. 
  4. ^ a b c d Odersky, Martin (11 January 2006). "The Scala Experiment – Can We Provide Better Language Support for Component Systems?" (PDF). Diakses tanggal 2016-06-22. 
  5. ^ "Scala Macros". 
  6. ^ Martin Odersky et al., An Overview of the Scala Programming Language, 2nd Edition
  7. ^ Odersky, Martin (2008). Programming in Scala. Mountain View, California: Artima. hlm. 3. ISBN 978-0-9815316-0-1. Diakses tanggal 12 June 2014. 
  8. ^ Potvin, Pascal; Bonja, Mario (24 September 2015). "An IMS DSL Developed at Ericsson". arXiv:1509.07326alt=Dapat diakses gratis. doi:10.1007/978-3-642-38911-5. 
  9. ^ "Frequently Asked Questions – Java Interoperability". scala-lang.org. Diakses tanggal 2015-02-06. 
  10. ^ Loverdo, Christos (2010). Steps in Scala: An Introduction to Object-Functional Programming. Cambridge University Press. hlm. xiii. ISBN 978-1-139-49094-8. Diakses tanggal 31 July 2014. 
  11. ^ Martin Odersky, "A Brief History of Scala", Artima.com weblogs, June 9, 2006
  12. ^ Odersky, M.; Rompf, T. (2014). "Unifying functional and object-oriented programming with Scala". Communications of the ACM. 57 (4): 76. doi:10.1145/2591013. 
  13. ^ Martin Odersky, "The Scala Language Specification Version 2.7"
  14. ^ Expunged the .net backend. by paulp · Pull Request #1718 · scala/scala · GitHub.
  15. ^ "Scala on Android". Diakses tanggal 8 June 2016. 
  16. ^ "Scala Js Is No Longer Experimental | The Scala Programming Language". Scala-lang.org. Diakses tanggal 28 October 2015. 

Pranala luar