Julia (llenguatge de programació)

De Viquipèdia
Salta a la navegació Salta a la cerca
Infotaula de llenguatge de programacióJulia
Julia prog language.svg
Juliacap.jpg
Tipus llenguatge de programació, llenguatge de programació orientat a objectes, llenguatge de programació funcional, array programming language Tradueix, 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]
Modifica les dades a Wikidata

Julia, en ciència de la computació, és un llenguatge de programació dinàmic d'alt nivell adeç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][4]

Característiques del llenguatge[modifica]

Les principals característiques són : [5]

  • 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 : [6]

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). Quant més baixa és la xifra millor és la velocitat.

Vegeu també[modifica]

Referències[modifica]

  1. «Julia (programming language) - Quora» (en anglès). www.quora.com. [Consulta: 17 maig 2017].
  2. «Julia Scientific Programming | Coursera» (en anglès). www.coursera.org. [Consulta: 17 maig 2017].
  3. Economics, Quantitative. «Part 1: Programming in Julia» (en anglès). lectures.quantecon.org. [Consulta: 17 maig 2017].
  4. «A review of the Julia programming language» (en anglès). danluu.com. [Consulta: 17 maig 2017].
  5. «The Julia Lab» (en anglès). mit.edu. [Consulta: 17 maig 2017].
  6. al., Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman, et. «The Julia Language» (en anglès). julialang.org. [Consulta: 17 maig 2017].