eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › asm jako jezyk elitarny
Ilość wypowiedzi w tym wątku: 59

  • 1. Data: 2012-01-29 20:14:25
    Temat: asm jako jezyk elitarny
    Od: " " <f...@g...pl>

    asm jest dosyc daleko na liscie popularnosci jezykow
    (np jesli mierzyc popularnosc otagowaniem postow na
    stack overflow to
    c# 260 tys
    java 200 tys
    php 180 tys
    javascript 170 tys
    .
    c++ 110 tys
    ..
    c 50 tys
    ..
    asm 5 tys

    kwetia jest taka czy asm (przy tej malej popularnosci)
    jest jezykiem elitarnym (jak patrza niektorzy) czy tez
    jezykiem ktory sie do nieczgo nie nadaje (jak patrza inni)

    oczywiscie osobiscie uwazam ten jezyk i uwazam ze asm jest jezykiem elitarnym
    (choc slowa elitarny uzywam troche w rozmytym miekkim znaczeniu)
    gdy tymczasem jezyki takie jak c# byly pomyslane przynajmniej w
    czesci jako jezyki dla slabych programistow (dla ktorych np
    winapi jest 'za trudne') sa bardziej chalowate :)

    (post troche pomyslany jako rozrywka i zamieszanie w kotle,
    bo zwykle takie tematy potrafia wywolac 'flame'a, ale tez
    jest wyrazem mojej sympatii do asma i nie ukrywam ze go
    'popieram'





    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 2. Data: 2012-01-29 20:22:48
    Temat: Re: asm jako jezyk elitarny
    Od: bartekltg <b...@g...com>

    W dniu 2012-01-29 21:14, f...@g...pl pisze:

    > kwetia jest taka czy asm (przy tej malej popularnosci)
    > jest jezykiem elitarnym (jak patrza niektorzy) czy tez
    > jezykiem ktory sie do nieczgo nie nadaje (jak patrza inni)

    Nadaje się tylko do bardzo specyficznych zastosowań.
    Już nawet programujący kontrolery przestawili
    się na języki 'wyższego poziomu'. Kilkanaście/dziesiat lat temu;)

    Jak hcesz pobawić się jezykami mniej popularnymi i wymagającymi
    zdolności intelektualnych (przez to można je rozumieć jako elitarne),
    to zajmij się językami funkcyjnymi,prologiem czy innymi wynalazkami
    (może smalltalk:)

    Jeśli nie budujesz kompilatora albo nie piszesz bibliteki numerycznej
    wykorzystującej najnowsze sztuczki to siedzenie w asm jest stratą
    energii.

    Wielkim osiągnięciem z czasów FORTRANa było to, że mogłeś napisać
    a=b+c nie bawiąc się w szczegóły.


    pzdr
    bartekltg






  • 3. Data: 2012-01-29 20:54:55
    Temat: Re: asm jako jezyk elitarny
    Od: " " <f...@g...pl>

    bartekltg <b...@g...com> napisał(a):

    > W dniu 2012-01-29 21:14, f...@g...pl pisze:
    >
    > > kwetia jest taka czy asm (przy tej malej popularnosci)
    > > jest jezykiem elitarnym (jak patrza niektorzy) czy tez
    > > jezykiem ktory sie do nieczgo nie nadaje (jak patrza inni)
    >
    > Nadaje się tylko do bardzo specyficznych zastosowań.
    > Już nawet programujący kontrolery przestawili
    > się na języki 'wyższego poziomu'. Kilkanaście/dziesiat lat temu;)
    >
    > Jak hcesz pobawić się jezykami mniej popularnymi i wymagającymi
    > zdolności intelektualnych (przez to można je rozumieć jako elitarne),
    > to zajmij się językami funkcyjnymi,prologiem czy innymi wynalazkami
    > (moĹźe smalltalk:)
    >
    a wlasnie nie lubie takiego kombinowania, jezykow funkcyjnych nie
    umiem na dzis ni w ząb

    > Jeśli nie budujesz kompilatora albo nie piszesz bibliteki numerycznej
    > wykorzystującej najnowsze sztuczki to siedzenie w asm jest stratą
    > energii.
    >

    co do tracenia energii to jestem w tym znakomity, akurat planuje
    pisac kompiler, ale nawet pominawszy to chyba jest sens uczyc sie
    i uzywac asemblera jesli przepisanie kluczowych procedur na asm
    moze przyspieszyc aplikacje o jakis procent - z tym to nie wiem
    jak jest, zle moze pomierze to troche w najblizszym czasie

    kcalkiem niedawno przyspieszylem jedna gierke okolo 2 razy
    (ramka spadla z 30 ms do ok 15 ms) przez zamienienie czterech
    intow na floaty (czy cos takiego bo nei pamietam byc moze
    dokladnie) - staranne traktowanie procka mysle moze miec jednak
    sens i gdyby np okazywalo sie ze przy umiejetnosci poprawiania
    kodu i popopoprawianiu paru procedur w asmie program dzialal
    dwa razy plynniej to warto sie uzyc i uzywac asma


    > Wielkim osiągnięciem z czasów FORTRANa było to, że mogłeś napisać
    > a=b+c nie bawiąc się w szczegóły.
    >
    >
    > pzdr
    > bartekltg
    >
    >
    >
    >
    >


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 4. Data: 2012-01-29 21:08:55
    Temat: Re: asm jako jezyk elitarny
    Od: bartekltg <b...@g...com>

    W dniu 2012-01-29 21:54, f...@g...pl pisze:
    > bartekltg<b...@g...com> napisał(a):
    >
    >> W dniu 2012-01-29 21:14, f...@g...pl pisze:
    >>
    >>> kwetia jest taka czy asm (przy tej malej popularnosci)
    >>> jest jezykiem elitarnym (jak patrza niektorzy) czy tez
    >>> jezykiem ktory sie do nieczgo nie nadaje (jak patrza inni)
    >>
    >> Nadaje się tylko do bardzo specyficznych zastosowań.
    >> Już nawet programujący kontrolery przestawili
    >> się na języki 'wyższego poziomu'. Kilkanaście/dziesiat lat temu;)
    >>
    >> Jak hcesz pobawić się jezykami mniej popularnymi i wymagającymi
    >> zdolności intelektualnych (przez to można je rozumieć jako elitarne),
    >> to zajmij się językami funkcyjnymi,prologiem czy innymi wynalazkami
    >> (moĹźe smalltalk:)
    >>
    > a wlasnie nie lubie takiego kombinowania, jezykow funkcyjnych nie
    > umiem na dzis ni w ząb

    Na tym polega nauka. Czegoś nie wiesz, a potem wiesz.

    >
    >> Jeśli nie budujesz kompilatora albo nie piszesz bibliteki numerycznej
    >> wykorzystującej najnowsze sztuczki to siedzenie w asm jest stratą
    >> energii.
    >>
    >
    > co do tracenia energii to jestem w tym znakomity, akurat planuje
    > pisac kompiler, ale nawet pominawszy to chyba jest sens uczyc sie

    Ale wiesz, że kompilator to kawał matematyki. Znacznie bardziej
    abstrakcyjnej niż całki i macierze.

    > i uzywac asemblera jesli przepisanie kluczowych procedur na asm
    > moze przyspieszyc aplikacje o jakis procent - z tym to nie wiem
    > jak jest, zle moze pomierze to troche w najblizszym czasie

    Te sytuacje nie zdarzają się tak często (np kompilator
    nie używa jakeijś instrukcji, która tu pasuje).
    A współczesny procesor to skomplikowana bestia,
    łatwo napisać gorzej inż kompilator.

    > kcalkiem niedawno przyspieszylem jedna gierke okolo 2 razy
    > (ramka spadla z 30 ms do ok 15 ms) przez zamienienie czterech
    > intow na floaty (czy cos takiego bo nei pamietam byc moze
    > dokladnie)

    Ale to jest operacja jak najbardziej możliwa w takim
    'półassemblerze' jak C czy innych normalnych językach.

    > - staranne traktowanie procka mysle moze miec jednak
    > sens i gdyby np okazywalo sie ze przy umiejetnosci poprawiania
    > kodu i popopoprawianiu paru procedur w asmie program dzialal
    > dwa razy plynniej to warto sie uzyc i uzywac asma

    Przy założeniu _że rzeczywiście przyspieszy_ można
    zacząć o tym myśleć. Często jest to nieopłacalne,
    za dużo pracy, za mało korzyści.


    pzdr
    bartekltg


  • 5. Data: 2012-01-29 21:56:30
    Temat: Re: asm jako jezyk elitarny
    Od: Edek <e...@g...com>

    On 01/29/2012 09:54 PM, f...@g...pl wrote:
    > bartekltg<b...@g...com> napisał(a):
    >
    >> W dniu 2012-01-29 21:14, f...@g...pl pisze:
    >>
    >>> kwetia jest taka czy asm (przy tej malej popularnosci)
    >>> jest jezykiem elitarnym (jak patrza niektorzy) czy tez
    >>> jezykiem ktory sie do nieczgo nie nadaje (jak patrza inni)
    >>
    >> Nadaje siÄ? tylko do bardzo specyficznych zastosowaĹ?.
    >> JuĹź nawet programujÄ?cy kontrolery przestawili
    >> siÄ? na jÄ?zyki 'wyĹźszego poziomu'. KilkanaĹ?cie/dziesiat lat temu;)
    >>
    >> Jak hcesz pobawiÄ? siÄ? jezykami mniej popularnymi i wymagajÄ?cymi
    >> zdolnoĹ?ci intelektualnych (przez to moĹźna je rozumieÄ? jako elitarne),
    >> to zajmij siÄ? jÄ?zykami funkcyjnymi,prologiem czy innymi wynalazkami
    >> (moĹźe smalltalk:)
    >>
    > a wlasnie nie lubie takiego kombinowania, jezykow funkcyjnych nie
    > umiem na dzis ni w ząb

    Widać, że nawet nie wiesz o istnieniu elitarnych rzeczy. Spory procent
    prac na różne tematy informatyczne, jakie czytałem w ostatnim czasie,
    napisane były w języku odpowiednim do tematu, co często oznaczało
    Haskell. Kiedyś bardziej popularny był Lisp (lub Scheme), dzisiaj [1]
    częściej jest to Haskell; często też używa się pseudokodu, który
    często i gęsto upraszcza chociażby operowanie na kolekcjach,
    które mają sporo syntaxu w dowolnym języku, sprowadzając je
    do operowania matematycznego na zbiorach lub innych strukturach.

    Widzisz, programowanie w assemblerze było wyzwaniem w czasach Atari,
    Commodore'a czy może DOSa, gdzie można było tylko w ten sposób wyjść
    poza ograniczenia systemowe. Nie, nie było tam nawet hexedytora
    (ręki sobie nie dam uciąć, dawno to było, czy był na DOSie).

    Dzisiaj faktycznie pisze się w asemblerze rzeczy typu optymalizowanie
    AESa (nie było AES-NI) lub np. kodeków, czasami wykonuje się
    niedostępne w C operacje typu atomic czy cpuid; czasami twardo
    optymalizuje się jakieś proste operacje, ale w zasadzie tylko wtedy,
    gdy profilowanie pokazuje, że nie innej opcji.

    Sztuką jest raczej stworzenie czegoś pożytecznego, niż shuflin
    shuflin za pomocą SSE z powodu fascynacji, która do niczego
    nie prowadzi i szybko się znudzi dodając uczucie niezłej pustki
    motywacyjnej we łbie.

    Swoją drogą, ciekawy byłbym, do czego faktycznie używa się
    assemblera dzisiaj, sam nie mam doświadczeń.

    >
    >> JeĹ?li nie budujesz kompilatora albo nie piszesz bibliteki numerycznej
    >> wykorzystujÄ?cej najnowsze sztuczki to siedzenie w asm jest stratÄ?
    >> energii.
    >>
    >
    > co do tracenia energii to jestem w tym znakomity, akurat planuje
    > pisac kompiler, ale nawet pominawszy to chyba jest sens uczyc sie
    > i uzywac asemblera jesli przepisanie kluczowych procedur na asm
    > moze przyspieszyc aplikacje o jakis procent - z tym to nie wiem
    > jak jest, zle moze pomierze to troche w najblizszym czasie

    Poleciłbym na wstęp chociażby Rats!, ale praca - chyba równoważna
    magisterskiej - wymaga Haskella i trochę teorii nt gramatyk
    (Chomsky itd.). Chociaż ja prawie nie znam Haskella, więc może
    znajomość mechanizmów języków funkcyjnych wystarczy, przynajmniej
    na moim poziomie zrozumienia tego tekstu. Bez parsera
    na dzień dobry kompilatora nie napiszesz.

    >
    > kcalkiem niedawno przyspieszylem jedna gierke okolo 2 razy
    > (ramka spadla z 30 ms do ok 15 ms) przez zamienienie czterech
    > intow na floaty (czy cos takiego bo nei pamietam byc moze
    > dokladnie)

    Brawo. Zapewne nie był to przypadek, wynikało to z głębokiego
    zrozumienia IntelOPtimisationGuide.

    - staranne traktowanie procka mysle moze miec jednak
    > sens i gdyby np okazywalo sie ze przy umiejetnosci poprawiania
    > kodu i popopoprawianiu paru procedur w asmie program dzialal
    > dwa razy plynniej to warto sie uzyc i uzywac asma
    >

    Traktuję procki starannie, nie dotykam nóżek tłustymi łapami
    i staram się uziemić wcześniej ;) Ale i tak do składania kompa
    muszę wcześniej pifko szczelić, bo mi ssie łapy częsą bez tego
    ohydnie ;)

    Nie będzie działał dwa razy płynniej dzięki rzeźbieniu w asm.

    Edek


  • 6. Data: 2012-01-29 22:35:07
    Temat: Re: asm jako jezyk elitarny
    Od: " " <f...@g...pl>

    bartekltg <b...@g...com> napisał(a):

    > W dniu 2012-01-29 21:54, f...@g...pl pisze:
    > > bartekltg<b...@g...com> napisał(a):
    > >
    > >> W dniu 2012-01-29 21:14, f...@g...pl pisze:
    > >>
    > >>> kwetia jest taka czy asm (przy tej malej popularnosci)
    > >>> jest jezykiem elitarnym (jak patrza niektorzy) czy tez
    > >>> jezykiem ktory sie do nieczgo nie nadaje (jak patrza inni)
    > >>
    > >> Nadaje się tylko do bardzo specyficznych zastosowań.
    > >> Już nawet programujący kontrolery przestawili
    > >> się na języki 'wyższego poziomu'. Kilkanaście/dziesiat lat
    temu;
    > )
    > >>
    > >> Jak hcesz pobawić się jezykami mniej popularnymi i wymagającymi
    > >> zdolności intelektualnych (przez to można je rozumieć jako
    elitarne
    > ),
    > >> to zajmij się językami funkcyjnymi,prologiem czy innymi wynalazkami
    > >> (moĚźe smalltalk:)
    > >>
    > > a wlasnie nie lubie takiego kombinowania, jezykow funkcyjnych nie
    > > umiem na dzis ni w ząb
    >
    > Na tym polega nauka. Czegoś nie wiesz, a potem wiesz.
    >
    > >
    > >> Jeśli nie budujesz kompilatora albo nie piszesz bibliteki numerycznej
    > >> wykorzystującej najnowsze sztuczki to siedzenie w asm jest stratą
    > >> energii.
    > >>
    > >
    > > co do tracenia energii to jestem w tym znakomity, akurat planuje
    > > pisac kompiler, ale nawet pominawszy to chyba jest sens uczyc sie
    >
    > Ale wiesz, że kompilator to kawał matematyki. Znacznie bardziej
    > abstrakcyjnej niż całki i macierze.
    >
    > > i uzywac asemblera jesli przepisanie kluczowych procedur na asm
    > > moze przyspieszyc aplikacje o jakis procent - z tym to nie wiem
    > > jak jest, zle moze pomierze to troche w najblizszym czasie
    >
    > Te sytuacje nie zdarzają się tak często (np kompilator
    > nie używa jakeijś instrukcji, która tu pasuje).
    > A współczesny procesor to skomplikowana bestia,
    > łatwo napisać gorzej inż kompilator.
    >
    > > kcalkiem niedawno przyspieszylem jedna gierke okolo 2 razy
    > > (ramka spadla z 30 ms do ok 15 ms) przez zamienienie czterech
    > > intow na floaty (czy cos takiego bo nei pamietam byc moze
    > > dokladnie)
    >
    > Ale to jest operacja jak najbardziej moĹźliwa w takim
    > 'półassemblerze' jak C czy innych normalnych językach.
    >
    > > - staranne traktowanie procka mysle moze miec jednak
    > > sens i gdyby np okazywalo sie ze przy umiejetnosci poprawiania
    > > kodu i popopoprawianiu paru procedur w asmie program dzialal
    > > dwa razy plynniej to warto sie uzyc i uzywac asma
    >
    > Przy założeniu _że rzeczywiście przyspieszy_ można
    > zacząć o tym myśleć. Często jest to nieopłacalne,
    > za dużo pracy, za mało korzyści.
    >

    jest to jakis temat: na czym polega roznica (co do
    szybkosci w pisaniu i inn) w pisaniu programow np w
    c# i okolicach kontra pisanie w c+asm

    osobiscie jakos 'nie chwytam' tej roznicy, co do szybkosci
    pisania to wydaje mi sie (z grubsza) taka sama (bo mw
    tyle samo wyrazen trzeba wklepac)

    co do szybkosci nauki jednego i drugiego trudno mi
    powiedziec (i tu i tu trzeba sie sporo nauczyc,
    troche wspolnych i sporo tez innych rzeczy, trudno
    porownac)

    nie bardzo widze tez na czym polega roznica w łatwosci
    jednego i drugiego (obiektowe biblioteki to dla mnie
    jednak swoistego rodzaju koszmar, ale api w c tez trzeba
    oswoic itd)

    kompletnie niestety nie umiem porownac (przynajmniej jak
    na dzis) tych dwu rodzajow programowania, wyjawszy to
    ze jak przypominam sobie te wysokopoziomowe jezyki i liby
    to od razu mi sie robi niedobrze ( jednyna rzecza ktora
    wyraznie widze jako roznice to wysoka w sensie umyslowym
    jakosc c+asm kontra kiepska C# OOP itd - ale reszty
    porownac i wymienic co gdzie jest inne jakos nie moge









    >
    > pzdr
    > bartekltg
    >


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 7. Data: 2012-01-29 22:54:54
    Temat: Re: asm jako jezyk elitarny
    Od: " " <f...@g...pl>


    > Nie będzie działał dwa razy płynniej dzięki rzeźbieniu w asm.

    to czy bedzie dzialal plynniej czy nie da sie sprawdzic

    np tu jest kawalek kodu (niespecjalnie wyjsciowy) elementy
    raytracera

    http://dl.dropbox.com/u/42887985/rel29.zip

    moge sprobowac przepisac to czesciowo na sma, i zobacze
    ile to da; moze w tygodniu lub w weekand za tydzien




    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 8. Data: 2012-01-30 01:25:38
    Temat: Re: asm jako jezyk elitarny
    Od: " M.M." <m...@g...pl>

    <f...@g...pl> napisał(a):

    > kcalkiem niedawno przyspieszylem jedna gierke okolo 2 razy
    > (ramka spadla z 30 ms do ok 15 ms) przez zamienienie czterech
    > intow na floaty (czy cos takiego bo nei pamietam byc moze
    > dokladnie) - staranne traktowanie procka mysle moze miec jednak
    > sens i gdyby np okazywalo sie ze przy umiejetnosci poprawiania
    > kodu i popopoprawianiu paru procedur w asmie program dzialal
    > dwa razy plynniej to warto sie uzyc i uzywac asma

    Niezbyt czesto musze martwic sie wydajnoscia implementacji, z
    rzadka mi sie zdarza. Wtedy najczesciej obserwuje takie
    problemy:
    1) brak zrownoleglenia (jesli mozna to podciagnac pod implementacje)
    2) brak optymalizacj cache
    3) w wiekszych programach zla struktura danych, zbyt duze straty na konwersje

    Ostatnio wzialem pod lupe pewien programik do generowania lasow drzew
    regresyjnych. Program jest napisany bardzo intuicyjnie, np. kazdy
    rekord z pliku jest alokowany przez new i sa listy rekordow (a nie tablice
    liniowe). Program uzywa (chyba) dobrego algorytmu ale ma kiepska
    implementacje. Nie ma zoptymalizowanej pamieci cache i nie jest
    zrownoleglony ani nie ma jednej globalnej struktury danych przyjaznej
    dla wszystkich procedur, tylko robi konwersje.

    No wiec zaczalem go przyspieszac. Zadnego z przyspieszen nie dokonczylem,
    co bylem bliski ukonczenia, to wpadalem na jeszcze jedno udoskonalenie :D

    Jednak z wstpenych pomiarow czasow wykonania podprocedur moge juz oszacowac
    ze wersja finalna przyspieszy 200 razy (slownie dwiescie), czyli okolo 40
    razy jakby nie liczyc zrownoleglenia. Obie wersje programu sa napisane w
    proceduralnym C++.

    Wiec mam ta sama watpliwosc co Bartek: czy trzeba uzywac asemblera zeby
    przyspieszac programy? Bym zyskal przyspieszenie 400 razy w asemblerze?

    Pozdrawiam!






    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 9. Data: 2012-01-30 03:05:43
    Temat: Re: asm jako jezyk elitarny
    Od: bartekltg <b...@g...com>

    W dniu 2012-01-29 23:35, f...@g...pl pisze:


    >
    > jest to jakis temat: na czym polega roznica (co do
    > szybkosci w pisaniu i inn) w pisaniu programow np w
    > c# i okolicach kontra pisanie w c+asm
    >
    > osobiscie jakos 'nie chwytam' tej roznicy, co do szybkosci
    > pisania to wydaje mi sie (z grubsza) taka sama (bo mw
    > tyle samo wyrazen trzeba wklepac)

    A próbowałeś coś napisać?

    Pomińmy sprawy GUI, interfejsy... Jakieś proste
    zadanka algorytmiczne (wejscie i wyjście z konsoli)?

    http://potyczki.mimuw.edu.pl/user.phtml?op=zadania

    Mam napisane wie, pec, wsp, prz, sis
    oraz pal i plo z jakimiś głupim błędami.

    Żadne z nich nie ma ponad 100 linii, sporo ma 30~40.
    Implementacja też nie trwała zbyt długo (choć
    rozwiązanie zadania nieraz wymagało zastanowienia:).

    Wybierz jakieś spokojniejsze zadanie i porównamy
    włożoną pracę.

    BTW, przyjemny konkursik, tylko czasu nigdy nie ma.

    pzdr
    bartekltg


  • 10. Data: 2012-01-30 06:39:25
    Temat: Re: asm jako jezyk elitarny
    Od: Borneq <b...@a...hidden.pl>

    W dniu 2012-01-30 02:25, M.M. pisze:
    > Ostatnio wzialem pod lupe pewien programik do generowania lasow drzew
    > regresyjnych. Program jest napisany bardzo intuicyjnie, np. kazdy
    > rekord z pliku jest alokowany przez new i sa listy rekordow (a nie tablice
    > liniowe). Program uzywa (chyba) dobrego algorytmu ale ma kiepska
    > implementacje. Nie ma zoptymalizowanej pamieci cache i nie jest
    > zrownoleglony ani nie ma jednej globalnej struktury danych przyjaznej
    > dla wszystkich procedur, tylko robi konwersje.

    Czy alokowanie przez new rzeczywiście tak nieefektywne? W C# i Javie
    chyba nie można się bez tego obyć, tylko że tam new jest szybsze.
    Listy rekordów chyba są dość szybkie

strony : [ 1 ] . 2 ... 6


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: