-
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
-
-
Koziołek [brat Javowiec]
-
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
Podobne Tematy
|
|
Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test
Miejsca grona (1)
-
Kino Luna ul. Marszałkowska, Warszawa
www.kinoluna.pl kino.luna@maxfilm.com.pl 22 621 78 28
- Dodaj miejsce

