Spring til indhold

Scala (programmeringssprog)

Fra Wikipedia, den frie encyklopædi
For alternative betydninger, se Scala. (Se også artikler, som begynder med Scala)

Scala er et fler-paradigmatisk programmeringssprog, der både integrerer egenskaber fra objektorienteret og funktionel programmering. Navnet stammer for det første fra det italienske ord scala, der oversættes til trappe, og henviser til, at man med sproget træder op på et nyt niveau af programmering[1]. For det andet henviser det til ordet skala, der hentyder til, at sproget kan bruges til projekter i ethvert tænkeligt målestoksforhold.

Scala er dybt inspireret af Java og er fuldt ud kompatibelt med Javas Virtual Machine (JVM). Ud over Javas objektorienterede struktur benytter scala sig af funktionelle begreber såsom currying[note 1], pattern-matching[note 2] og anonyme funktioner[note 3]. Scala er som Java statisk typet. Sproget er udgivet under BSD.

Scala er udviklet og udtænkt af Martin Odersky, der er ansat på École Polytechnique Fédérale de Lausanne (EPFL) i Schweiz. Udviklingen begyndte i 2001, og udgivet i slutningen af 2003 / starten af 2004[2]. Scala er løbende blevet udviklet, og er i januar 2013 nået til version 2.10.0.

Hello World eksempel

[redigér | rediger kildetekst]
 object HelloWorld extends App {
   println("Hello World!")
 }

Eksemplet kan kompileres ved hjælp af scalas compiler fra konsol. Hvis ovenstående gemmes i filen "HelloWorld.scala" kan filen kompileres således:

> scalac HelloWorld.scala

Og eksekveres således:

> scala -classpath . HelloWorld

Med programmeringssproget følger også et read-eval-print loop miljø, som kan afvikles i en konsol. I det kan man skrive og evaluere kode, som eksempelvis:

 > println("Hello World!")

Projekter der bruger Scala

[redigér | rediger kildetekst]
  • LinkedIn
  • Twitter
  • The Guardian
  • Play er et framework der types anvendes til at skrive hjemmesider efter REST-principperne.
  • Lift er en omfattende programmeringsstruktur (framework), der er beregnet til at skabe dynamiske internet-applikationer. Lift selv fremhæver sikkerhed, vedligeholdelse og ydeevne, som nogle af deres primære fokuspunkter[3].

Eksterne henvisninger

[redigér | rediger kildetekst]
  1. ^ Frequently Asked Questions – General | The Scala Programming Language
  2. ^ Martin Odersky et al., An Overview of the Scala Programming Language
  3. ^ Lift – The Simply Functional Web Framework – Home
  1. ^ Udtrykket stammer fra den russiske logiker og matematiker Moses Schönfinkel, der påpegede, at en funktion med t eller flere argumenter, kunne erstattes med en funktion, der kun modtog et enkelt argument. Denne ide blev senere udviklet af logikeren og matematikeren Haskell Curry fra USA, deraf navnet.
  2. ^ Pattern-matching – kan direkte oversættes til "mønster-søgning" – vedrører det at søge efter specifikke mønstre i en given kode. Denne form for handling forbindes ofte med funktionel programmering, da den ofte ses mere udviklet i disse sprog end andre. Ideen kan dog principielt tilføres alle former for programmeringsparadigmer.
  3. ^ Anonyme funktioner vedrører evnen til at erklære funktioner, der ikke er givet et unikt navn. Denne egenskab bliver primært brugt i forbindelse med funktionalitet, der kun har et lille anvendelsesområde, og derfor ikke har brug for at blive navngivet.