Die Scala Entwicklungsumgebung

Werbung
Die Scala Entwicklungsumgebung
L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
1
Was ist drin?
Die Scala-Entwicklungsumgebung enthält
Die Scala-Shell: scala
Zwei Compiler: scalac und fsc (Fast Scala Compiler)
Die API
Die Laufzeitumgebung
Den Scala-Basar
Wir arbeiten mit der Version 2.9.x.
Scala gibt für die JVM und die CLR (.NET).
Seit Version 2 gibt es keine aktuelle Version für die
CLR.
L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
2
Installation Kommandozeilenwerkzeuge
Von http://www.scala-lang.org/downloads
für Linux holen scala-2.9.1.final.tgz
Mit md5sum vergleichen, Entpacken
Umgebungsvariable PATH erweitern, sodass sie auf
/prg/scala-2.9.1.final/bin
zeigt.
Testen:
scala -version
scalac -version
L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
3
Ohne Java geht nichts
Die Compiler sind in Scala geschrieben,
Die ‚Laufzeitumgebung‘ ist ein Wrapper für die JVM.
Eine Voraussetzung für die Arbeit mit Scala ist ein
JRE.
Alle Java-Klassen können aus Scala heraus benutzt
werden.
L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
4
Scala-Shell alias REPL
REPL: Read-Evaluate-Print-Loop
Scala-Befehle können eingetippt werden, die Shell
führt sie aus und gibt das jeweilige Ergebnis mit Name
undTypangabe aus.
$ scala
scala> println("Hallo, Scala")
Hallo, Scala
scala> 128*2
Res1: Int = 256
Scala> val os = System.getProperty("os.name")
os: java.lang.String = Linux
Scala> exit
$
L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
5
Scala-Skripte
Eine Datei ohne Klasse wird als Skript aufgefasst.
Kommandozeilenargumente sind als args verfügbar.
dir.scala:
val dir = new java.io.File(args(0))
val files = dir.list
files foreach println
Dialog:
$ scala dir.scala /bin
mkdir
ps
ln
uncompress
ls
...
$
L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
6
Scala-Hauptprogramme
In Scala können wir wie in Java mit class Klassen
definieren.
Ausführbare main-Methoden stehen aber immer in so
genannten Singleton-Objekten.
object Greet {
def main(args: Array[String]){
println("Hello, " + args(0))
}
}
Singletons werden mit dem Schlüsselwort object
definiert.
Probieren: scala Greet.scala Christoph
oder
scalac Greet.scala; scala Greet Sebastian
L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
7
Die Compiler
Der einfache Compiler
scalac
arbeitet wie andere Compiler.
Der zweite Compiler
fsc
wird beim ersten Aufruf als Dienst gestartet und nicht
beendet. Bei weiteren Aufrufen findet kein Neustart
statt!
L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
8
Der Scala Bazaar
Der Basar ist ein Paket-Manager mit dem
 neue Pakete bequem installiert werden und
 man seine Scala Entwicklungsumgebung
aktualisieren kann.
Beispiel:
sbaz installed
zeigt alle installierten Pakete an.
L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
9
Der Scala-IDEs
Es gibt Scala-Plugins für die IDEs
 IntelliJ IDEA: von mir benutzt
 Eclipse: Von scala-lang.org empfohlen
Installation siehe http://www.scala-ide.org/
 NetBeans
L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung
10
Herunterladen