Zum Inhalt springen

SEO Analyse » SEO Lexikon » s » Skala

SkalaBei Skala handelt es sich um eine objektorientierte und funktionale Programmiersprache. Der Name Skala leitet sich von dem englischen scalable language ab. Dies bedeutet, dass es sich um einen kompakt gehaltenen Sprachkern in Skala handelt. Skala bietet die Möglichkeit die häufig verwendeten Sprachelemente wie es beispielsweise bei Operatoren oder bei zusätzlichen Kontrollstrukturen der Fall ist, in die verschiedenen Benutzerklassen zu implementieren. Dadurch wird der Sprachumfang erheblich erweitert. Zudem ist es mit Skala möglich eigene Sprachen, die beispielsweise domänenspezifisch sein können, zu erstellen. Bei solchen domainspezifischen Sprachen handelt es sich um Domain Specific Languages, kurz DSL.

Die Geschichte der Entwicklung von Skala

Skala wurde in einem Schweizer Labor für Programmiermethoden entwickelt. Die Leitung hatte Martin Odersky, der unter Nikolaus Wirth arbeitete. Im Jahr 1995 entwickelte er in Zusammenarbeit mit Philip Wadler die Programmiersprache Pizza. Diese erweiterte Java um Pattern Matching, Funktionszeiger und Generics. Im späteren Verlauf konzentrierten sich Odersky und Wadler auf die die Generics für Java. Durch dieses Projekt kam es zu der Einführung der Generics in Java. Seit dem Jahr 1999 arbeitete Odersky an der École polytechnique fédérale de Lausanne. Dort entwickelte Funnel, eine minimalistische Hybridsprache. Hier entwickelte er auch Skala. Skala diente im Gegensatz zu der Programmiersprache Funnel nicht nur rein akademischen Zwecken. Skala sollte eine vollwertige Programmiersprache für reale Anwendungen in der Wirtschaft und in der Industrie werden. Im Jahr 2004 kam es zur Veröffentlichung von Skala. Die Veröffentlichung für Java erfolgte im Frühjahr 2004, die für NET im Juni 2004. Seit dem Jahr 2011 wird durch das European Research Council die Weiterentwicklung von Skala finanziell unterstützt. Ziel der Unterstützung ist es, die Ressourcen der parallelen Programmierung weiter auszubauen und erweitern zu können. Odersky gab im Mai 2011 den Unternehmensstart von Typesafe bekannt. Bei Typesafe handelt es sich um ein Unternehmen, das es sich zur Aufgabe gemacht hat, den kommerziellen Support der Middleware Framework Akka voranzutreiben und den kommerziellen Vertrieb von Skala zu übernehmen.

Die Integration von Skala in Java

Die Programme von Skala können durch Java-JARs angesprochen werden oder diese ansprechen. So können die bestehenden Bibliotheken und Frameworks sowie die Projekte von Skala mit in Java eingebunden und folglich dort auch genutzt werden. So ähnlich sieht es auch bei der Integration der gängigsten Werkzeuge aus. Werkzeuge wie, Eclipse, IntelliJ oder NetBeans werden durch Skala unterstützt.

Die Objektorientierung von Skala

Im Gegensatz zu Java handelt es sich bei Scala um eine objektorientierte Programmiersprache. Bei Skala ist ein jeder Wert zugleich auch ein Objekt. Das ist auch bei primitiven Datentypen der Fall, ohne dass es in Skala zu Einbußen in der Performance kommt. Grund dafür ist, dass der Compiler Bytecodes erzeugt. Diese Bytecodes verwenden primitive Datentypen. Die Interfaces hingegen werden über Traits, bzw. über deren Mechanismen implementiert. Die Traits bestehen nicht ausschließlich aus Definitionen, es können schon Implementierungen der Methoden darin enthalten sein. Durch die Klassen kann eine Trait erweitert werden. Zudem besteht die Möglichkeit, auch mehrere zu erweitern. Diese Traits beinhalten keine Mehrfachvererbung, sondern bestehen aus einem Mixin-Mechanismus. Durch das Schlüsselwort object, welches anstelle des Schlüsselworts class verwendet wird, kommt es zu der Bereitstellung der Implementierung von dem Entwurfsmuster Singleton.

Die Funktionen von Skala

Bei den Funktionen in Skala handelt es sich um First-Class-Objekts. Dieses First-Class-Objekt kann immer dann verwendet werden, wenn Werte erlaubt sind. Das ist beispielsweise bei der Zuweisung an Variablen der Fall. Hierbei ist jedoch nicht das Ergebnis von der Funktionsauswertung gemeint. Stattdessen ist die Funktion selbst gemeint. Es kann sich aber auch um die Zuweisung bei den verschiedenen Parameterübergaben handeln. Diese Methoden in Skala können zu jeder Zeit zu Funktionen umgewandelt werden. Bei ihnen handelt es sich jedoch nicht um First-Class-Objekte. Aber auch die Funktionen von höherer Ordnung können in Skala realisiert werden.

Das Typsystem in Skala

Skala wurde statisch typisiert. In Skala verwenden die generischen Klassen Typen. Diese Typen sind zum Zeitpunkt der Entwicklung jedoch noch nicht definiert. So können beispielsweise List Oberklassen die abstrakten Typen zwar vorgeben, diese müssen jedoch in den Unterklassen durch konkrete Typen weiter spezifiziert werden. Das gilt auch für die Variablen wie es bei var oder val der Fall ist und für die Methoden.

Die Kovarianz und die Kontravarianz in Skala

In Skala können die Typparameter innerhalb einer generischen Klasse mit Annotationen versehen werden. Die Annotation bestimmt dann wie die Untertyprelationen der Typargumente auf die verschiedenen. Durch die Varianzannotationen wird beeinflusst, wo der Typparameter genutzt werden darf. So dürfen beispielsweise die kovarianten Typparameter nicht als ein Typ der Methodenargumente genutzt werden. Die Kontravarianten dürfen nicht als ein Rückgabetyp Verwendung finden.

Die Typinferenz

Bei der Typinferenz handelt es sich um die Fähigkeit, von einem Compiler den Typ von einem Ausdruck aus einem Kontext herzuleiten.

Die Auswertungsstrategie in Skala

In Skala werden die funktionalen Ausdrücke strikt ausgewertet. Durch das Schlüsselwort lazy kann eine Auswertung verzögert werden. Hierbei handelt es sich um die Lazy-Evaluation. Hier werden einzelne Ausdrücke spezifiziert. Methoden wie view oder force bieten die Möglichkeit von einer verzögerten Auswertung. Die Methoden view und force unterstützen in Skala die Collektion-Klassen.

Die Nebenläufigkeit in Skala

Die Skala Threads werden durch Java-Bibliotheken unterstützt. In der Bibliothek von Skala gibt es die Möglichkeit der Implementierung der Aktoren. Die in Erlang umgesetzte Aktoren-Implementierung inspiriert dies.

Die Syntax in Skala

In Skala ist die Syntax der Programmiersprache an ML und auch an Java angelehnt. Von Java wurden in Skala etliche Schlüsselworte übernommen. Aber auch die in Skala verwendete Blocksyntax wurde von Java übernommen. Von ML wurden in Skala die Deklarationen und die Typannotationen verwendet. Bei der Syntax von Skala kann jedoch im Vergleich zu der Syntax von Java meist das Semikolon, welches in Java am Ende der Zeilen verwendet wird, entfallen. Jedoch lehnt sich die Syntax zur Typendefinition der Variablen und der Rückgabewerte in Skala an der von ML an. Hier wird nicht der Typ variable, sondern der variable: Typ formuliert. In Skala erfolgt die Definition und die Definition von Werten, Methoden und Variablen durch die Schlüsselwörter, def, var und val. Hierauf folgen die Typangaben. Skala bietet zudem die Möglichkeit, Quelltexte im Vergleich zu denen von Java kompakter zu gestalten. Das kann beispielsweise durch Typinferenz, anonymen Funktionen oder for comprehensions geschehen.

Die Operatoren in Skala

In Skala gibt es für die Präfix-Operationen fest vorgegebene Mengen. Diese fest vorgegebenen Mengen sind +, -, ! und ~. So bedeutet in Skala beispielsweise -x das gleiche wie x.unary_-. Zudem sind in Skala Postfix-Operator-Ausdrück möglich. Der Operator erfährt hier keinerlei Einschränkungen. Das Übersetzungsergebnis ist in Skala ein Aufruf von der parameterlosen Methode. Dieser Aufruf erfolgt in Skala auf dem Operanden. Bei den Infix-Operationen ist das erste Zeichen der Operatornamen entscheidend über die Assoziativität und die Präzedenz. Diese erfolgen in Skala nach den in der Mathematik gängigen Konventionen. In Skala wird auf dem Objekt 1 die Methode + aufgerufen. Dabei wird das Ergebnis, also der Parameter z.* von einem weiteren Methodenaufruf übergeben. Wenn der Methodenname von einem Infixoperator mit einem Doppelpunkt endet, so wird die Reihenfolge der Empfänger, und die der Parameter vertauscht. Der Operator ist in diesem Fall rechtsassoziativ.

Die Verwendung von Skala in der freien Wirtschaft

Skala wird mittlerweile häufig in der Industrie angewendet. Bei den Social Networks wie LinkedIn oder Twitter ist eine Implementierung von Skala für die Nachrichten-Warteschlangen erfolgt. Zudem wird Skala in vielen Unternehmen verwendet. Darunter befinden sich unter anderem auch Sony, Siemens, Novell oder auch Électricité de France Trading.

Zusammenfassung

Skala ist eine objektorientierte und funktionale Programmiersprache, die für Skalierbarkeit und Erweiterbarkeit entwickelt wurde. Sie wurde von Martin Odersky in der Schweiz erschaffen und ist sowohl mit Java als auch mit .NET kompatibel. Skala wird finanziell durch das European Research Council unterstützt und hat auch kommerzielle Unterstützung durch das Unternehmen Typesafe.

Die Sprache ermöglicht die Integration mit Java, sodass bestehende Java-Bibliotheken und -Frameworks problemlos genutzt werden können. Sie bietet auch umfassende Objektorientierung und Funktionalität, einschließlich der Verwendung von Traits für die Schnittstellenimplementierung und First-Class-Objekten für Funktionen.

Skala verfügt über ein statisches Typsystem und bietet erweiterte Funktionen wie Typinferenz, Kovarianz und Kontravarianz. Die Sprache unterstützt sowohl strikte als auch verzögerte (Lazy) Auswertungsstrategien und ermöglicht die Implementierung von Aktoren für Nebenläufigkeit.

Im Bereich der freien Wirtschaft findet Skala breite Anwendung, beispielsweise in Social-Network-Plattformen wie LinkedIn und Twitter, sowie in großen Unternehmen wie Sony und Siemens.

Häufige Fragen und Antworten

Was ist Skala?

Skala ist eine objektorientierte und funktionale Programmiersprache, die für Skalierbarkeit und Erweiterbarkeit entwickelt wurde. Sie bietet die Möglichkeit, häufig verwendete Sprachelemente zu erweitern und eigene domänenspezifische Sprachen zu erstellen.

Wie erfolgte die Entwicklung von Skala?

Skala wurde in einem Schweizer Labor für Programmiermethoden entwickelt. Martin Odersky, der Leiter des Labors, entwickelte zusammen mit Philip Wadler die Programmiersprache Pizza, die Generics in Java einführte. Später arbeitete Odersky an der École polytechnique fédérale de Lausanne und entwickelte dort Skala.

Wie erfolgt die Integration von Skala in Java?

Die Programme von Skala können durch Java-JARs angesprochen oder diese ansprechen. Zudem werden gängige Entwicklungsumgebungen wie Eclipse, IntelliJ oder NetBeans durch Skala unterstützt.

Welche Funktionen bietet Skala?

Skala bietet Funktionen wie Objektorientierung, Funktionen von höherer Ordnung, First-Class-Objekte, Typinferenz, Kovarianz und Kontravarianz, Auswertungsstrategien und Nebenläufigkeit.

Wie wird Skala in der Wirtschaft verwendet?

Skala wird in der Industrie und in großen Unternehmen wie LinkedIn, Twitter, Sony, Siemens und Électricité de France Trading eingesetzt.

Bildnachweis: iStock.com/mirsadsarajlic


Zurück zur Hauptseite: s
Alle Marken, Warenzeichen, Unternehmens- und Produkt-Bezeichnungen sind mit, aber auch ohne definitive Kennzeichnung, Eigentum des Inhabers der Rechte. Alle aufgeführten Elemente dienen lediglich der informativen Beschreibung.