Spring til indhold

Scala (programmeringssprog)

Fra Wikipedia, den frie encyklopædi
Version fra 25. nov. 2009, 13:24 af Jensep (diskussion | bidrag) Jensep (diskussion | bidrag) (Platform: Tilf. beskrivelser til currying, pattern-matching og anonyme funktioner.)

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 refererer til at man med sproget træder op på et nyt niveau af programmering[1]. For det andet henviser det til det engelske ord for skala (scale), der indikerer at sproget kan bruges til projekter i enhver tænkelige skala.

Platform

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

Historie

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[5]. Scala er løbende blevet udviklet, og er i oktober 2009 nået til version 2.7.7.

Hello World eksempel

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

eller

 object HelloWorld {
   def main(args : Array[String]) {
     println("Hello World!")
   }
 }

Disse to eksempler kan kompileres ved hjælp af scalas compiler ved at skrive følgende i en konsol (det antages at filen er døbt "HelloWorld.scala"):

> scalac HelloWorld.scala

For at eksekvere programmet tilføjes på ny linje:

> scala -classpath . HelloWorld

Frameworks der benytter Scala

  • Lift er et omfattende framework, der er beregnet til at skabe web-applikationer. Lift selv fremhæver sikkerhed, vedligeholdelse og performance, som nogle af deres primære fokuspunkter[6].

Se også

Eksterne henvisninger

Kilder

  1. ^ Frequently Asked Questions - General | The Scala Programming Language
  2. ^ 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. Denne ide blev senere udviklet af den amerikanske logiker og matematiker Haskell Curry, deraf navnet.
  3. ^ 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 operation forbindes ofte med funktionel programmering, da konceptet ofte ses mere udviklet i disse sprog end andre. Idéen kan dog principielt tilføres alle former for programmeringsparadigmer.
  4. ^ 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 anvendelses-område, og derfor ikke har brug for at blive navngivet.
  5. ^ Martin Odersky et al., An Overview of the Scala Programming Language
  6. ^ Lift – The Simply Functional Web Framework – Home