Scala (bahasa pemrograman): Perbedaan antara revisi

Konten dihapus Konten ditambahkan
kTidak ada ringkasan suntingan
Alfiiq (bicara | kontrib)
memperbaiki kesalahan ejaan dan tata bahasa
Baris 14:
}}
 
'''Scala''' merupakan bahasa pemrograman umum (''general purpose'') yang mendukung [[pemrograman berorientasi objek]] dan [[pemrograman fungsional]]. Secara umum, tujuan dibuatnya '''Scala''' adalah kritisi untuk mengkritisi bahasa pemrograman [[Java (Platform Perangkat Lunak)|Java]].
 
Kode sumber Scala dibuat untukagar dapat dikompilasi dengan [[Bytecode Java]], sehingga mengakibatkan eksekusi kode berjalan pada [[Mesin Virtual Java|mesin virtual Java]]. Scala menyediakan [[interoperabilitas bahasa]] dengan Java, sehingga perpustakaan yang ditulis dalam dua bahasa ini dapat dirujuk langsung di Scala atau kode Java.<ref>{{Cite web|url=http://www.scala-lang.org/old/faq/4|title=Frequently Asked Questions – Java Interoperability|last=<!--Staff writer(s); no by-line.-->|website=scala-lang.org|access-date=2015-02-06}}</ref> Seperti Java, Scala adalah merupakan bahasa yang [[Pemrograman berorientasi objek|berorientasi objek]], dan menggunakan sintaks-kriting mengingatkan pada [[C (bahasa pemrograman)|bahasa pemrograman C]]. Tidak seperti Java, Scala memiliki banyak fitur dari [[Pemrograman Fungsional|pemrograman fungsional]] bahasa seperti [[Scheme (bahasa pemrograman)|Scheme]], [[Standard ML]] dan [[Haskell]], termasuk [[currying]], [[type inference]], [[Immutability|ketetapan]], [[Lazy evaluation|evaluasi malas]], dan [[Pattern matching|pencocokan pola]]. Ini juga memiliki lanjutan jenis sistem pendukung [[Algebraic data type|jenis data aljabar]], [[Covariance and contravariance (computer science)|kovarian dan kontravarian]], [[Higher-order type operator|jenis perintah tinggi]] (tapi tidak [[Parametric polymorphism|jenis lebih tinggi-peringkat]]), dan [[Anonymous type|jenis anonim]]. Fitur lain dari Scala tidak hadir di Java termasuk [[operator overloading]], [[optional parameter]], [[Named parameter|parameter bernama]], [[Raw string|string baku]], dan tidak ada [[Penanganan pengecualian|pengecualian terperiksa]].
 
== Etimologi ==
Nama Scala adalah [[lakuran]] dari "''scalable''" dan "''language''", dalam artian bahasaartinya ini dirancang untuk berkembang sesuai keperluan penggunanya.<ref name="StepsInScala">{{Cite book|url=https://books.google.com/books?id=vZAfN_Vk2i0C&pg=PR13&dq=%22steps+in+scala%22&hl=en&sa=X&ei=W__aU7qsH4bgsASjv4LIBw&ved=0CCkQ6AEwAA#v=onepage&q=%22steps%20in%20scala%22&f=false|title=Steps in Scala: An Introduction to Object-Functional Programming|last=Loverdo|first=Christos|date=2010|publisher=[[Cambridge University Press]]|isbn=978-1-139-49094-8|page=xiii|access-date=31 July 2014}}</ref>
 
== 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 net]]s.<ref name="history-of-scala">Martin Odersky, [http://www.artima.com/weblogs/viewpost.jsp?thread=163733 "A Brief History of Scala"], Artima.com weblogs, June 9, 2006</ref> 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 [[Java (Platform Perangkat Lunak)|platform Java]],<ref name="cacm">{{Cite journal|last=Odersky|first=M.|last2=Rompf|first2=T.|year=2014|title=Unifying functional and object-oriented programming with Scala|journal=Communications of the ACM|volume=57|issue=4|page=76|doi=10.1145/2591013}}</ref> dan pada [[.NET Framework]] pada bulan juni 2004.<ref name="spec">Martin Odersky, "The Scala Language Specification Version 2.7"</ref> versi kedua (v2.0) diikuti pada bulan Maret 2006. .NET dukungan resmi turun pada tahun 2012.<ref>[https://github.com/scala/scala/pull/1718 Expunged the .net backend. by paulp · Pull Request #1718 · scala/scala · GitHub].</ref>
 
Meskipun Scala memiliki dukungan yang luas untuk pemrograman fungsional dari awal, Java tetapSebagian yangbesar sebagianJava tetap besar berorientasi objek bahasa sampai masuknya ekspresi lambda dengan Java 8 pada tahun 2014.
 
== Platform dan lisensi ==