Ohjelmointikieli Scala: Ohjelmointikieli

Scala on moniparadigmainen ohjelmointikieli, joka on suunniteltu yhdistämään olio- ja funktionaaliset ajatusmallit.

Nimi Scala tulee skaalautuvasta kielestä (Scalable language) tarkoittaen, että kieli on suunniteltu kasvamaan käyttäjiensä tarpeiden mukana.

Scala
Ohjelmointikieli Scala: Alustat ja lisenssi, Historia, Olio-ominaisuudet
Paradigma moniparadigmainen: funktionaalinen, oliomallinen, imperatiivinen
Tyypitys vahva, staattinen
Yleinen suoritusmalli tulkattava
Muistinhallinta automaattinen
Julkaistu 2003
Kehittäjä École polytechnique fédérale de Lausanne
Vakaa versio 3.4.0 ()
Vaikutteet Java, Pizza, Haskell, Erlang, Standard ML, Objective Caml, Smalltalk, Scheme
Verkkosivu www.scala-lang.org

Alustat ja lisenssi

Scalalla kirjoitetut ohjelmat ajetaan Java-virtuaalikoneessa, ja Scala on yhteensopiva olemassa olevien Java-ohjelmien kanssa. Microsoftin .NET-alustalle on olemassa vaihtoehtoinen toteutus, mutta sitä ei ole päivitetty aikoihin.

Scala käännetään samaan malliin kuin Java ja C# (erillinen käännösvaihe, dynaaminen luokkalataaja), joten Scalalla kirjoitettu koodi voi kutsua suoraan Java-kirjastoja (tai .NET-kirjastoja .NET-toteutuksessa).

Scala, mukaan lukien kääntäjä ja kirjastot, on julkaistu BSD-lisenssillä.

Historia

Scalaa alettiin suunnitella vuonna 2001 Sveitsissä, Lausannen teknillisen korkeakoulun (EPFL) Ohjelmistotekniikan laboratoriossa. Pääsuunnittelijana toimi Martin Odersky, joka jatkoi siitä mihin Funnel-nimisen ohjelmointikielen kehityksessä oli jääty (Funnel yhdisti ideoita funktionaalisesta ohjelmoinnista ja Petri-verkoista). Odersky oli aikaisemmin työskennellyt Javan geneerisen laajennoksen (GJ) ja javacin, Sunin Java-kääntäjän parissa. Scala julkaistiin loppuvuonna 2003 / aikaisin 2004 Java-alustalle ja .NET-alustalle kesäkuussa 2004. Toinen versio kielestä, v2.0, julkaistiin marraskuussa 2006.

Tätä kirjoitettaessa, lokakuussa 2009, viimeisin julkaistu vakaa versio on 2.7.6. Versioon 2.8 suunniteltuja asioita ovat Scala collections -kirjaston kunnon rukkaus, nimettyjen ja oletusparametrien käyttö metodeissa, pakettioliot ja jatkot.

Huhtikuussa 2009 Twitter ilmoitti vaihtaneensa suuren osan peruskoodistaan Rubysta Scalaan ja että aikovat kääntää loputkin. Wattzon on todennut julkisesti että sen koko alusta on kirjoitettu alusta lähtien Scalalla.

Olio-ominaisuudet

Scala on puhdas olio-ohjelmointikieli, koska jokainen arvo on olio. Tietotyypit ja olioiden käyttäytyminen määritellään luokissa ja piirteissä (eng. traits). Luokka-abstraktioita on laajennettu aliluokilla ja joustavalla Mixin-tyylisellä yhdistelymekanismilla välttäen näin moniperinnän ongelmat.

Funktionaalinen ohjelmointi

Scala tukee myös funktionaalista ohjelmointia. Kieli tarjoaa kevyen syntaksin nimettömien funktioiden määrittelyyn, tukee korkean tason funktioita, sallii sisäkkäiset funktiot ja tukee curry-muunnosta. Avainsanaa "lazy" käyttämällä voidaan siirtää muuttujan alustusta kunnes sitä tarvitaan. Rajattujen jatkeiden (eng. delimited continuations) evaluointi tulee tuetuksi versiossa 2.8.

Laajennettavuus

Scala on suunniteltu täsmäkielet (eng. domain-specific language) silmällä pitäen, ja uusien kielen rakenteiden lisääminen on helppoa kirjastojen muodossa.

Scalalla ohjelmoidut sovelluskehykset

  • Lift

Hei maailma -esimerkki

Hei maailma -ohjelma Scalalla toteutettuna:

Tässä

object HelloWorld extends App {     println("Hello, world!") } 

ja tässä

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

Huomattava ero Javaan on, että mitään ei määritellä staattiseksi. Sen sijaan käytetään singleton-suunnittelumallia, joka luodaan avainsanalla object.

Jos ohjelma tallennetaan tiedostoon nimeltä HelloWorld.scala, niin se voidaan kääntää komentoriviltä näin:

> scalac HelloWorld.scala 

Ja ajaa näin:

> scala -classpath . HelloWorld 

On myös mahdollista syöttää ohjelma suoraan Scala-tulkille käyttämällä optiota -i ( koodin lataamiseen tiedostosta ) ja optiota -e ( koodin kutsumiseen ).

> scala -i HelloWorld.scala -e 'HelloWorld.main(null)' 

Kirjaluettelo julkaisupäivän mukaan

  • 2008.11.26 Programming in Scala: A Comprehensive Step-by-step Guide / Odersky, Martin ; Spoon, Lex ; Venners, Bill / Artima inc.
  • 2009.05.25 Beginning Scala / Pollak, David / Apress
  • 2009.07.28 Programming Scala: Tackle Multi-Core Complexity on the Java Virtual Machine / Subramaniam, Venkat / Progmatic Bookshelf
  • 2009.09.25 Programming Scala / Wempler, Dean ; Payne, Alex / O'Reilly Media

Aiheesta muualla

Englanniksi:

Testaaminen

Lähteet

Tags:

Ohjelmointikieli Scala Alustat ja lisenssiOhjelmointikieli Scala HistoriaOhjelmointikieli Scala Olio-ominaisuudetOhjelmointikieli Scala Funktionaalinen ohjelmointiOhjelmointikieli Scala LaajennettavuusOhjelmointikieli Scala Scalalla ohjelmoidut sovelluskehyksetOhjelmointikieli Scala Hei maailma -esimerkkiOhjelmointikieli Scala Kirjaluettelo julkaisupäivän mukaanOhjelmointikieli Scala Aiheesta muuallaOhjelmointikieli Scala LähteetOhjelmointikieli ScalaOhjelmointikieliOhjelmointiparadigma

🔥 Trending searches on Wiki Suomi:

Sam ElliottJokeritRod ArgentJääkiekkoKlassismin musiikkiMyrskyluodon Maija (elokuva)Muumilaakson tarinoitaYhdysvaltain osavaltiotBatcycleVeeti KallioVenäjän hyökkäys Ukrainaan 2022–TuhkakeskiviikkoShallowPulmunenSerbiaHolokaustiBeyoncéKissaSuuri paastoOsmo SoininvaaraLordi (yhtye)RomanitTalibanKolmen kappaleen probleema (kirja)The AnimalsJeffrey DahmerMaarit HurmerintaNiina BackmanJanne JaakkolaKuutamolla (elokuva)Esko SalminenAlastonsuomi.comAlavilla mailla hallan vaaraLuettelo Suomen pääministereistäDNA28. maaliskuutaMauritaniaNeekeri1960-lukuYliopistolliset tutkinnot SuomessaYdinaseNarsissitEmma ThompsonUnto SalminenLeonardo da VinciBrasiliaGolgataJosif StalinPääsiäiskukkoEspanjaJuha HirviRebel WilsonLuettelo valtioista väkiluvun mukaanEmily BluntMoskovan joukkoampuminen 2024Jokelan koulusurmatBarack ObamaPääsiäispupuPashaKapitalismiAleksis KiviTeemu TannerKansainvälinen yksikköjärjestelmäHolokaustin kiistäminenLasse LehtoPalmusunnuntaiKummisetä (elokuva)Johannes-passio (Bach)Kristoffer KolumbusBuddhalaisuusKalevan PalloSebastian RejmanKarhuElvis PresleyKemijärviMaria SäköHopKonstantinopoli🡆 More