Julia (Programmiersprache)

Julia
Official Julia logo
Basisdaten
Paradigmen: Multiparadigma (prozedural, funktional, objektorientiert, Metaprogrammierung)
Erscheinungsjahr: 2012
Designer: Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman
Entwickler: Jeff Bezanson, Stefan Karpinski, Viral B. Shah u. a.[1][2]
Typisierung: dynamisch mit Typinferenz
Wichtige Implementierungen: Julia JIT Compiler
Beeinflusst von: C, MATLAB, Scheme, Lisp, Dylan, Perl, Python, R, Ruby, Lua,[3] Mathematica
Betriebssystem: Linux, macOS, FreeBSD, Windows
Lizenz: MIT-Lizenz, GPL, LGPL, BSD
The Julia Language

Julia ist eine höhere Programmiersprache, die vor allem für numerisches und wissenschaftliches Rechnen entwickelt wurde und auch als Allzweck-Programmiersprache verwendet werden kann, bei gleichzeitiger Wahrung einer hohen Ausführungsgeschwindigkeit.[4][5][6][7][8] Die Syntax erinnert stark an Matlab, wie auch an andere technische Programmiersprachen. Der Compiler wurde in C, C++ und Scheme geschrieben; die Standardbibliothek ist in Julia selbst geschrieben. Die Programmiersprache, deren Entwicklung 2009 begann, wurde im Februar 2012 als Open Source veröffentlicht.

Die Ausführungsgeschwindigkeit liegt im Bereich von C und Fortran, wodurch sich Julia gegenüber anderen wissenschaftlichen Sprachen wie MATLAB, GNU Octave oder R deutlich absetzt. Charakterisiert wird das Design der Sprache durch ein Typsystem, das parametrisierte Typen erlaubt, eine dynamische Programmierumgebung und Multimethoden als zentrales Paradigma. Julia erlaubt paralleles und verteiltes Ausführen von Programmen und den direkten Aufruf von C- und Fortran-Bibliotheken. Julia enthält standardmäßig einen Garbage Collector[9] und effiziente Implementierungen für Operationen mit Gleitkommazahlen und zur linearen Algebra, zur Generierung von Zufallszahlen und zur Verarbeitung regulärer Ausdrücke.

Die Entwicklung erfolgte am MIT; Stefan Karpinski, Viral Shah und Jeff Bezanson erhielten dafür den J. H. Wilkinson Prize for Numerical Software für 2019.

Mit Hilfe eines Pakets, das alle Julia-Funktionen unterstützt, kann zu ausführbaren Binärdateien kompiliert werden. Ein anderes Paket erzeugt besonders kleine ausführbare Binärdateien für Computer oder sogar Mikrocontroller mit 2 KB RAM. Diesen fehlt dann jedoch die Laufzeitumgebung und damit Funktionen wie der Garbage Collector und das Threading. Mit Binärpaketen muss aber kein Quellcode verteilt werden.

  1. LICENSE.md. GitHub; (englisch).
  2. Contributors to JuliaLang/julia. GitHub; (englisch).
  3. Julia Documentation. Abgerufen am 14. Januar 2022 (englisch).
  4. The Julia Language. (englisch).
  5. Avi Bryant: Matlab, R, and Julia: Languages for data analysis. O’Reilly Strata, 15. Oktober 2012; (englisch).
  6. Paul Krill: New Julia language seeks to be the C for scientists. InfoWorld, 18. April 2012; (englisch).
  7. Klint Finley: Out in the Open: Man Creates One Programming Language to Rule Them All. Wired, 3. Februar 2014;. Vorlage:Cite web: Der Parameter language wurde bei wahrscheinlich fremdsprachiger Quelle nicht angegeben.
  8. dotnetpro.de: Julia schlägt Python, Matlab, Octave und R. Neue Mediengesellschaft Ulm mbH, 3. April 2012, abgerufen am 20. März 2017.
  9. Suspending Garbage Collection for Performance… good idea or bad idea? (englisch).

Developed by StudentB