eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaNauka programowania od czego zacząć?
Ilość wypowiedzi w tym wątku: 263

  • 241. Data: 2011-09-21 14:50:34
    Temat: Re: Nauka programowania od czego zacząć?
    Od: "Marcin Wasilewski" <j...@a...pl>

    Użytkownik "Waldemar Krzok" <w...@z...fu-berlin.de> napisał w
    wiadomości news:9du5jlFhnpU6@mid.uni-berlin.de...

    > No trochę tu przesadzasz, no i definiujesz znów niedokładnie. Napisałeś że
    > znasz różnicę deklaracji od definicji, ale jakoś zanika ta wiedza zaraz
    > potem.

    > Assembler i język wysokiego poziomu są prawie równoważne (język WP da się
    > sprowadzić do assemblera, na odwrót niekoniecznie).

    Nie no bez jaj. To co wykonuje procesor to kod maszynowy, assembler
    polega głównie na tym, że zamiast wpisywać np. $FFFF to wpisujesz NOP, itd.
    Skolei procesor to taka zaawansowana technologicznie maszyna stanów, gdzie
    kolejne sekwencje zer i jedynek wyzwalają dany stan.
    Tak więc wszystko MUSI się dać sprowadzić do kodu maszynowego bo TYLKO to
    potrafi wykonać procesor. A zatem da się też zapisać w postaci programu w
    assemblerze. Nazywa się to disassemblacją i istnieje do tego wiele programów
    robiących to mniej lub bardziej automatycznie.

    http://pl.wikipedia.org/wiki/Deasembler

    > czego wynika, że w assemblerze istnieją zmienne. Deklaracja takowej
    > zmiennej to przydzielenie jej pamięci (czy z "naklejką", czy bez to nie
    > gra roli), definicja to wpisanie do tego obszaru pamięci jakiejś wartości.
    > Inicjacja to wariant definicji i też w assemblerze jest do zrobienia w
    > trakcie kompilacji lub, jak piszesz z wewnątrz programu.

    To proszę bardzo wklej mi kawałek kodu w assemblerze równoważny temu:

    if (a==b)
    {
    int c=5;
    };

    Tu nie chodzi o to, że w assemblerze możesz sobie napisać:

    zmienna dc 10

    Tylko abyś mógł tą zmienną stworzyć z poziomu kodu.

    Powiem Ci jak to działa w C. Program wynikowy w C posiada kod inicjujący,
    który m.in
    przydziela pamięć na tzw. stertę (heap) i to w niej tworzy zmienne globalne
    (zmienne lokalne tworzone są na stosie). Tylko, że potrafi to robić w miarę
    wykonywania programu. Zmienne mogą w tej stercie pojawiać się i znikać w
    czasie działania programu. W zależności od przebiegu programu mogą nie
    pojawić się wcale. W przypadku gdy miejsce na stercie się kończy, kod
    odpowiedzialny za kontrolę tego potrafi dla sterty przydzielić dodatkową
    pamięć. Podczas inicjowania tablic potrafi na nią przydzielić dynamicznie
    pamięć.

    W assemblerze podczas assemblacji tworzone są tzw. chunki "code" (z
    kodem dla procesora), "data" blok ze zdefiniowanymi danymi. Oraz czasami
    chunk z danymi nt. zarezerwowanych obszarów, które są rezerwowane z poziomu
    systemu (dletego, że nie ma sensu aby w pliku był obecny fizycznie obszar
    1024K zawierający same zera). I to wszystko. Te bloki są statyczne -
    powstają wraz z uruchomieniem programu i istnieją do momentu aż ten program
    się przestanie wyknywać. To co wielu nazywa zmienną w assemblerze to właśnie
    taki kawałek pamięci.

    Różnica jest taka, że kod wynikowy w C podczas wykonywania programu
    dynamicznie takie zmienne inicjuje, czy też deallokuje. W assemblerze to
    jest zdefiniowany blok pamięci z danymi i nic więcej.

    I naprawdę mam już dosyć tematu. Jeśli ktoś nadal uważa, że assembler
    potrafi operować na zmiennych, to OK. Jego sprawa. Ci którzy pojmują, że
    assembler to język niskiego poziomu zdają sobie sprawę, że assembler
    obsługuje tylko to co potrafi obsłużyć dany procesor, gdyż jest zależny od
    sprzętu. Wszelkie makra, etykiety itp. służą tylko temu aby ułatwić życie
    programiście, gdyż tak naprawdę zamiast etykiet, można by było podawać od
    razu adresy w pamięci.

    Języki wyższego poziomu posiadają pewną warstwę abstrakcji i nie opisują
    bezpośrednio sprzętu.
    Za to odpowiedzialne są kompilatory, które zamieniają składnię języka na kod
    zrozumiały dla procesora, dodając m.in. kod inicjujący, kontrolny i końcowy.
    Osobną grupą są interpretery (np. wiele języków z rodziny BASIC, ale też np.
    PHP), które nie są kompilowane, a wykonywanie programu polega na
    interpretacji kodu źródłowego, przez specjalny interpreter który jest
    niezbędny do uruchomienia programu.


  • 242. Data: 2011-09-21 14:54:51
    Temat: Re: Nauka programowania od czego zacząć?
    Od: "Marcin Wasilewski" <j...@a...pl>

    Użytkownik "Waldemar Krzok" <w...@z...fu-berlin.de> napisał w
    wiadomości news:9du5jlFhnpU6@mid.uni-berlin.de...

    > No trochę tu przesadzasz, no i definiujesz znów niedokładnie. Napisałeś że
    > znasz różnicę deklaracji od definicji, ale jakoś zanika ta wiedza zaraz
    > potem.

    > Assembler i język wysokiego poziomu są prawie równoważne (język WP da się
    > sprowadzić do assemblera, na odwrót niekoniecznie).

    Nie no bez jaj. To co wykonuje procesor to kod maszynowy, assembler
    polega głównie na tym, że zamiast wpisywać np. $FFFF to wpisujesz NOP, itd.
    Z kolei procesor to taka zaawansowana technologicznie maszyna stanów, gdzie
    kolejne sekwencje zer i jedynek wyzwalają dany stan.
    Tak więc wszystko MUSI się dać sprowadzić do kodu maszynowego bo TYLKO to
    potrafi wykonać procesor. A zatem da się też zapisać w postaci programu w
    assemblerze. Nazywa się to disassemblacją i istnieje do tego wiele programów
    robiących to mniej lub bardziej automatycznie.

    http://pl.wikipedia.org/wiki/Deasembler

    > czego wynika, że w assemblerze istnieją zmienne. Deklaracja takowej
    > zmiennej to przydzielenie jej pamięci (czy z "naklejką", czy bez to nie
    > gra roli), definicja to wpisanie do tego obszaru pamięci jakiejś wartości.
    > Inicjacja to wariant definicji i też w assemblerze jest do zrobienia w
    > trakcie kompilacji lub, jak piszesz z wewnątrz programu.

    To proszę bardzo wklej mi kawałek kodu w assemblerze równoważny temu:

    if (a==b)
    {
    int c=5;
    };

    Tu nie chodzi o to, że w assemblerze możesz sobie napisać:

    zmienna dc 10

    Tylko abyś mógł tą zmienną stworzyć z poziomu kodu.

    Powiem Ci jak to działa w C. Program wynikowy w C posiada kod inicjujący,
    który m.in
    przydziela pamięć na tzw. stertę (heap) i to w niej tworzy zmienne globalne
    (zmienne lokalne tworzone są na stosie). Tylko, że potrafi to robić w miarę
    wykonywania programu. Zmienne mogą w tej stercie pojawiać się i znikać w
    czasie działania programu. W zależności od przebiegu programu mogą nie
    pojawić się wcale. W przypadku gdy miejsce na stercie się kończy, kod
    odpowiedzialny za kontrolę tego potrafi dla sterty przydzielić dodatkową
    pamięć. Podczas inicjowania tablic potrafi na nią przydzielić dynamicznie
    pamięć.

    W assemblerze podczas assemblacji tworzone są tzw. chunki "code" (z
    kodem dla procesora), "data" blok ze zdefiniowanymi danymi. Oraz czasami
    chunk z danymi nt. zarezerwowanych obszarów, które są rezerwowane z poziomu
    systemu (dletego, że nie ma sensu aby w pliku był obecny fizycznie obszar
    1024K zawierający same zera). I to wszystko. Te bloki są statyczne -
    powstają wraz z uruchomieniem programu i istnieją do momentu aż ten program
    się przestanie wyknywać. To co wielu nazywa zmienną w assemblerze to właśnie
    taki kawałek pamięci.

    Różnica jest taka, że kod wynikowy w C podczas wykonywania programu
    dynamicznie takie zmienne inicjuje, czy też deallokuje. W assemblerze to
    jest zdefiniowany blok pamięci z danymi i nic więcej.

    I naprawdę mam już dosyć tematu. Jeśli ktoś nadal uważa, że assembler
    potrafi operować na zmiennych, to OK. Jego sprawa. Ci którzy pojmują, że
    assembler to język niskiego poziomu zdają sobie sprawę, że assembler
    obsługuje tylko to co potrafi obsłużyć dany procesor, gdyż jest zależny od
    sprzętu. Wszelkie makra, etykiety itp. służą tylko temu aby ułatwić życie
    programiście, gdyż tak naprawdę zamiast etykiet, można by było podawać od
    razu adresy w pamięci.

    Języki wyższego poziomu posiadają pewną warstwę abstrakcji i nie opisują
    bezpośrednio sprzętu.
    Za to odpowiedzialne są kompilatory, które zamieniają składnię języka na kod
    zrozumiały dla procesora, dodając m.in. kod inicjujący, kontrolny i końcowy.
    Osobną grupą są interpretery (np. wiele języków z rodziny BASIC, ale też np.
    PHP), które nie są kompilowane, a wykonywanie programu polega na
    interpretacji kodu źródłowego, przez specjalny interpreter który jest
    niezbędny do uruchomienia programu.


  • 243. Data: 2011-09-21 18:55:57
    Temat: Re: Nauka programowania od czego zacząć?
    Od: Waldemar Krzok <w...@z...fu-berlin.de>

    Marcin Wasilewski wrote:

    > Użytkownik "Waldemar Krzok" <w...@z...fu-berlin.de> napisał w
    > wiadomości news:9du5jlFhnpU6@mid.uni-berlin.de...
    >
    >> No trochę tu przesadzasz, no i definiujesz znów niedokładnie. Napisałeś
    >> że znasz różnicę deklaracji od definicji, ale jakoś zanika ta wiedza
    >> zaraz potem.
    >
    >> Assembler i język wysokiego poziomu są prawie równoważne (język WP da się
    >> sprowadzić do assemblera, na odwrót niekoniecznie).
    >
    > Nie no bez jaj. To co wykonuje procesor to kod maszynowy, assembler
    > polega głównie na tym, że zamiast wpisywać np. $FFFF to wpisujesz NOP,
    > itd. Skolei procesor to taka zaawansowana technologicznie maszyna stanów,
    > gdzie kolejne sekwencje zer i jedynek wyzwalają dany stan.
    > Tak więc wszystko MUSI się dać sprowadzić do kodu maszynowego bo TYLKO to
    > potrafi wykonać procesor. A zatem da się też zapisać w postaci programu w
    > assemblerze. Nazywa się to disassemblacją i istnieje do tego wiele
    > programów robiących to mniej lub bardziej automatycznie.
    >
    > http://pl.wikipedia.org/wiki/Deasembler
    >
    >> czego wynika, że w assemblerze istnieją zmienne. Deklaracja takowej
    >> zmiennej to przydzielenie jej pamięci (czy z "naklejką", czy bez to nie
    >> gra roli), definicja to wpisanie do tego obszaru pamięci jakiejś
    >> wartości. Inicjacja to wariant definicji i też w assemblerze jest do
    >> zrobienia w trakcie kompilacji lub, jak piszesz z wewnątrz programu.
    >
    > To proszę bardzo wklej mi kawałek kodu w assemblerze równoważny temu:
    >
    > if (a==b)
    > {
    > int c=5;
    > };
    >
    > Tu nie chodzi o to, że w assemblerze możesz sobie napisać:
    >
    > zmienna dc 10
    >
    > Tylko abyś mógł tą zmienną stworzyć z poziomu kodu.
    >
    > Powiem Ci jak to działa w C. Program wynikowy w C posiada kod inicjujący,
    > który m.in
    > przydziela pamięć na tzw. stertę (heap) i to w niej tworzy zmienne
    > globalne (zmienne lokalne tworzone są na stosie). Tylko, że potrafi to
    > robić w miarę wykonywania programu. Zmienne mogą w tej stercie pojawiać
    > się i znikać w czasie działania programu. W zależności od przebiegu
    > programu mogą nie pojawić się wcale. W przypadku gdy miejsce na stercie
    > się kończy, kod odpowiedzialny za kontrolę tego potrafi dla sterty
    > przydzielić dodatkową pamięć. Podczas inicjowania tablic potrafi na nią
    > przydzielić dynamicznie pamięć.
    >
    > W assemblerze podczas assemblacji tworzone są tzw. chunki "code" (z
    > kodem dla procesora), "data" blok ze zdefiniowanymi danymi. Oraz czasami
    > chunk z danymi nt. zarezerwowanych obszarów, które są rezerwowane z
    > poziomu systemu (dletego, że nie ma sensu aby w pliku był obecny fizycznie
    > obszar 1024K zawierający same zera). I to wszystko. Te bloki są statyczne
    > - powstają wraz z uruchomieniem programu i istnieją do momentu aż ten
    > program się przestanie wyknywać. To co wielu nazywa zmienną w assemblerze
    > to właśnie taki kawałek pamięci.
    >
    > Różnica jest taka, że kod wynikowy w C podczas wykonywania programu
    > dynamicznie takie zmienne inicjuje, czy też deallokuje. W assemblerze to
    > jest zdefiniowany blok pamięci z danymi i nic więcej.
    >
    > I naprawdę mam już dosyć tematu. Jeśli ktoś nadal uważa, że assembler
    > potrafi operować na zmiennych, to OK. Jego sprawa. Ci którzy pojmują, że
    > assembler to język niskiego poziomu zdają sobie sprawę, że assembler
    > obsługuje tylko to co potrafi obsłużyć dany procesor, gdyż jest zależny od
    > sprzętu. Wszelkie makra, etykiety itp. służą tylko temu aby ułatwić życie
    > programiście, gdyż tak naprawdę zamiast etykiet, można by było podawać od
    > razu adresy w pamięci.
    >
    > Języki wyższego poziomu posiadają pewną warstwę abstrakcji i nie
    > opisują
    > bezpośrednio sprzętu.
    > Za to odpowiedzialne są kompilatory, które zamieniają składnię języka na
    > kod zrozumiały dla procesora, dodając m.in. kod inicjujący, kontrolny i
    > końcowy. Osobną grupą są interpretery (np. wiele języków z rodziny BASIC,
    > ale też np. PHP), które nie są kompilowane, a wykonywanie programu polega
    > na interpretacji kodu źródłowego, przez specjalny interpreter który jest
    > niezbędny do uruchomienia programu.


    Tak dla informacji: studiowałem m.in. informatykę, a tam budowę
    kompilatorów. Również napisałem (co prawda prosty ale mimo to) kompilator na
    zaliczenie jak i disassembler i pisałem i stosowałem.
    To, co ty napisałeś może być faktycznie zadeklarowane na heap-ie, ale też na
    stacku. Dynamiczne int c = 5 może być zaimplementowane w tym przypadku w
    assemblerze jako mov 4[bp],ax. Zmienne statyczne na heapie, też warunkowo
    deklarowane, są najczęściej rezerwowane za pomocą funkcji alloc systemu
    operacyjnego.

    Waldek
    --
    My jsme Borgové. Sklopte štíty a vzdejte se. Odpor je marný.


  • 244. Data: 2011-09-21 19:38:30
    Temat: Re: Nauka programowania od czego zacząć?
    Od: "Lelek@" <r...@i...iw>


    "Waldemar Krzok" <w...@z...fu-berlin.de> wrote in message
    news:9duq9vFbgeU1@mid.uni-berlin.de...

    A w ogóle wracając do tematu wątku. Dzisiaj córka miała na kółku
    informatycznym takie coś jak KODU
    http://research.microsoft.com/en-us/projects/kodu/
    Nawet o tym nie słyszałem wcześniej :-) I ledwo wróciła do domu to siedzi i
    bawi się tym sama :-)


  • 245. Data: 2011-09-21 19:53:28
    Temat: Re: Nauka programowania od czego zacząć?
    Od: "Marcin Wasilewski" <j...@a...pl>

    Użytkownik "Waldemar Krzok" <w...@z...fu-berlin.de> napisał w
    wiadomości news:9duq9vFbgeU1@mid.uni-berlin.de...

    > przypadku w assemblerze jako mov 4[bp],ax. Zmienne statyczne na heapie,
    > też warunkowo deklarowane, są najczęściej rezerwowane za pomocą funkcji
    > alloc systemu operacyjnego.

    Ale to już nie robi assembler. Na litość. Równie dobrze możesz sobie
    zaallokować blok pamięci w C. Ale przecież to już nie jest obsługa zmiennych
    z poziomu języka. Rozumując w ten sposób, to assembler ma wszystko:
    struktury, drzewa, klasy, obiekty, metody i co tam jeszcze sobie programista
    w tym assemblerze napisze. Bo przecież w assemblerze da się napisać
    wszystko.


  • 246. Data: 2011-09-21 20:12:42
    Temat: Re: Nauka programowania od czego zacząć?
    Od: Waldemar Krzok <w...@z...fu-berlin.de>

    Marcin Wasilewski wrote:

    > Użytkownik "Waldemar Krzok" <w...@z...fu-berlin.de> napisał w
    > wiadomości news:9duq9vFbgeU1@mid.uni-berlin.de...
    >
    >> przypadku w assemblerze jako mov 4[bp],ax. Zmienne statyczne na heapie,
    >> też warunkowo deklarowane, są najczęściej rezerwowane za pomocą funkcji
    >> alloc systemu operacyjnego.
    >
    > Ale to już nie robi assembler. Na litość. Równie dobrze możesz sobie
    > zaallokować blok pamięci w C. Ale przecież to już nie jest obsługa
    > zmiennych z poziomu języka. Rozumując w ten sposób, to assembler ma
    > wszystko: struktury, drzewa, klasy, obiekty, metody i co tam jeszcze sobie
    > programista w tym assemblerze napisze. Bo przecież w assemblerze da się
    > napisać wszystko.

    Niech ci będzie. Co prawda nie widzę dużej różnicy między
    mov ax,5
    mov -4[bp],ax; tu się pomyliłem powyżej

    a int c = 5;
    ale faktycznie zmienne na heapie kompilator załatwia automagicznie, w
    assemblerze trzeba wywołać funkcję systemową. Albo robić samemu, co też mi
    się zdarzało. Chociaż heap statyczny przypisany do programu też zdarza się w
    coponiektórych kompilatorach.
    Aha, assembler z możliwością deklarowania struktur też już widziałem. Taki
    preprocessor do normalnego assemblera. Wywołanie alloc też by się dało
    preprocem załatwić. Czasem się przydaje :-). Ale wtedy mamy już zdefiniowany
    język wyższego poziomu. Prawie jak Fortran.

    Waldek


    --
    My jsme Borgové. Sklopte štíty a vzdejte se. Odpor je marný.


  • 247. Data: 2011-09-22 07:19:30
    Temat: Re: Nauka programowania od czego zacząć?
    Od: "Artur\(m\)" <m...@i...pl>


    Użytkownik "Darek" <d...@p...onet.pl> napisał w wiadomości
    news:j508pq$8tr$1@news.onet.pl...

    > Ja miałem jednego idotę na studiach, który wymusił na nas zaprogramowanie
    > urządzenia w języku maszynowy i to było stosunkowo niedawno. Tylko po co?
    > Marnowanie ludzkiego czasu i zasobów ludzkich na takie kretyńskie
    > zabawy. Marnowanie pieniędzy publicznych z których uczelnia się
    > utrzymuje...

    Nie włączam się w dyskusję, bo nie programuje, ale lubię poczytać
    mądrych ludzi, ale następne, ale...
    przejmuje mnie smutek, gdy czytam o "idiocie, który zmusza do czegoś
    >>teoretycznie<< głupiego"
    To stwierdzenie przypomina mi jota w jotę wypowiedzi
    o bezsensie uczenia w szkole całek, równań (a jeszcze na dodatek,
    o Boże, z wieloma niewiadomymi), badania funkcji, i jeszcze innych głupot,
    kiedy wiadomo, że za kasą, taka panienka nie rozwiąże "już nigdy, żadnego
    równania".
    Do adremu. Uważam, że i najzacieklejszy "humanista" powinien rozumieć(!)
    czym(!) jest rozwiązywanie równań, choć nie musi ich rozwiązywać na kolanie
    prowadząc samochód:), ani programista nie musi programować w języku
    maszynowym, ale powinien zrozumieć owego programowania zasady,
    a jeżeli tego własnorozumowo nie zrobisz, nie będziesz faktycznie ich znał.
    Nie wiem, być może ten facet "przeginał", ale "programowo" nie widzę
    podstaw do tak jednoznacznego stanowiska jakie wyraziłeś.

    Artur(m)


  • 248. Data: 2011-09-22 07:27:50
    Temat: Re: Nauka programowania od czego zacząć?
    Od: "Artur\(m\)" <m...@i...pl>


    Użytkownik "Lelek@" <r...@i...iw> napisał w wiadomości
    news:j5358m$bep$1@opal.futuro.pl...
    >
    > "Jarosław Sokołowski" <j...@l...waw.pl> wrote in message
    > news:slrnj7a4da.qqm.jaros@falcon.lasek.waw.pl...
    >
    >>> Nie wiem ale ja prę z nauką żeby miała szerokie horyzonty. Zapisałem
    >>> też na dodatkowe zajęcia po lekcjach na szachy, robotykę i chiński.
    >
    > Pochwal się swoim dzieckiem, masz czym? moim zdaniem jest to powód do dumy
    > :-) No pochwal się?

    Widzę ojca dumnego a nie widzę dziecka szczęśliwego.
    Tak się kończy najczęściej realizacja własnych ambicji
    kosztem dziecka (których realizacji najczęściej dziecko -
    nie rozumie).

    Artur(m)


  • 249. Data: 2011-09-22 07:51:51
    Temat: Re: Nauka programowania od czego zacząć?
    Od: "Artur\(m\)" <m...@i...pl>


    Użytkownik "RoMan Mandziejewicz" <r...@p...pl> napisał w wiadomości
    news:1717700844.20110918001204@pik-net.pl...

    > Dawno temu poszedłem na udry z dwoma szkołami i kuratorium - nie
    > zgodziłem się, żeby mój syn poszedł do szkoły z językiem niemieckim -
    > a tylko taka była dla niego dostępna zgodnie z rejonizacją.
    > Wygrałem walkę - poszedł do szkoły z angielskim i dzisiaj pracuje dla
    > BBC a nie przy kartoflach u bauera.

    Dlaczego tak nisko oceniasz syna.
    Poszedłby pracować dla RTL, ARD lubDW?

    Artur(m)


  • 250. Data: 2011-09-22 07:55:19
    Temat: Re: Nauka programowania od czego zacząć?
    Od: "Artur\(m\)" <m...@i...pl>


    Użytkownik "Jacek" <a...@o...pl> napisał w wiadomości
    news:snd4n0szpcig.141a362zchlrz$.dlg@40tude.net...

    > Skad Wam przyszedl do glowy chinski? Stad, ze chinski rynek opanowuje
    > swiat? Wg mnie bledny tok myslenia. To Chinczycy ucza sie angielskiego,
    > zeby stac sie 'kompatybilnymi' z reszta swiata i tak zostanie.
    > Angielski jest i bedzie jezykiem miedzynarodowym.

    Obyś się nie mylił.

strony : 1 ... 10 ... 20 ... 24 . [ 25 ] . 26 . 27


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: