Registrieren Passwort vergessen?

Scala (Programmiersprache)

3. Nov 2008, 15:46
Scala
Paradigmen: objektorientiert, funktional
Erscheinungsjahr: 2001 (Version 1)/2003 (Version 2)
Entwickler: Martin Odersky / Labor für Programmiermethoden, École polytechnique fédérale de Lausanne
Aktuelle Version: 2.7.1  (05. Mai 2008)
Typisierung: statisch, stark
Einflüsse: Java, ML, Haskell, Smalltalk
Betriebssystem: plattformunabhängig
Lizenz: Open Source, eigene, BSD-ähnlich
http://www.scala-lang.org

Scala ist eine funktionale und objektorientierte Programmiersprache. Sie wird seit 2001 (die aktuelle Version 2 seit 2003) am Labor für Programmiermethoden an der École polytechnique fédérale de Lausanne unter der Leitung von Martin Odersky entwickelt. Scala ist hauptsächlich dafür bekannt, die parallele Programmierung für Multikernprozessor-Systeme zu erleichtern.

Die Syntax der Sprache ähnelt in Teilen der von Java und ML. An ML ist die Syntax für Typannotationen und Deklarationen angelehnt; von Java wurde vor allem die Blocksyntax übernommen.

Als Laufzeitumgebung dient seit der Version 2 vor allem die Java-VM. Eine aktuelle Version für die .NET-CLR befindet sich in Entwicklung [1].

Hello, World! sieht in Scala so aus:

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

Inhaltsverzeichnis

[Bearbeiten] Deklarationen und Definitionen

Werte, Variablen und Methoden werden mittels Schlüsselwörtern val, var und def gefolgt von Typangaben deklariert bzw. definiert, z.B.:

 val wert: Int = 42
 var variable: Double = 3.14
 def methode(parameter1: String, parameter2: Boolean): Unit 

[Bearbeiten] Typsystem

Scalas statisches Typsystem ist besonders im Vergleich zu anderen Sprachen auf der JVM sehr mächtig. Es bietet unter anderem Typinferenz, Polymorphie (generische Typen), Mehrfachvererbung durch Mixin-Komposition, und pfadabhängige Typen.

[Bearbeiten] Typinferenz

Scala ist statisch typisiert und nutzt Typinferenz zur Ableitung von Typen ohne explizite Typangabe, wie es vor allem aus funktionalen Programmiersprachen bekannt ist. Folgende Anweisungen erzeugen beide Werte vom Typ Boolean:

val wahr1: Boolean = true
val wahr2 = true

[Bearbeiten] Mehrfachvererbung

In Scala wird zwischen Klassen und Traits unterschieden. Jede Klasse erweitert genau eine Superklasse und beliebig viele Traits. Traits unterscheiden sich von Klassen vor allem durch fehlende Konstruktorparameter. Anders als Interfaces in Java können Traits jedoch auch Methodenimplementierungen und Zustand enthalten.

[Bearbeiten] Siehe auch

[Bearbeiten] Weblinks

Dieser Artikel ist eine Kopie aus der freien Enzyklopädie Wikipedia. Am Originalartikel kann jeder Korrekturen und Ergänzungen vornehmen. Zudem kann man frühere Versionen einsehen.
In Kooperation mit Lycos Europe Network