Julia (llenguatge de programació)
Tipus | llenguatge de programació orientat a objectes, llenguatge de programació funcional, array programming language (en) , llenguatge de programació multiparadigma, llenguatge de programació imperatiu i llenguatge interpretat |
---|---|
Data de creació | 2012 |
Disseny | Viral B. Shah (CEO de Julia Computing), Jeff Bezanson, Stefan Karpinski, Alan Edelman |
Desenvolupador | Viral B. Shah (CEO of Julia Computing), Jeff Bezanson, Stefan Karpinski, i altres col·laboradors |
Paradigma de programació | Multi-paradigm: multiple dispatch ("object-oriented"), procedural, functional, meta, multistaged |
Darrera versió estable | 0.5.2 / 0.4.7 / 6 Maig 2017; fa 10 dies |
Tipus de dades | Forta, dinàmica |
Majors implementacions | Julia, C, C++ (mostly LLVM dependency), Scheme (the parser; usant FemtoLisp implementation); standard library: Julia (major part), C (amb poques dependències), Fortran (BLAS amb assembly) |
Influenciat per | C Fortran Lisp Lua Mathematica (Wolfram Language) MATLAB Perl Python R Ruby Scheme |
Sistema operatiu | Multiplataforma |
Extensió dels fitxers | jl |
Llicència | MIT (core), GPL v2; omet les biblioteques GPL |
Etiqueta d'Stack Exchange | Etiqueta |
Pàgina web | [1] |
Julia, en ciència de la computació, és un llenguatge de programació dinàmic d'alt nivell adreçat a l'anàlisi numèrica però també es pot considerar com un llenguatge de propòsit general. Julia implementa un compilador sofisticat, execució en paral·lel, precisió numèrica i una biblioteca de funcions matemàtiques extensa (àlgebra lineal, generació de nombres aleatoris, processament de senyal i de cadenes de caràcters).[1][2][3]
Característiques del llenguatge
[modifica]Les principals característiques són : [4]
- Funcionalitat de dispatch múltiple: habilitat de definir el comportament de les funcions mitjançant combinació d'arguments.
- Tipus de dades dinàmics.
- Manegador de paquets.
- Funcions tipus C i Python.
- Computació distribuïda i paral·lela.
- Llicència MIT: lliure i codi obert.
Comparativa amb altres llenguatges
[modifica]El següent benchmark s'ha obtingut en un microprocessador d'un sol nucli Intel(R) Xeon(R) CPU E7-8850 2.00GHz CPU amb 1TB of 1067MHz DDR3 RAM, corrent sobre Linux : [5]
Fortran | Julia | Python | R | Matlab | Octave | Mathe-matica | JavaScript | Go | LuaJIT | Java | |
---|---|---|---|---|---|---|---|---|---|---|---|
fib | 0.70 | 2.11 | 77.76 | 533.52 | 26.89 | 9324.35 | 118.53 | 3.36 | 1.86 | 1.71 | 1.21 |
parse_int | 5.05 | 1.45 | 17.02 | 45.73 | 802.52 | 9581.44 | 15.02 | 6.06 | 1.20 | 5.77 | 3.35 |
quicksort | 1.31 | 1.15 | 32.89 | 264.54 | 4.92 | 1866.01 | 43.23 | 2.70 | 1.29 | 2.03 | 2.60 |
mandel | 0.81 | 0.79 | 15.32 | 53.16 | 7.58 | 451.81 | 5.13 | 0.66 | 1.11 | 0.67 | 1.35 |
pi_sum | 1.00 | 1.00 | 21.99 | 9.56 | 1.00 | 299.31 | 1.69 | 1.01 | 1.00 | 1.00 | 1.00 |
rand_mat_stat | 1.45 | 1.66 | 17.93 | 14.56 | 14.52 | 30.93 | 5.95 | 2.30 | 2.96 | 3.27 | 3.92 |
rand_mat_mul | 3.48 | 1.02 | 1.14 | 1.57 | 1.12 | 1.12 | 1.30 | 15.07 | 1.42 | 1.16 | 2.36 |
Resultats relatius a codi compilat en llenguatge C (factor=1). Com més baixa és la xifra, millor és la velocitat.
Vegeu també
[modifica]Referències
[modifica]- ↑ «Julia Scientific Programming | Coursera» (en anglès). www.coursera.org. [Consulta: 17 maig 2017].
- ↑ Economics, Quantitative. «Part 1: Programming in Julia» (en anglès). lectures.quantecon.org. Arxivat de l'original el 2016-11-19. [Consulta: 17 maig 2017].
- ↑ «A review of the Julia programming language» (en anglès). danluu.com. [Consulta: 17 maig 2017].
- ↑ «The Julia Lab» (en anglès). mit.edu. [Consulta: 17 maig 2017].
- ↑ al., Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman, et. «The Julia Language» (en anglès). julialang.org. [Consulta: 17 maig 2017].