Niski poziom vs wysoki poziom

1

Co jest trudniejsze: programowanie wysokopoziomowe czy niskopoziomowe?
Zakładam temat bo dzisiaj spotkałem kolejnego programistę C++, który uważa się za mega haxora i gardzi wysokim poziomem. A jakie jest wasze zdanie?
Z dopiskiem:
"ów wątek nie ma jednego kierunku i dozwolony jest całkowity off-top w jego obrębie"

1

A od kiedy C++ to jest low-level? Obiektowość i metaprogramowanie to niski poziom? o_O'
Rozumiem ze asembler jest poza kategorią?

Co jest trudniejsze? Oczywiście że niskopoziomowe programowanie jest trudniejsze, bo wymaga więcej myślenia i ostrożności. W takiej Javie nie musisz się specjalnie przejmować alokacją i dealokacją pamięci, czy też wyciekami (poza specjalnymi przypadkami). W C to jest jeden z kluczowych problemów.
Programista C musi myśleć w kategoriach funkcji, zmiennych, a programista Javy myśli w kategoriach obiektów. W ten sposób teoretycznie w Javie moze kodzić każdy, kto opanuje jej składnie, bo nie musi rozumieć jak coś się dzieje, wystarczy mu praca na wysokim poziomie abstrakcji.

0

Co jest trudniejsze? Oczywiście że niskopoziomowe programowanie jest trudniejsze, bo wymaga więcej myślenia i ostrożności. W takiej Javie nie musisz się specjalnie przejmować alokacją i dealokacją pamięci, czy też wyciekami (poza specjalnymi przypadkami). W C to jest jeden z kluczowych problemów.

A brałeś udział w jakimś większym projekcie wysokopoziomowym?
Zaręczam, że można się pociachać tak samo jak przy niskim poziomie. I zazwyczaj są to błędy logiczne a nie zwykłe pomyłki jak ze wskaźnikami. A żeby naprawić błąd logiczny trzeba znać działanie i właściwości systemu. Przy błędach związanych z pamiecią wystarczy prześledzić alokacje i zwalnianie oraz odwołania do pamięci. Do tego są narzędzia (jak valgrind), które bardzo to ułatwiają.
Przykład z poprzedniego projektu: serwer aplikacji (nie jakiś standardowy tomcat czy jboss), automatyczne zarządzanie wątkami. Wystarczyło użyć zmiennej prywatnej pomiędzy przełączeniem się wątków, żeby złapać ciężkiego do wykrycia buga. Wątki nie przełączały się w standardowy sposób tylko przy niektórych operacjach tak więc można było używać zmiennych pól obiektów bezpiecznie pomiędzy tymi operacjami.

W ten sposób teoretycznie w Javie moze kodzić każdy, kto opanuje jej składnie, bo nie musi rozumieć jak coś się dzieje, wystarczy mu praca na wysokim poziomie abstrakcji.

To, że pracuje się na wysokim poziomie abstrakcji wcale nie zwalnia ze znajomości niższych warstw. Im większa więdza tym lepszym programistą będziesz. A wyższy poziom abstrakcji to kolejne warstwy do opanowania. Kiedy wiedza z niższych warstw się przydaje? Wtedy kiedy coś się psuje w niższej warstwie i trzeba stwierdzić czy to twoja warstwa nawala czy coś poniżej.

Myślę, że opinia że wysoki poziom jest prostszy bierze się z tego, że prościej napisać mało zaawansowaną aplikację. IMHO sytuacja się odwraca przy bardziej zaawansowanych aplikacjach.

0
Shalom napisał(a)

A od kiedy C++ to jest low-level?

od chwili kiedy pojawily sie jezyki wyskoiego poziomu (java, c#).

Shalom napisał(a)

Obiektowość i metaprogramowanie to niski poziom? o_O'

Nie, ale reczne zarzadzane pamiecia zdecydowanie tak.

0

Akurat obiektowość w C++ jest bardzo niskopoziomowa co utrudnia stosowanie niektórych wzorców projektowych (przez co ich się po prostu nie stosuje). A niektóre zupełnie umożliwia jak chociażby Inversion of Control.

0
Shalom napisał(a)

Co jest trudniejsze? Oczywiście że niskopoziomowe programowanie jest trudniejsze, bo wymaga więcej myślenia i ostrożności.

Programista obiektowy musi umieć podzielić problem na klasy i odpowiednio je ze sobą powiązać. Dobry podział jest zadaniem nietrywialnym, także wymaga myślenia i ostrożności, a błędy mogą mieć ogromne konsekwencje. Remis ;)
No chyba, że masz gdzieś pod ręką wzór na przeliczanie trudności myślenia typu A na myślenie typu B.

rnd napisał(a)

Kiedy wiedza z niższych warstw się przydaje? Wtedy kiedy coś się psuje w niższej warstwie i trzeba stwierdzić czy to twoja warstwa nawala czy coś poniżej.

Albo gdy trzeba coś realnie zoptymalizować (w sensie nie MessageBoxy ;)).

0

Realnie optymalizuje się algorytmy, zmniejsza złożoność obliczeniową, nie molestuje niskopoziomową implementację, wyjątki to przypadki mocno skrajne.

0

Faktem jest jednak, ze programiści wysokopoziomowi i prawdziwi "wymiatacze" .NET, pasjonaci C# i nUnit często nie wiedzą jak to wszystko działa na niższym poziomie i twierdzą, że nie muszą tego wiedzieć.
Sam nie jestem pewien, czy nie mają racji, bo rzadko jest potrzeba implementacji czegoś na niskim poziomie przy użyciu .NET.

Ale dla mnie zdarzały się przypadki, gdy musiałem odwoływać się do WinApi z poziomu C# - przykład, kto by pomyśłał, że w .NET nie ma wbudowanej możliwości ustawienia daty i czasu (odczyt jest, ustawiania - nie ma). Mogłbym przytoczyć jeszcze sporo dupereli, jak i bardziej zaawansowanych rzeczy, które jednak wymagają zejścia trochę niżej.

O javie sie nie wypowiadam, bo nic o niej nie wiem.

Co do tego, co jest łatwiejsze - na początku na pewno cos na wyższym poziomie czyli java i C#, bo jest masa ułatwień w składni, brak wskaźników (zmora początkujących w C++) i łatwiej napisać coś co działa i się nie wywali. A jak sie wywali to zawsze wiadomo dlaczego (nie ma AV po godzinie działania programu np.) Jakość powstającego kodu to inny temat już.

0

Myślę, że do pisania zwykłych aplikacji użytkowych nie jest potrzeba wiedza nisko poziomowa, wystarczy być przysłowiowym "klikaczem". Dopiero przy bardziej zaawansowanych projektach taka wiedza może być z pożytkiem wykorzystana.

Na początku swojej drogi jako programista może się nam wydawać, że wiedza o tym jak działa komputer, jak przydziela pamięć, co to jest stos i sterta, co to jest wskaźnik, do czego jest xor, jak się robi działania na bitach itd. jest zbędna ale jeżeli jej nie opanujemy to z pewnością nie będziemy "kompletnymi programistami".

Podsumowując programista wysokopoziomowy musi mieć wiedzę przybliżoną do programisty niskopoziomowego + znajomość programowania wysokopoziomowego, więc w żadnym wypadku nie może się nazwać gorszym programistą.

0
somekind napisał(a)
Shalom napisał(a)

Co jest trudniejsze? Oczywiście że niskopoziomowe programowanie jest trudniejsze, bo wymaga więcej myślenia i ostrożności.

Programista obiektowy musi umieć podzielić problem na klasy i odpowiednio je ze sobą powiązać. Dobry podział jest zadaniem nietrywialnym, także wymaga myślenia i ostrożności, a błędy mogą mieć ogromne konsekwencje. Remis ;)

Nie przesadzasz?

Prawda jest taka, że wszystko rozchodzi się o czas i pieniądze. Programista "wysoko pozimowy" ma stworzyć aplikację szybko i niezawodnie, więc kompilator/biblioteki dostarczają mu tonę gotowych uniwersalnych rozwiązań (wyjątki, obiekty, garbege colector). To jest programowanie jak w fabryce.

Programista nisko pozimowy najczęściej musi pracować ze sprzętem i musi dbać o wydajność aplikacji (nie zapominając o obsłudze błędów, która musi zrobić sam, bo nie ma do dyspozycji wyjątków). W praktyce sprowadza się to wyłącznie do obsługo sprzętu (zwykle sterowników).
Nie ma co kryć zakres wiedzy i sprawność umysłowa takiego człowieka musi być o wiele większa.

Jednak zauważyłem, że osobnik uważający się za lepszego tylko dlatego, że programuje niskopoziomowo, zwykle ma też "niskopoziomowe" umiejętności ;) .

0

Programowanie niskopoziomowe samo w sobie wcale nie wymaga wybitnych zdolności intelektualnych. Sterowniki? Poza driverami do grafiki/audio to jest to nudna, bezmyślna klepanina i debugowanie. Programowanie niskopoziomowe to powinno być wyłącznie programowanie systemowe, i nic więcej.

Ja rozumiem, że (crack)scenowcy prześcigali się w tworzeniu coraz bardziej wymyślnych i efektywniejszych niskopoziomowych rozwiązań, ale to była sztuka dla sztuki, tworzenie dla idei. Nikt nigdy nie uważał projektów scenowych za normalne oprogramowanie.

Zwykle koledzy 'niskopodłogowcy' zapominają, że istnieje coś takiego jak inżynieria oprogramowania, projekty większe niż kilkanaście kB... zapominają bo znają je tylko ze słyszenia. Chciałbym przypomnieć, że realne programowanie to architektura, algorytmy, struktury danych, abstrakcja... nie masturbacja językiem programowania. Prawda jest taka, że realna trudność to rozwój faktycznie dużego projektu i wdrożenie, nie jakaś *poziomowość.

BTW, weź ktoś do kolegi cybera napisz, bo on do innych działów niż IO chyba nie zagląda, jego zdanie może być ciekawe.

0
... napisał(a)

BTW, weź ktoś do kolegi cybera napisz, bo on do innych działów niż IO chyba nie zagląda, jego zdanie może być ciekawe.

Nie ma sprawy tez sie dolacze [;

Umiejetnosc nie tylko programowania na niskim poziomie co jego interpretacji (rozpoznawaniu kluczowych konstrukcji jezyka wysokiego poziomu) jest bardzo pomocne przy debugowaniu.

Wiem ze teraz metody debugujace w zaawansowanych srodowiskach developerskich idelnie pokazuje gdzie w kodzie na wysokim poziomie jest blad konczacy prace programu, czy tez metoda na inspekcje wartosci danych zmiennych w czasie pracy programu.

Oczywiscie jesli korzystamy z takich srodowisk mozemy (programisci etc) sobie zapomnac o metodach na niskim poziomie.

Nikt kto jest zdrowy racjonalnie nie pisze calych projektow w asm, owszem kluczowe metody:

szyfrowanie, dekodowanie, antidebuging, antidiasembling

Teraz nawet najzlosliwszy asemblerowiec pisze kod na wysokim poziomie.

Porusze jeszcze kwestie poziomow, c/cpp to jezyki wysokiego poziomu dalsze abstrakcje w kierunku ulatwiania budowania softu powinny sie nazywac jezykami najwyzszego poziomu (tak by pomysla asemblerowiec pewnie ktory sam dba o prologi procedur, pamieci stert etc).

Podsumowujac umiejetnosc interpretacji oprogramowania w mnemonikach asemblera to dodatkowy atut programisty, jesli ma naprawde problem nie do rozwiazania moze go zinterpretowac na najnizszym dostepnym poziomie aby go wyeliminowac etc.

0

Umiejetnosc nie tylko programowania na niskim poziomie co jego interpretacji (rozpoznawaniu kluczowych konstrukcji jezyka wysokiego poziomu) jest bardzo pomocne przy debugowaniu.

Zwłaszcza, że debugowanie na innym poziomie niż kodu źródłowego to wyłącznie broszka reverse engineerów? W debugowaniu normalnego oprogramowania nie powinna nigdy zajść potrzeba debugowania na poziomie kodu maszynowego. Argument z kosmosu - podaj realny przykład.

Nikt kto jest zdrowy racjonalnie nie pisze calych projektow w asm, owszem kluczowe metody:

szyfrowanie, dekodowanie, antidebuging, antidiasembling

Szyfrowanie? Kodowanie? Bzdura, przy kompilatorach automatycznie wektoryzujących kod? Masz 16 lat, nie możesz pamiętać czasów, kiedy jeszcze się asma do tego używało. Antydebug? Aktualnie praktycznie wszystkie antydebug, antydisasm itd. się w C++ implementuje - polecam triale firm AV, zadania z konkursów branżowych itd. Spore fragmenty protectorów to też C++.

Pozwolę sobie mały OT wtrącić. Kolejny raz (widać po Twoich źródłach) mieszasz szyfrowanie i dekodowanie. Szyfrowanie to szyfrowanie, kodowanie to kodowanie, to dwie różne dziedziny, oparte na różnych podstawach, o różnych celach. Wypadałoby się i tego douczyć.

Teraz nawet najzlosliwszy asemblerowiec pisze kod na wysokim poziomie.

Nie teraz, zawsze tak było. Panorama-Engine, znany chociażby z zina crackerskiego TAC to był C++. Jedynie wybitnie reprezentacyjne klamoty scenowe się w asm pisało. Algorytmy na MMX/SSE zaś nie pisało wprost w asm, a z użyciem funkcji/makr kompilatora - każdy kompilator takowe posiada, zwykle nawet kompatybilne z tymi z kompilatorów Intela. Wiesz dlaczego? Bo kompilator potencjalnie może jeszcze lepiej podkręcić Twoje algo.

Porusze jeszcze kwestie poziomow, c/cpp to jezyki wysokiego poziomu dalsze abstrakcje w kierunku ulatwiania budowania softu powinny sie nazywac jezykami najwyzszego poziomu (tak by pomysla asemblerowiec pewnie ktory sam dba o prologi procedur, pamieci stert etc).

Bzdura, C i C++ to języki średniego poziomu, przenośne assemblery z udogodnieniami. Swoją drogą assembler nigdy nie oznaczał ręcznego dbania o prologi i epilogi, format przekazywania argumentów, jedynie je umożliwiał. Skoro Delphi ma być językiem najwyższego poziomu to jakiego poziomu jest SQL, Haskell, Prolog?

Podsumowujac umiejetnosc interpretacji oprogramowania w mnemonikach asemblera to dodatkowy atut programisty, jesli ma naprawde problem nie do rozwiazania moze go zinterpretowac na najnizszym dostepnym poziomie aby go wyeliminowac etc.

LOL. Problemy to są w doborze algorytmu, projektowaniu architektury itd. - to kolejne miejsce, gdzie za samą myśl o assemblerze powinno się kastrować. Nigdy w realnym programowaniu nie rozwiązuje się problemów przez pryzmat niskopoziomowej reprezentacji. Znowu assembler nie jest tutaj atutem - podaj realny przykład takiego problemu.

0
... napisał(a)

Argument z kosmosu - podaj realny przykład.

<ort>Zaluzmy </ort>ze ktos pisze w cpp i popelnil problem operacji przy wskaznikach do sterty pamieci (heapu), program probuje zapisac pod inny adres w przestrzeni pamieci procesu, leci seh i jest kladziony wyjatek. W kazdym debugerze widac taki problem <ort>Od razu</ort>:

MOV DWORD [EAX],EBX

gdzie eax jest wskaznikiem do nieodpowiedniego miejsca i co wysypka ... jasno widac w debugerze ze pod adresem w rejestrze EAX jest nieprawidlowa wartosc, blad wskaznika dalej to tylko sprawdzenie operacji przy przypisywaniu wartosci do rejestru akumulatora i dalsza interpretacja. Bardzo pomocna jest znajomosc asm.

... napisał(a)

Masz 16 lat

Nastepna Twoja pomylka mam 23 lata i niedlugo koncze inzyniera [;

... napisał(a)

nie możesz pamiętać czasów, kiedy jeszcze się asma do tego używało.

I tu kolejna wynikajaca z poprzedniej, moj pierwszy komputer to 486 dx 2 100MHz wiec mialem wystarczajacy kontakt z niskim poziomem. Mala wstawka asm z przerwaniem i mozna wylozyc debuger.

Antidiasembling ? Patcher kodujacy sekcje kodu ? Czlowieku opanuj sie przeciez wszystko zakladasz z gory, udowodnij to.

... napisał(a)

Swoją drogą assembler nigdy nie oznaczał ręcznego dbania o prologi i epilogi, format przekazywania argumentów

Jak korzystales z makroasemblera to invoke kazdy moze stosowac, przekazywanie argeumtow obiektu przez stos to juz wlasna inwencja epilogu przed call'em.

A kto posprzata wywolanie ? Albo Twoja procedura wywolana albo wywolujaca zalezy jaka stosujesz konwencje). A moze tablica zmiennych na stosie ? To tez jest juz inwencja tworza programisty. Programowales kiedys w asm moze bo widze ze bzdury piszesz?

Mam wystarczajacy wiek aby posiadac wlasne doswiadczenie zlwaszcza ze zajmujs sie tym od dziecinstwa.

0
cyber_pl napisał(a)

Zaluzmy ze ktos pisze w cpp i popelnil problem operacji przy wskaznikach do sterty pamieci (heapu), program probuje zapisac pod inny adres w przestrzeni pamieci procesu, leci seh i jest kladziony wyjatek. W kazdym debugerze widac taki problem Od razu:

MOV DWORD [EAX],EBX

gdzie eax jest wskaznikiem do nieodpowiedniego miejsca i co wysypka ... jasno widac w debugerze ze pod adresem w rejestrze EAX jest nieprawidlowa wartosc, blad wskaznika dalej to tylko sprawdzenie operacji przy przypisywaniu wartosci do rejestru akumulatora i dalsza interpretacja. Bardzo pomocna jest znajomosc asm.

Bzdura i to straszna, listing nic konkretnego nie daje. W debuggerze od razu widać informację o naruszeniu dostępu podczas zapisu pod ten i pod ten adres, z podświetloną linijką kodu źródłowego. SEH nie ma tu nic do gadania, przykład:

*(int *)0x666 = 69;

i od razu debugger podświetla mi tę linię i wywala:

exception at 0x0041138e in tcpppl.exe: 0xC0000005: Access violation writing location 0x00000666.

Wniosek? Ty nigdy debuggera innego niż assembly-level nie używałeś.

cyber_pl napisał(a)

<Nastepna Twoja pomylka mam 23 lata i niedlugo koncze inzyniera [;

To dlaczego na wszystkich portalach (nie tylko pod tym nickiem) jeżeli podajesz wiek to masz jako datę urodzenia 2- 6-1993? Gdybyś miał 23 lata i siedział w tym biznesie tyle ile deklarujesz to byśmy się wiedziałbym o Tobie, to raz. Dwa, takich bzdur raczej byś nie pisał, wszystkie Twoje wypowiedzi potwierdzają deklarowany wiek. Poza tym w historii mojej obecności na 4p pomyliłem się 4 razy, ani jedna pomyłka nie miała związku z Tobą ;]

cyber_pl napisał(a)

Antidiasembling ? Patcher kodujacy sekcje kodu ? Czlowieku opanuj sie przeciez wszystko zakladasz z gory, udowodnij to.

Hacker Challenge 2008, phase 3 - fragmenty sekcji kodu szyfrowane i deszyfrowane w runtime, algorytm AES, pure C++. Twoja niewiedza jest taka słodka ;]

cyber_pl napisał(a)

Jak korzystales z makroasemblera to invoke kazdy moze stosowac, przekazywanie argeumtow obiektu przez stos to juz wlasna inwencja epilogu przed call'em.

A kto posprzata wywolanie ? Albo Twoja procedura wywolana albo wywolujaca zalezy jaka stosujesz konwencje). A moze tablica zmiennych na stosie ? To tez jest juz inwencja tworza programisty.

Jasne, można to robić niestandardowo, pozostaje jeden problem - taki niestandardowy kod staje się bezużyteczny po jednokrotnym użyciu. Dodatkowo Intel opisuje standardowe konwencje wywołań, sposoby tworzenia ramek stosu itd. - są one po to aby się ich trzymać. Kolejna sprawa - brak kompatybilności z czymkolwiek. Ostatnia sprawa - każdy poważniejszy assembler (translator) od dziesiątek lat wspiera konwencje wywołań, deklaracje zmiennych lokalnych itd. - jak pisałem, można z tego korzystać, nie trzeba.

'Tablica zmiennych' - to już Twoja terminotwórcza inwencja [rotfl]

cyber_pl napisał(a)

Programowales kiedys w asm moze bo widze ze bzdury piszesz?

Słuchaj, lepiej się zastanów czy kiedyś jeszcze kliknę na 'Logowanie', i co się wtedy stanie. Jasne, że programowałem, przez 2 czy 3 lata pisałem praktycznie wyłącznie w asm, codziennie kilkaset linii (600-800) dobrze przetestowanego kodu, optymalizowałem sterowniki, także takimi sztuczkami o jakich Ci się nie śniło, pisałem najniższe elementy protectorów... Najlepiej spytaj Gynvaela co sądzi o gościu od crackme w Haskellu, którego Ty połamać nie byłeś w stanie, Twój idol Ci nie skłamie.

cyber_pl napisał(a)

Mam wystarczajacy wiek aby posiadac wlasne doswiadczenie zlwaszcza ze zajmujs sie tym od dziecinstwa.

A gdzie drugi przykład? Gdzie sensowne argumenty (bo pierwszy jest, jak mawia erotoman-cepa, z d**y)?</quote>

0
cyber_pl napisał(a)

Mam wystarczajacy wiek aby posiadac wlasne doswiadczenie zlwaszcza ze zajmujs sie tym od dziecinstwa.

Jako dowód podaj chociaż jeden sensowny projekt, w którym brałeś udział.
I proszę nie wysuwaj tu znowu jakieś kolejnej zabawki.

PS. Ja od dzieciństwa zajmuje się grą w kosza... szczerze powiedziawszy jestem w to beznadziejny :P

0
... napisał(a)

Bzdura i to straszna, listing nic konkretnego nie daje. W debuggerze od razu widać informację o naruszeniu dostępu podczas zapisu pod ten i pod ten adres, z podświetloną linijką kodu źródłowego. Wniosek? Ty nigdy debuggera innego niż assembly-level nie używałeś.

Wniosek jest taki ze nie potrafisz czytac, pisalem o tym wczesniej. Dalem nawet w asm metode wysypania, opisalem ja. Gdzie jest moja bzdura w tym "twierdzeniu"? Bzdura jest Twoja riposta ktora nie daje nic nowego na swiatlo dzienne. Wszystko o czym piszesz wiem nie musisz mi to udowadniac, to sa rzeczy ktore sa logiczne i juz dawno <ort>przeze mnie </ort>zname. Podaj powod dalczego to jest bzdura? Nie moge sobie debugowac na najnizszym poziomie? Zabronisz mi, a moze moje srodowisko nie posiada takiego debugera. Pisalem wyzej ze wiekszosc takowy posiada.

... napisał(a)

To dlaczego na wszystkich portalach (nie tylko pod tym nickiem) jeżeli podajesz wiek to masz jako datę urodzenia 2- 6-1993? Gdybyś miał 23 lata i siedział w tym biznesie tyle ile deklarujesz to byśmy się wiedziałbym o Tobie, to raz. Dwa, takich bzdur raczej byś nie pisał, wszystkie Twoje wypowiedzi potwierdzają deklarowany wiek. Poza tym w historii mojej obecności na 4p pomyliłem się 4 razy, ani jedna pomyłka nie miała związku z Tobą ;]

Jestes nie poinformowany, siedze w informatyce i tej branzy od dlugiego czasu, chyba widac ze posiadam konkretne umiejetnosci ktore przecza temu o czym w tym cytacie pisales. Nie byle programmer <ort>zemnie </ort>i <ort>tego </ort>nie mozesz zaprzeczyc.

Poco mam przedstawiac wszystkim swoj wiek? Ty podajesz Swoj ? nawet nicku nie podajesz ... A moze posiadam/posiadalem kilka innych nickow? Co cie to obchodzi informuje tylko autora tematu odnosnie asm. Wszystkie informacje ktore zamiescilem sa rzeczowe i dobrze sformulowane wiec nie pisz wiecej "bzdura" wypraszam sobie bo robisz to caly czas.

... napisał(a)

AES -Twoja niewiedza jest taka słodka

Nie interesuje sie metoda AES czy tez ort!, mnie one nie interesuja a jak zainteresuja postaram sobie sciagnac implementacje <ort>opensources </ort>takich algorytmow w <ort>jakim kolwiek </ort>jezyku przeczytam i bede wiedziec. Co to ma do rzeczy, do tematu ? Przestan pisac idiotyczne riposty.

"zalezy jaka stosujesz konwencje"

... napisał(a)

Jasne, można to robić niestandardowo, pozostaje jeden problem - taki niestandardowy kod staje się bezużyteczny po jednokrotnym użyciu. Dodatkowo Intel opisuje standardowe konwencje wywołań, sposoby tworzenia ramek stosu itd

Czytaj ze zrozumieniem, pisalem o tym w poprzednim poscie. Wiem o tym nie musisz mnie informowa.

... napisał(a)

Najlepiej spytaj Gynvaela co sądzi o gościu od crackme w Haskellu, którego Ty połamać nie byłeś w stanie, Twój idol Ci nie skłamie.

Wiesz co jestes zwyklym lamerem powinni cie zbanowac bo lac wode to ja tez potrafie, widac ze brakuje ci argrumtnow a z G. nie mam zadnego kontaktu, nie obchodzi mnie on i nie jest zadnym moim idolem.

DLACZEGO TEN USER OBRAZA INNYCH UZYTKOWNIKOW? GDZIE JEST ADMINISTRACJA!!!

WYPRASZAM SOBIE TAKIEGO PISANIA O MNIE. PROSZE O REAKCJE.

0

Problem w tym, że to Ty masz problemy z czytaniem ze zrozumieniem i sensowną argumentacją.

Mój nick zna każdy cracker w tym kraju, odgadnie go po jednym moim poście.

0
cyber_pl napisał(a)

DLACZEGO TEN USER OBRAZA INNYCH UZYTKOWNIKOW? GDZIE JEST ADMINISTRACJA!!!

WYPRASZAM SOBIE TAKIEGO PISANIA O MNIE. PROSZE O REAKCJE.

Bo każdy z nas zna tego usera zna i wie że jesteś pryszczem w porównaniu do niego.

Sam zacznij czytać ze zrozumieniem odpowiedzi na twoje 'argumenty'/

A ja ponawiam moje pytanie !

Powiedz w jakich sensownych projektach brałeś udział ?
a powiem ci kim jesteś.

PS. czy znowu unikniesz odpowiedzi lub wzięcia pod uwagę argumentów, które są ci nie na rękę ?

0
walec51 napisał(a)

Powiedz w jakich sensownych projektach brałeś udział ?
a powiem ci kim jesteś.

Co to ma do rzeczy znam niemalze kazdy jezyk, jestem rozgarniety i znam dobrze angielski. A projektow i tak nie wypisze bo nic wam do tego.

Riposty na moje argumenty to lanie w wody, dajcie jakies logiczne przeczenia bo jak <ort>na razie </ort>tylko mnie obrazacie albo lejecie wode ktora jest nie na miejscu, pisalem o tym wczesniej.

Pan ... zapycha ten serwis obrazaniem innych, inni userzy podobnie robia. Zal, warto poszukac innego serwisu gdzie ludzi sie traktuje z szacunkiem co do ich wiedzy a nie na wstepie obraza i leje wode.

0

Co to ma do rzeczy znam niemalze kazdy jezyk, jestem rozgarniety i znam dobrze angielski. A projektow i tak nie wypisze bo nic wam do tego.

O znajomości angielskiego już raz pisałem - Twoje źródła to jaskrawe przykładny nieznajomości podstaw tego języka.

Znasz niemalże każdy język programowania? Sam pisałeś o sobie jakiś czas coś zupełnie innego. Pomijam, że w powszechnym użyciu jest ~100 języków. Proszę, opisz mi to wyrażenie, powiedz co robi i podaj, gdzie jest w nim błąd. Podaj też co to za jezyk.

prepareName = take 32 . zipWith (xor `on` ord) ['z', 'x' ..] . cycle

Pan ...

Jak dla Ciebie - deus.

0

Jak ktoś cię ma traktować poważnie jak piszesz np.

znam niemalze kazdy jezyk

:D
Trochę pokory ;) Jak nie masz racji, albo czegos nie wiesz to na prawdę nic sie nie stanie jeśli się do tego przyznasz, zaręczam ci :)
A deus troche na ciebie naskakuje właśnie dlatego że zgrywasz takiego kozaka i chwalisz się jaki z ciebie jest cracker, asmcoder, re. Ja się na tym nie znam, więc ciężko mi powiedzieć który z was ma rację, ale jestem na tym forum wystarczająco długo żeby wiedzieć ze on jednak jest fachowcem ;)

No ale koniec offtopicowania! ;)

Czy ktos mógłby zamieścić jakieś aktualne zestawienie języków niskiego i wysokiego poziomu (a moze i najwyższego?). Bo inaczej ciężko będzie dyskutować w tym temacie, gdzie dla jednego C++ jest już poziomem wysokim (albo jak ktoś napisał "średnim"), bo przecież można w nim pisać na wysokim poziomie, a dla innego to jest już poziom niski, bo przecież można ręcznie bawić sie pamięcią.
I jak sie w takim zestawieniu prezentują języki funkcyjne albo deklaratywne?

0

Nie wiem, ale znalazłem coś ciekawego w temacie: http://www.yosefk.com/blog/low-level-is-easy.html

0
walec51 napisał(a)
cyber_pl napisał(a)

DLACZEGO TEN USER OBRAZA INNYCH UZYTKOWNIKOW? GDZIE JEST ADMINISTRACJA!!!

WYPRASZAM SOBIE TAKIEGO PISANIA O MNIE. PROSZE O REAKCJE.

Bo każdy z nas zna tego usera zna i wie że jesteś pryszczem w porównaniu do niego.

Sam zacznij czytać ze zrozumieniem odpowiedzi na twoje 'argumenty'/

A ja ponawiam moje pytanie !

Powiedz w jakich sensownych projektach brałeś udział ?
a powiem ci kim jesteś.

PS. czy znowu unikniesz odpowiedzi lub wzięcia pod uwagę argumentów, które są ci nie na rękę ?

A co mnie to obchodzi. Jestem uzytkownikiem i mam tutaj jakies prawa wedlug regulaminu, jesli pozwalacie w regulaminie na obrazanie to znikam<ort> z tad</ort>. Wiekszosc z Was nie ma pojecia o RE, programowaniu na niskim poziomie i popieracie lanie wody usera powyzej "BO MA AUTORYTET" to dlatego moze mnie obrazac "poza regulaminem" ale oczywiscie wszyscy wiedza o czym On pisze i popieraja go. Ludzie gdzie tu jest logika, piszac o jezykach mialem na mysli te najbardziej popularne nie zajmuje sie jakims ochlapem ktory nigdy nie bede stosowal w praktyce, jak bedzie mi potrzebny zapoznam sie z jego skladnia i ort!.

Koniec tej farsy, widze ze nie zagrzeje tutaj miejsca dlatego ze nie spodobalem sie userowi "...", bo jestem kozakiem ktory mu nachodzi na piete ...

0

To zrobimy tak - jeżeli Cię to uszczęśliwi to ja sobie pójdę z 4p całkowicie już.

Przyznaję, mój tzw. autorytet pochodzi z bezsensownego lania wody, wymyślania sobie dokonań i unikania odpowiedzi na pytania. Prawdziwa wiedza obroni się sama.

Tym samym żegnam.

0
cyber_pl napisał(a)

Zal, warto poszukac innego serwisu gdzie ludzi sie traktuje z szacunkiem co do ich wiedzy a nie na wstepie obraza i leje wode.

http://forum.o2.pl/forum.php?id_f=29
[diabel]

0
cyber_pl napisał(a)

A co mnie to obchodzi. Jestem uzytkownikiem i mam tutaj jakies prawa wedlug regulaminu, jesli pozwalacie w regulaminie na obrazanie to znikam<ort> z tad</ort>.

Niby gdzie '...' Cie obraza ? bo nie zgadza sie z towim zdaniem i pisze "Bzdura"? sorki ale chyba sie przez to nie poplakales co ?.

cyber_pl napisał(a)

Koniec tej farsy, widze ze nie zagrzeje tutaj miejsca dlatego ze nie spodobalem sie userowi "...", bo jestem kozakiem ktory mu nachodzi na piete ...

Szczerze nie znam sie na tym co wy tam sobie piszecie bo mnie to nie interesuje za bardzo, ale skoro on w tym pewnie ponad pol zycia spedzil, a ty piszesz rzeczy z ktorymi on sie nie zgadza to chyba ma prawo do tego by Ci wypomniec to czy owo (i na odwrot - jak juz mowilem nie wiem kto ma racje).
A teraz wez chusteczke wytrzyj lzy i sie wysmarkaj.

0

@cyber_pl: Krotka pilka - deus udowodnil nie raz doswiadczalnie, ze zna sie na temacie, a Ty jeszcze nie. Do tego masz strasznie wybujale ego i wydaje Ci sie, ze wiesz wszystko - a to nigdy nie spotyka sie z przyjaznym przyjeciem. Troche pokory, czasem mozna po prostu nie miec racji i nie trzeba sie kreowac na najlepszego na swiecie. Nikt nie wie wszystkiego, a zarzucanie nam, ze nie wiemy o czym mowisz tez jest delikatnym przegieciem. Ty rowniez nie wiesz wszystkiego tego, co wiedza uzytkownicy tego forum, wiec pofolguj nieco i przemysl co mowisz.

0
... napisał(a)

Podsumowujac umiejetnosc interpretacji oprogramowania w mnemonikach asemblera to dodatkowy atut programisty, jesli ma naprawde problem nie do rozwiazania moze go zinterpretowac na najnizszym dostepnym poziomie aby go wyeliminowac etc.

LOL. Problemy to są w doborze algorytmu, projektowaniu architektury itd. - to kolejne miejsce, gdzie za samą myśl o assemblerze powinno się kastrować. Nigdy w realnym programowaniu nie rozwiązuje się problemów przez pryzmat niskopoziomowej reprezentacji. Znowu assembler nie jest tutaj atutem - podaj realny przykład takiego problemu.

ee mam wrazenie ze obaj [CIACH!],

  1. cyber_pl: jak programista ma problem na wyzszym poziomie abstrakcji to tym bardziej go nie wyeliminuje na nizszym poziomie, to nawet sie przeklada na to ze <ort>po to </ort>sa jezyki wysokopoziomowe aby odzielic abstrakcje problemu od sprzetu, o ile w ogole wiesz specu o czym pisze :S

  2. realny problem: a chociazby reprezentacja liczb <ort>zmienno przecinkowych</ort>, jezeli zakres twoich obliczen wykracza poza dokladnosc typow natywnych, np: masz dzialac w pelnym zbiorze liczb rzeczywistych, to masz nic innego jak problem, bo trzeba to obchodzic lopatologicznie jak bignumy, bigfloaty itp, itd, inna kwestia ze mozna to optymalizowac wlasnie za pomoca asma,
    inny przyklad to chociazby CUDA, z tego co slyszalem dane musza byc odpowiednio ulozone, aby mnozenie/dodawanie macierzy przez uklad graficzny mialo jakikolwiek sens i przelozylo sie na wzrost wydajnosci

0

Deus nie opuszczaj nas!!! Ja tam w re się nigdy nie bawiłem, asm tylko na '51 w średniej ale Twoje posty zawsze się świetnie czyta i zawsze się czegoś człek nauczyć może :d

1 użytkowników online, w tym zalogowanych: 0, gości: 1