Scala (programmeerimiskeel)

Scala on üldotstarbeline platvormist sõltumatu objektorienteeritud programmeerimiskeel, mis toetab funktsionaalset programmeerimist ja tugevat staatilist tüübisüsteemi. Scala on disainitud olema kompaktne[1] ja selle eesmärk on parandada Java probleemseid omadusi.[2]

Scala lähtekood kompileeritakse Java baitkoodiks, mis tähendab, et Scala käivitamisel käitatakse seda Java virtuaalmasinas. Sarnaselt Javaga on ka Scala objektorienteeritud ning kasutab loogeliste sulgude süntaksit, mis pärinevad C-programmeerimiskeelest, kuigi Scala 3 toetab ka Pythoni-stiilis taandepõhist süntaksi.[3] Scala eristub Javast teatud eriomaduste tõttu, mis on pärit teistest funktsionaalprogrammeerimiskeeltest, sh Scheme, Standard ML ja Haskell. Nendeks funktsionaalsusteks on karrimine ehk funktsiooni osaline rakendamine (ingl k currying), tüübijäreldus (ingl k type inference), muutmatud objektid (ingl k immutability), laisk väärtustamine (ingl k lazy evalutation) ja mustrisobitus (ingl k pattern matching).[4] Scala väldib teatud vastuolulisi Java omadusi, näiteks erandite kohustuslik töötlus, kuigi Scala 3 puhul on see valikuliselt saadaval.[5][6]

Nimi Scala on kohversõna sõnadest "skaleeritav" (ingl k scalable) ja "keel" (ingl k language), mis viitab, et see on disainitud kasutajate vajadustele vastavalt kohanduma ja kasvama.[7]

  1. Potvin, Pascal; Bonja, Mario (24 September 2015). An IMS DSL Developed at Ericsson. Lecture Notes in Computer Science. 7916.
  2. Martin Odersky et al., An Overview of the Scala Programming Language, 2nd Edition
  3. "Scala 3 Syntax Summary". docs.scala-lang.org. Vaadatud 17. jaanuaril 2024.
  4. Apinis, Kalmer (2018). "Scala" (PDF). Tartu Ülikool. Vaadatud 10. detsember 2023.
  5. Friesen, Jeff (16 November 2016). "Are checked exceptions good or bad?". JavaWorld. Retrieved 28 August 2018.
  6. "Capture Checking". docs.scala-lang.org. Vaadatud 17. jaanuaril 2024.
  7. Loverdo, Christos (2010). Steps in Scala: An Introduction to Object-Functional Programming. Cambridge University Press. p. xiii. ISBN 9781139490948. Retrieved 31 July 2014.

Developed by StudentB