Scala ( /ˈ s k ɑː l ɑː / SKAH-lah ) [2] [3] është një gjuhë programimi me qëllime të përgjithshme të nivelit të lartë e shtypur statikisht dhe e fortë që mbështet programimin e orientuar nga objekti dhe programimin funksional . E dizenjuar për të qenë koncize, [4] shumë nga vendimet e projektimit të Scala-s synojnë të adresojnë kritikat ndaj Java-s .

Scala
Scala-full-color.svg
ParadigmaMulti-paradigm: concurrent, functional, imperative, object-oriented
Viti i paraqitjes20 janar 2004; 20 vite më parë (2004-01-20)
DizajnuesMartin Odersky
ZhvilluesLaboratori i Metodave të Programimit i École Polytechnique Fédérale de Lausanne
Disiplina e shkrimitInferred, static, strong, structural
Ndikoi nëCeylon, Chisel, Fantom, F#, C#, Kotlin, Lasso, Red, Flix
LicencaApache 2.0[1]
Faqjawww.scala-lang.org
Wikibooks logo Scala at Wikibooks

Kodi burimor i Scala-s mund të përpilohet në kodin Java dhe të ekzekutohet në një makinë virtuale Java (JVM). Scala gjithashtu mund të transpilohet në JavaScript për të ekzekutuar në një shfletues (ang. browser), ose të përpilohet drejtpërdrejt në një ekzekutues origjinal. Kur ekzekutohet në JVM, Scala ofron ndërveprim gjuhësor me Java në mënyrë që libraritë e shkruara në secilën gjuhë të mund të referohen drejtpërdrejt në kodin Scala ose Java. Ashtu si Java, Scala është e orientuar nga objekti dhe përdor një sintaksë të quajtur "kllapa gjarpërushe" e cila është e ngjashme me gjuhën C. Që nga Scala 3, ekziston gjithashtu një opsion për të përdorur rregullin jashtë krahut (dhëmbëzimi) për të strukturuar blloqet dhe këshillohet përdorimi i tij. Martin Odersky ka thënë se ky doli të ishte ndryshimi më produktiv i prezantuar në Scala 3.

Ndryshe nga Java, Scala ka shumë veçori të gjuhëve funksionale të programimit (si Scheme, Standard ML dhe Haskell ), duke përfshirë currying, pandryshueshmërinë, vlerësimin dembel dhe përputhjen e modeleve . Ai gjithashtu ka një sistem tipi të avancuar që mbështet lloje të të dhënave algjebrike, kovariancë dhe kontravariancë, lloje të rendit më të lartë (por jo lloje të nivelit më të lartë ), lloje anonime, mbingarkesë operatori, parametra opsionalë, parametra të emërtuar, stringa të papërpunuara dhe një përjashtim eksperimental vetëm version i efekteve algjebrike që mund të shihet si një version më i fuqishëm i përjashtimeve të kontrolluara të Java. [5]

Emri Scala është një portmanto scalable dhe language, që nënkupton se është krijuar për t'u rritur me kërkesat e përdoruesve të saj. [6]

Shembuj

Redakto

Shembull "Hello World".

Redakto

Programi Hello World i shkruar në Scala 3 ka këtë formë:

@main def main() = println("Hello, World!")

Ndryshe nga aplikacioni i pavarur Hello World për Java, nuk ka asnjë deklaratë klase dhe asgjë nuk deklarohet të jetë statike.

Kur programi ruhet në skedarin HelloWorld.scala, përdoruesi e përpilon atë me komandën:

$ scalac HelloWorld.scala

dhe e ekzekuton atë me

$ scala HelloWorld
  1. ^ "Notice file". GitHub. 2019-01-24. Marrë më 2019-12-04. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  2. ^ Odersky, Martin (2008). Programming in Scala. Mountain View, California: Artima. fq. 3. ISBN 9780981531601. Marrë më 12 qershor 2014. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  3. ^ Wampler, Dean; Payne, Alex (15 shtator 2009). Programming Scala: Scalability = Functional Programming + Objects (në anglisht). O'Reilly Media, Inc. fq. 7. ISBN 978-1-4493-7926-1. Marrë më 13 maj 2024. The creators of Scala actually pronounce it scah-lah, like the Italian word for "stairs." The two "a"s are pronounced the same.
  4. ^ Potvin, Pascal; Bonja, Mario (24 shtator 2015). SDL 2013: Model-Driven Dependability Engineering. Lecture Notes in Computer Science. Vëll. 7916. doi:10.1007/978-3-642-38911-5. ISBN 978-3-642-38910-8. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  5. ^ "Effect expt". scala. Marrë më 2022-07-31. {{cite web}}: Mungon ose është bosh parametri |language= (Ndihmë!)
  6. ^ Loverdo, Christos (2010). Steps in Scala: An Introduction to Object-Functional Programming. Cambridge University Press. fq. xiii. ISBN 9781139490948. Marrë më 31 korrik 2014. {{cite book}}: Mungon ose është bosh parametri |language= (Ndihmë!)