• IT-Karriere:
  • Services:

Julia: Eine Programmiersprache nicht nur für die Wissenschaft

Die noch relativ junge Programmiersprache Julia erzeugt flotte Binärprogramme und kommt vor allem bei der Verarbeitung von großen Datenmengen zum Einsatz. Sie glänzt mit einer einfachen Syntax und lässt sich auch außerhalb der Wissenschaft sehr gut einsetzen.

Artikel von Tim Schürmann veröffentlicht am
Mit Julia lassen sich vermutlich auch Juliamengen generieren - die Namensgleichheit ist Zufall. (Symbolbild)
Mit Julia lassen sich vermutlich auch Juliamengen generieren - die Namensgleichheit ist Zufall. (Symbolbild) (Bild: Martin Wolf/Golem.de)

Die Programmiersprache Julia wird seit sieben Jahren Open Source entwickelt. Sie eignet sich durch ihre speziellen Eigenschaften hervorragend für die Verarbeitung großer Datenmengen und für wissenschaftliche Anwendungen. Ähnlich wie C, C++ und Python ist Julia aber auch als General Purpose Language ausgelegt. Mit ihr lassen sich also Anwendungen für fast alle Zwecke schreiben, so dass die Sprache auch außerhalb der Nische Wissenschaft gut aufgehoben ist.

Inhalt:
  1. Julia: Eine Programmiersprache nicht nur für die Wissenschaft
  2. Funktionen und gute Argumente
  3. Multiple Dispatch
  4. Parallelverarbeitung

In Julia geschriebene Programme laufen ähnlich schnell wie übersetzte C-Programme. Im Hintergrund nutzt Julia dafür das LLVM-Framework, das den eigentlichen nativen Programmcode erst zur Laufzeit erstellt (Just-in-Time, JIT). Die Referenzimplementierung aller Werkzeuge und Bibliotheken steht unter der freizügigen MIT-Lizenz.

Leicht verständliche Syntax

Die Syntax erinnert leicht an eine Mischung aus Lisp und Python. Julia unterstützt neben einer funktionalen auch eine rudimentäre objektorientierte Programmierung. Dabei setzt die Sprache stark auf das sogenannte Multiple-Dispatch-Konzept: Entwickler dürfen mehrere Funktionen mit dem gleichen Namen, aber unterschiedlichen Argumenten definieren. Julia wählt dann bei einem Aufruf automatisch die am besten passende Funktion.

Die Standardbibliothek umfasst unter anderem Funktionen zur Parallelverarbeitung, Netzwerkkommunikation und Profiling. Abschließend unterstützt Julia ähnlich wie Lisp die Metaprogrammierung, über die sich der Quellcode vor der Ausführung selbst modifizieren kann.

Stellenmarkt
  1. über duerenhoff GmbH, Bielefeld
  2. ANDRITZ Fiedler GmbH, Regensburg

Analog zu vielen Skriptsprachen besitzt auch Julia einen interaktiven Interpreter, der den eingegebenen Quellcode direkt ausführt. Der Interpreter lässt sich mit Code aus Dateien und über die Standardeingabe füttern.

Einfache mathematische Notation

Julia bietet eine dynamische Typisierung, dank derer eine Variable beliebige Inhalte aufnehmen kann:

  1. x = 5
  2. x = Hallo Welt!

Die Variablennamen dürfen aus Unicode-Zeichen bestehen. Julia macht sich die Unicode-Unterstützung ebenfalls zunutze. So kann man einfach √4 schreiben, um die Wurzel aus 4 zu ziehen. Julia ermittelt den Typ einer Variablen automatisch im Hintergrund. Bei Bedarf kann man ihn aber auch mit dem Operator :: an Ausdrücken und Variablen explizit vorgeben.

Im Fall von x::UInt64 interpretiert Julia die Variable x als 64 Bit große, vorzeichenlose Integerzahl. Hängt der Operator an einem Ausdruck, prüft Julia, ob der zurückgelieferte Wert dem Typ entspricht. Im folgenden Beispiel muss das Ergebnis von 2+3 eine Integerzahl sein, andernfalls erzeugt Julia einen Fehler:

  1. y = (2+3)::Int

Einer Variablen darf man direkt eine Zahl voranstellen, wie etwa im Ausdruck 2x+3. Julia führt dann automatisch eine Multiplikation mit dem Variableninhalt durch. Des Weiteren lassen sich Vergleichsoperatoren wie < oder > verketten:

  1. 1 < 2 < 3 == 3 > 2 >= 1

Dieser Ausdruck ist in den Augen von Julia true. Dank dieser Konventionen lassen sich recht elegant mathematische Formeln notieren.

Analog zu UInt64 und Int kennt Julia viele weitere Integer- und Gleitkommatypen, komplexe und rationale Zahlen und natürlich boolesche Werte. Zudem bindet Julia die GNU Multiple Precision Arithmetic Library (GMP) und die GNU MPFR Library ein, welche über die Typen BigInt und BigFloat eine effiziente Langzahlarithmetik ermöglichen.

Strings lassen sich per *-Operator schnell verketten. Umgekehrt kann man über entsprechende Indexangaben ein Zeichen oder einen Teil ausschneiden. Im folgenden Beispiel würde y den Text lo W enthalten:

  1. x = Hallo * Welt!
  2. y = x[4:7]

Dank der eingebundenen PCRE-Bibliothek wertet Julia sogar Perl-kompatible reguläre Ausdrücke aus. Wie in Perl kann man zudem Variableninhalte in Strings einsetzen:

  1. name = Tim
  2. x = Hallo $name !

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
Funktionen und gute Argumente 
  1. 1
  2. 2
  3. 3
  4. 4
  5.  


Anzeige
Hardware-Angebote
  1. (reduzierte Überstände, Restposten & Co.)
  2. täglich neue Deals bei Alternate.de

Bruto 27. Jun 2019

Der Gratis-Kurs bei Coursera von Andrew Ng ist perfekt für Einsteiger. Es gibt mehrere...

Maxabcabcabcqwe 26. Jun 2019

Meiner Meinung nach, ist es einfacher sich die Befehle einer Sprache durch das Aufrufen...

Das... 26. Jun 2019

Ah, das ist schön zu hören! Ich dachte Typisierung ist ein vernachlässigtes Anhängsel wie...

burzum 26. Jun 2019

Doch. Du sagst es ja selbst, das Konzept, die Herangehensweise sind das Entscheidende...


Folgen Sie uns
       


Google Pixel 4 und Pixel 4 XL ausprobiert

Google hat seine neuen Pixel-Smartphones vorgestellt: Im ersten Hands on machen das Pixel 4 und das Pixel 4 XL einen guten Eindruck.

Google Pixel 4 und Pixel 4 XL ausprobiert Video aufrufen
Mobile-Games-Auslese: Märchen-Diablo für Mobile-Geräte
Mobile-Games-Auslese
Märchen-Diablo für Mobile-Geräte

"Einarmiger Schmied" als Klasse? Diablo bietet das nicht - das wunderschöne Yaga schon. Auch sonst finden sich in der neuen Mobile-Games-Auslese viele spannende und originelle Perlen.
Von Rainer Sigl

  1. Mobile-Games-Auslese Fantasypixel und Verkehrsplanung für unterwegs
  2. Mobile-Games-Auslese Superheld und Schlapphutträger zu Besuch im Smartphone
  3. Mobile-Games-Auslese Verdrehte Räume und verrückte Zombies für unterwegs

Core i9-10980XE im Test: Intel rettet sich über den Preis
Core i9-10980XE im Test
Intel rettet sich über den Preis

Nur wenige Stunden vor AMDs Threadripper v3 veröffentlicht Intel den i9-10980XE: Der hat 18 Kerne und beschleunigt INT8-Code für maschinelles Lernen. Vor allem aber kostet er die Hälfte seines Vorgängers, weil der günstigere Ryzen 3950X trotz weniger Cores praktisch genauso schnell ist.
Ein Test von Marc Sauter

  1. Prozessoren Intel meldet 14-nm-Lieferprobleme
  2. NNP-T und NNP-I Intel hat den T-1000 der künstlichen Intelligenz
  3. Kaby Lake G Intels AMD-Chip wird eingestellt

Staupilot: Der Zulassungsstau löst sich langsam auf
Staupilot
Der Zulassungsstau löst sich langsam auf

Nach jahrelangen Verhandlungen soll es demnächst internationale Zulassungskriterien für hochautomatisierte Autos geben. Bei höheren Automatisierungsgraden strebt die Bundesregierung aber einen nationalen Alleingang an.
Ein Bericht von Friedhelm Greis

  1. Autonomes Fahren Ermittler geben Testfahrerin Hauptschuld an Uber-Unfall
  2. Ermittlungsberichte Wie die Uber-Software den tödlichen Unfall begünstigte
  3. Firmentochter gegründet VW will in fünf Jahren autonom fahren

    •  /