Java [1240]

Zapisz się
Dodaj kartkę Dodaj bana
Powód wlepienia kartki
Wybierz wątek docelowy z listy lub wpisz jego ID
  • Piotruś Pan :D

    Ale kod maszynowy, a pisanie w Javie to chyba dwie różne rzeczy... wiesz, bytecode i w ogóle...
  • Koziołek [brat Javowiec]

    > Ale kod maszynowy, a pisanie w Javie to chyba dwie różne rzeczy... wiesz, bytecode i w ogóle...

    I na tym właśnie polega różnica. Można pisać w bytecodzie, asm, kodzie maszynowym (to chore, ale się da). Można też pisać w języku wysokiego poziomu. Różnica to przede wszystkim
    - czas potrzebny na wykonanie danego zadania,
    - możliwość przeprowadzenia testów,
    - koszty finansowe
    - ryzyko niepowodzenia z powodu braku kompetencji

    Języki wysokiego poziomu (Java, C++, SQL) wymyślono po to by przyspieszyć pracę, zmniejszyć koszty, zminimalizować ryzyko.
  • Piotruś Pan :D

    No i w przypadku Javy dochodzi jeszcze ta ulotna przenośność :D
  • Koziołek [brat Javowiec]

    Obecnie przenośność oznacza raczej powszechną dostępność JVM.
  • Ja nie istnieje (FURBY)

    >Koziołek [brat Javowiec] napisał
    >>Ja nie istnieje (FURBY) napisał
    >>>Infernal Darkness napisał
    >>>No ale nie po to Gosling stworzył Javę czy Stroustrup
    >>C++
    >>>żebyśmy się wszyscy uczyli asm...
    >>>
    >>>Dzisiaj w aplikacjach rozwiązuje się tak skomplikowane
    >>>zagadnienia, że ich implementowanie w językach niskiego
    >>>poziomu zajęło by ludziom XXX razy więcej czasu, niż
    >w
    >>>językach wysokiego poziomu...
    >>
    >>zależy od skill'a
    >
    >Nie tylko. Asm jest pracochłonny w porównaniu z dowolnym
    >językiem wysokiego poziomu. Jest go dużo objętościowo.
    >Na przykład liczenie pierwiastka kwadratowego danej liczby
    >w asm:
    >sqrt:
    > # store $f1, $f2, $f3, $f4
    > addi $sp, $sp, -16
    > swc1 $f1, 12($sp)
    > swc1 $f2, 8($sp)
    > swc1 $f3, 4($sp)
    > swc1 $f4, 0($sp)
    > # program starts here
    > lwc1 $f1, def($0) # f1 = 2
    > lwc1 $f5, def3($0) # f5 = 0
    > add.s $f3, $f5, $f1 # f1 = f3 = 2
    > c.eq.s $f0, $f5 # if f0 != 0 start sqrt loop (sqrtr)
    > bc1f sqrtr # else :
    > jr $ra # return 0 --> F12 is already 0
    > sqrtr: # recursive part
    > div.s $f2, $f0, $f1 # f1 = ((f0/ f1)+f1)/2
    > add.s $f1, $f1, $f2
    > div.s $f1, $f1, $f3
    > c.eq.s $f1, $f4 # if (f1 = f4)--> same f1 twice jump
    >endsqrt
    > bc1t esqrt
    > add.s $f4, $f5, $f1 # else f4 = f1
    > j sqrtr
    > esqrt: add.s $f0, $f5, $f1 # set f0 = f1 as stated in
    >contract
    > # restore $f1, $f2, $f3, $f4
    > lwc1 $f1, 12($sp)
    > lwc1 $f2, 8($sp)
    > lwc1 $f3, 4($sp)
    > lwc1 $f4, 0($sp)
    > addi $sp, $sp, 16
    > jr $ra # return f0
    >
    >w językach wysokiego poziomu zajmie to tylko tyle co
    >wywołanie sqrt(liczba).
    >Jak zamkniesz teraz asma w jakiejś bibliotece to dość
    >szybko stwierdzisz, że fajnie by było mieć możliwość
    >wstawienia tego kodu za pomocą jednego polecenia. A z tego
    >punktu do prostego procesora funkcje>asm>kod maszynowy już
    >niedaleka droga.

    Jak zwykle okaze sie starym chujem i zwroce uwage na instrukcje fsqrt

    http://www.nersc.gov/vendor_docs/ib...

    Można obliczyc pierwiastek w asmie w 2 linijki :)

  • Ja nie istnieje (FURBY)

    >Koziołek [brat Javowiec] napisał
    >> Ale kod maszynowy, a pisanie w Javie to chyba dwie różne
    >rzeczy... wiesz, bytecode i w ogóle...
    >
    >I na tym właśnie polega różnica. Można pisać w
    >bytecodzie, asm, kodzie maszynowym (to chore, ale się da).
    >Można też pisać w języku wysokiego poziomu. Różnica to
    >przede wszystkim
    >- czas potrzebny na wykonanie danego zadania,
    >- możliwość przeprowadzenia testów,
    >- koszty finansowe
    >- ryzyko niepowodzenia z powodu braku kompetencji
    >
    >Języki wysokiego poziomu (Java, C++, SQL) wymyślono po to
    >by przyspieszyć pracę, zmniejszyć koszty, zminimalizować
    >ryzyko.

    Maaan ASM ROX, "No Luck^Just Skill"

  • Ja nie istnieje (FURBY)

    Triple ! :>

    Języki te wyoskiego poziomu nie są od tak ... gdyby java miala gołe JVM bez standardowej paczki klas w ktorej jest wszystko to pisanie w niej vs pisanie w asmie nie było by już takie oczywiste, tak samo jest z C++ i innymi wynalazkami jak Python, Ruby , LISP ... motorem zawsze jest jakis paradygmat i nowe możliwośći ale najwazniejsza jest biblioteka gotowych rzeczy z których możemy skorzystać w Asmie takiej biblioteki nie dostajemy ale stop... odorbina szukania i trafiamy na fasmlib potem na porty boost'a i w koncu jakiegos asmcgi ... wiec jesli chcemy to też mozemy zebrac kupke gotowych komponentow i pisac w asmie nie mniej wydajnie niz w językach wysokiego poziomu. Aczkolwiek skill nasz musi byc znacznie wiekszy i mamy cholerną zwałe jesli chodzi o np. Functional czy Unit Testy bo takiego frameworka dla asma po prostu niema :) Ni i trzeba miec swiaodmosc istnienia stosu , fpu sse2 etc...; ] wiedziec jak dziala ILP i inne zakres wiedzy jest masakrycznie wiekszy do ogarnięcia.

    Bo jezyki powstały z lenistwa :D
| |

Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test



Fotki

Miejsca grona (1)