Julia (llenguatge de programació)

De la Viquipèdia, l'enciclopèdia lliure
Infotaula de llenguatge de programacióJulia
Tipusllenguatge de programació orientat a objectes, llenguatge de programació funcional, array programming language (en) Tradueix, llenguatge de programació multiparadigma, llenguatge de programació imperatiu i llenguatge interpretat Modifica el valor a Wikidata
Data de creació2012
DissenyViral B. Shah (CEO de Julia Computing), Jeff Bezanson, Stefan Karpinski, Alan Edelman
DesenvolupadorViral 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ó estable0.5.2 / 0.4.7 / 6 Maig 2017; fa 10 dies
Tipus de dadesForta, dinàmica
Majors implementacionsJulia, 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 perC Fortran Lisp Lua Mathematica (Wolfram Language) MATLAB Perl Python R Ruby Scheme
Sistema operatiuMultiplataforma
Extensió dels fitxersjl Modifica el valor a Wikidata
LlicènciaMIT (core), GPL v2; omet les biblioteques GPL
Etiqueta d'Stack ExchangeEtiqueta Modifica el valor a Wikidata
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]

  1. «Julia Scientific Programming | Coursera» (en anglès). www.coursera.org. [Consulta: 17 maig 2017].
  2. 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].
  3. «A review of the Julia programming language» (en anglès). danluu.com. [Consulta: 17 maig 2017].
  4. «The Julia Lab» (en anglès). mit.edu. [Consulta: 17 maig 2017].
  5. al., Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman, et. «The Julia Language» (en anglès). julialang.org. [Consulta: 17 maig 2017].