Julia
Website: JuliaLang.org
Proiectat de: Jeff Bezanson, Alan Edelman, Stefan Karpinski, Viral B. Shah
Julia este un limbaj de programare dinamic de nivel înalt, cu scop general.
Caracteristicile sale sunt potrivite pentru analiza numerică și știința de calcul.
Aspectele distinctive ale proiectării Juliei includ un sistem de tip cu polimorfism parametric într -un limbaj de programare dinamic; cu expediere multiplă ca paradigmă de programare principală.
Julia acceptă calculul concomitent, (compozibil) paralel și distribuit (cu sau fără a utiliza MPI sau încorporat corespunzător firelor „OpenMP în stil”) și apelarea directă a bibliotecilor C și Fortran fără cod de lipici.
Julia folosește un compilator just-in-time (JIT), care este denumit „Just-Ahead-of-Time” (JAOT) în comunitatea Julia, deoarece Julia compilează tot codul (implicit) pentru a-l rula.
Julia este colectată de gunoi, folosește o evaluare dornică și include biblioteci eficiente pentru calcule cu punct flotant, algebră liniară, generare de numere aleatoare și potrivire regulată a expresiei.
Multe biblioteci sunt disponibile, inclusiv unele (de exemplu, pentru transformările rapide Fourier) care au fost anterior incluse cu Julia și sunt acum separate.
Julia poate lucra cu alte limbi, de ex.
Are suport special (cuvânt cheie) pentru apelarea bibliotecilor de limbă C; și de ex.
Pentru a lucra cu Python, R, Rust, C ++, SQL cu utilizarea pachetelor suplimentare și pentru a lucra cu sau chiar pentru a compila codul Julia la JavaScript.
Julia poate fi compilată la executabile binare folosind un pachet pentru acesta care susține toate funcțiile Julia.
Executabilele binare mici pot fi, de asemenea, făcute folosind un pachet diferit, dar atunci Julia Runtime nu este inclus în executabil, de ex.
Până la 9 kb (apoi fără de exemplu, colectorul de gunoi, deoarece face parte din timpul de rulare al Juliei, adică cu capacități similare limitate cu limba C), pentru calculatoare sau chiar microcontrolere, cum ar fi Arduino cu 2 kb de memorie RAM.
În mod implicit, codul Julia depinde de timpul de rulare Julia pentru a sprijini toate caracteristicile Julia, de ex.
Filetare, dar unele (non-idiomatice, până la un grad mai mic sau mai mare) cod Julia pot fi compilate la executabile mici (cu capacități limitate de Julia).
În ambele cazuri nu trebuie distribuit un cod sursă.
Mai multe instrumente de dezvoltare acceptă codificarea în Julia, cum ar fi medii de dezvoltare integrate (de exemplu, pentru codul Visual Studio al Microsoft, este disponibilă o extensie care oferă suport de depanare și scaune); cu instrumente integrate, de ex.
Un profil (și suport grafic de flacără disponibil pentru cel încorporat), debugger și pachetul Rebugger.jl „acceptă depanarea repetată-execuție” și multe altele.