Julia (programazio-lengoaia)
Julia (programazio-lengoaia) | |
---|---|
Jatorria | |
Sorrera-urtea | 2009 |
Argitaratze-data | 2012 |
Azken bertsioa | 1.11.0 |
Ezaugarriak | |
Programazio paradigma | Objektuetara bideratutako programazioa, Programazio funtzional, Programazio inperatibo, multi-paradigm programming (en) , array programming (en) , metaprogramming (en) , procedural programming (en) , konputazio paralelo eta Multiple dispatch (en) |
Media mota | text/julia |
Irakur dezaka | CSV, Hierarchical Data Format (en) , Office Open XML, netCDF (en) eta Julia source code file (en) |
Sistema eragilea | Linux, Microsoft Windows eta MacOS X |
Idatz dezake | Julia source code file (en) |
Deskribapena | |
Honen eragina jaso du | MATLAB, Python, Lisp, C, FORTRAN, NumPy (en) , Lua, R, Scheme, Perl eta Ruby |
Ekoizpena | |
Diseinatzailea | Jeff Bezanson (en) , Alan Edelman (en) , Stefan Karpinski (en) eta Viral B. Shah (en) |
Garatzailea | Jeff Bezanson (en) , Stefan Karpinski (en) , Alan Edelman (en) eta Viral B. Shah (en) |
julialang.org | |
Julia konputazio teknikorako programazio-lengoaia bat da, goi-mailakoa, kode irekikoa, plataforma anitzekoa eta errendimendu handikoa. 2009an sortu eta 2012an plazaratu zuten MIT ospetsuan.[1][2]
Juliarekin C eta FORTRAN bezalako lengoaien pareko errendimendua lor daiteke LLVMn oinarritutako JIT konpiladoreari esker baina behe-mailako lengoaien zailtasunik gabe.
Julia script-lengoaien (interpretatuen) antzera modu interaktiboan exekuta daiteke baina baita ere, Julia programaren exekutagarria konpilatuz sor daiteke.
Julia datu-mota dinamikoak darabiltzan lengoaia da, funtzio edo metodoaren inplementazioa exekuzio-denboran bidaltzeko aukera eskaintzen du eta konputazio paralelorako diseinatuta dago.
Juliak pakete-kudeatzaile bat dauka.
Alderaketa beste lengoaia batzuekin
[aldatu | aldatu iturburu kodea]Julia lengoaia, Python bezain erraza, C bezain azkarra dela esaten da.
Honako benchmark hau nukleo bakarreko Intel(R) Xeon(R) CPU E7-8850 2.00GHz CPU 1TB eta 1067MHz DDR3 RAM duen mikroprozesadore batean lortu da, Linuxen gainean martxan jarrita:[3]
For
tran |
Julia | Py
thon |
R | Mat
lab |
Octave | Mathe-
matica |
Java
Script |
Go | Lua
JIT |
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 |
C lengoaian konpilatutako kodeari dagozkion emaitzak (faktorea=1). Zenbat eta txikiagoa izan zifra, orduan eta hobea da abiadura.
Programa adibideak
[aldatu | aldatu iturburu kodea]Kaixo mundua
[aldatu | aldatu iturburu kodea]Kaixo mundua adibidea:
print ("Kaixo mundua!")
edo besterik gabe beste hau
"Kaixo mundua!"
Quicksort
[aldatu | aldatu iturburu kodea]Hau da Julia programa bat zenbaki asko Quicksort algoritmoa erabiliz ordenatzen dituena:[4][5]
using BenchmarkTools
# quicksort ordenazio-algoritmoaren bertsioa ilara-errekurtsioa erabiliz: https://stackoverflow.com/questions/19094283/quicksort-and-tail-recursive-optimization
function qsort!(a,lo,hi)
i, j = lo, hi
@inbounds while i < hi
pivot = a[(lo+hi)>>>1]
while i <= j
while a[i] < pivot; i += 1; end
while a[j] > pivot; j -= 1; end
if i <= j
a[i], a[j] = a[j], a[i]
i, j = i+1, j-1
end
end
if lo < j; qsort!(a,lo,j); end
lo, j = i, hi
end
return a
end
Erreferentziak
[aldatu | aldatu iturburu kodea]- ↑ Bezanpson, Jef. Julia: A Fast Dynamic Language for Technical Computing. .
- ↑ (Ingelesez) Bezanson, Jeff; Edelman, Alan; Karpinski, Stefan; Shah, Viral B.. (2017-01). «Julia: A Fresh Approach to Numerical Computing» SIAM Review 59 (1): 65–98. doi: . ISSN 0036-1445. (Noiz kontsultatua: 2023-12-05).
- ↑ al., Jeff Bezanson, Stefan Karpinski, Viral Shah, Alan Edelman, et. The Julia Language. julialang.org.
- ↑ (Ingelesez) «Why is Julia faster than C++ for quicksort?» Julia Programming Language 2023-08-10 (Noiz kontsultatua: 2024-11-01).
- ↑ JuliaLang/Microbenchmarks. The Julia Programming Language 2024-10-07 (Noiz kontsultatua: 2024-11-01).
- Julia: A Fast Dynamic Language for Technical Computing (pdf)
- Julia: A Fresh Approach to Numerical Computing (pdf)
Bibliografia
[aldatu | aldatu iturburu kodea]- Tobin A Driscoll and Richard J. Braun (Aug, 2022). "Fundamentals of Numerical Computation: Julia Edition". SIAM. ISBN 978-1-611977-00-4ISBN 978-1-611977-00-4,
- C. T. Kelley (2022). "Solving Nonlinear Equations with Iterative Methods: Solvers and Examples in Julia". SIAM. ISBN 978-1-611977-26-4ISBN 978-1-611977-26-4.
- doi: . ISBN 978-3-030-73936-2..
- Clemens Heitzinger (2022): "Algorithms with Julia". Springer. ISBN 978-3-031-16559-7.