Namestitve

Tekočo različico Julie dobimo na

https://julialang.org/

natančneje na https://julialang.org/downloads/ . Izberemo namestitveno datoteko za svojo vrsto računalnika, jo prenesemo nanj in namestimo Julio. Nato sem sledil navodilom iz knjige QE, stran 4. Ko poženemo Julio, se pojavi okno REPL (Read-Evaluate-Print-Loop) in lahko začnemo vnašati ukaze - npr. 1+1 . Julio zapustimo z ukazom exit() .

V REPLu naslednji prvi znaki v ukazni vrstici spreminjajo način delovanja:

  • ] - julia → pkg
  • backspace - pkg → julia
  • ; - julia → shell
  • enter - shell → julia

pkg označuje upravljanje s paketi (programskimi knjižnicami).

Če želimo kaj prekopirati, moramo klikniti na ikono v zgornjem levem vogalu in izbrati ustrezni ukaz. Zelo nerodno.

P(a,b) = sqrt(a^2+b^2)
a = 3
b = 4
c = P(a,b)
println("c = $c")

Do dodatnih zmogljivosti Julie pridemo z uporabo ustreznih paketov/knjižnic

julia> import Pkg; Pkg.add("Plots")

Dostop do izbrane knižnice zahtevamo s stavkoma import in using.

using Plots
gr(fmt=:png);
plot(sin, -2pi, 2pi, label="sin(x)")

Lahko pa z znakovnim urejevalnikom pripravimo program na datoteki s podaljškom .jl. Na primer ugani.jl

# ugibanje števila med 1 in n
function inputInt(poziv)
    print(poziv)
    return parse(Int64,readline())
end
println("Ugibanje naključnega števila med 1 in n")
n = inputInt("n = ")
k = rand(1:n)
s = 0
while true
    global s = s+1
    u = inputInt("$s. ugibek = ")
    if u == k
        break
    elseif u < k
        println("manjši")
    else
        println("večji")
    end
end
println("$k po $s korakih")

in z

julia> include("D:/julia/test/ugani.jl")

zahtevamo njegovo izvedbo.

Nekaj pripomb k programu:

  • Julia je precej podobna drugim sodobnim jezikom. Slovnica je preprosta (podobno kot Pythonova) - nekakšen BASIC → lahka za učenje.
  • Julia ne zahteva zamikanja (vpliv Matlaba), ga pa omogoča (npr. Juno ga podpira).
  • krmilni stavki ustvarijo bloke z lokalnimi spremenljivkami (pomembno za učinkovito prevajanje “just-in-time”) in se zaključijo z vrstico end . Stavek global omogoča učinkovanje izven bloka.
  • Julia omogoča napovedovanje zvrsti podatkov (optional typing). Poznavanje zvrsti omogoča učinkovitejši prevod. Po drugi strani pa “odprte” zvrsti omogočajo pripravo splošnih rešitev, ki jih z določitvijo zvrsti tik pred uporabo prilagodimo konkretnemu problemu. V ozadju Julie je generično programiranje (generic programming, QE stran 137-158) kot nekaka alternativa objektnemu programiranju.

Drugi način izvedbe je, da se v ukaznem oknu (npr. Command prompt na Windowsih) postavimo na naše delovno področje s programi in zahtevamo izvedbo programa na datoteki

julia ugani.jl

Za to, da lahko Julio pokličemo kjerkoli, moramo v sistemsko spremenljivko path dodati ustrezno pot - npr.
C:\Users\vlado\AppData\Local\Programs\Julia 1.5.3\bin .

Za resno programiranje potrebujemo boljši urejevalnik. Obstaja več možnosti. Zgleda, da sta trenutno najboljši:

  • Juno, ki je podoben urejevalnikom za druge programske jezike (npr. RStudio za R, Spyder za Python). Zgleda, da se je Juno združil z Julia-VScode
  • JupyterLab, ki podpira delo z Jupytrovimi zvezki (literate programming) - besedilo pomešano s programsko kodo. Morda bo prevladal Xeus / docs.

Juno

Obstaja izvedba JuliaPro, ki vsebuje urejevalnik Juno. Avtorji knjige QE te izvedbe ne priporočajo.

Za namestitev urejevalnika Juno sem sledil navodilom iz https://julia.quantecon.org/more_julia/tools_editors.html .

Izkazalo se je, da moram nastaviti tudi pot do Julie (C:\Users\vlado\AppData\Local\Programs\Julia 1.5.3\bin\julia.exe). Ker je zaslon mojega računalnika razmeroma majhen, se pri spreminjanju nastavitev ne vidi celotnega polja. Pomagalo je, da sem izklopil okno REPL.

Dodatek 19. marec 21: Juno sem odstranil z računalnika in ga nadomestil z urejevalnikom Visual Studio:

Za poganjanje celih programov uporabi trikotnik v zgornjem desnem vogalu in izberi Julia: Run file in a new process.

Jupyter / JupyterLab

Knjiga QE temelji na JupyterLabu.

Z znakom ] prestavimo v REPL v paketni način in vnesemo ukaz

add IJulia 

ki doda podporo IJulia za Jupyter (če imamo nameščen Anaconda Python, uporabi njegov Jupyter).

Dodatno podporo InstantiateFromURL za delo z zvezki knjige QE.

add InstantiateFromURL

Uporabo Jupytrovih zvezkov začnemo z

using IJulia
notebook()

ali

using IJulia; jupyterlab()

Zvezki knjige QE so dostopni na GitHubu. Zato moramo na svojem računalniku imeti nameščeno ustrezno podporo Git. Za lažje delo si lahko namestimo še uporabniški vmesnik GitHub desktop.

Sedaj lahko namestimo zvezke knjige QE.

using InstantiateFromURL 
github_project("QuantEcon/quantecon-notebooks-julia", version = "0.8.0", instantiate = true, precompile = true)

Načeloma naj bi postopek tekel gladko.

Sam nisem imel te sreče. Julio sem nameščal na HP probook. Stvari so se zataknile pri zagonu Jupytrovih zvezkov - lokalni strežnik ni deloval.

http://localhost:8888/lab?token=ea8f7c2ba9964943819d2e36a9...
Access to localhost was denied
You don't have authorisation to view this page.
HTTP ERROR 403

Izkazalo se je, da ima moj računalnik nameščen Sure Click in prikazuje spletne strani v “peskovniku”. Po daljšem googlanju sem našel sotrpina, ki je problem že razrešil

https://www.tenforums.com/browsers-email/138665-how-remove-hp-sure-click.html



notes/jl/inst.txt · Last modified: 2021/03/19 03:53 by vlado
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki