Wpis z mikrobloga

#programowanie Mirki, jak powstał pierwszy program? Skąd komputer nagle wiedział jak odróżnić ciąg znaków od polecenia?
  • 18
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Elph: komputer działa na kodzie maszynowym, czyli po prostu konkretna liczba oznacza jakąś instrukcję, to jest na sztynow w procesorze. Co do architektury to są różne warianty, ale zwykle stosuje jakąś wersję architektury von Neumanna, czyli że mamy długą listę ponumerowanych miejsc na liczby (pamięć) i mamy kilka rejestrów (wydzielone miejsca na liczby), między innymi jest wskaźnik na kolejną instrukcję.

Na początku programista wypełnia pamięć odpowiednimi liczbami (niektóre to dane, inne
  • Odpowiedz
@oleorl: No raczej :P
@ntskj: Przeklikałam trochę po Wiki ale dalej mi to niewiele wyjaśnia. Rozumiem, że w tej chwili programy pisane są za pomocą kompilatorów, ale skoro one kompilują do pierwotnej postaci, to skąd komputer rozumie tą pierwotną postać? Jak przeniesiono metodę z dziurkowanych płytek na całkowitą tekstową abstrakcję?
  • Odpowiedz
@Elph: a, chodzi ci o to, jak skompilowano pierwszy kompilator :) ? Odpowiedź - napisano go w assemblerze (bardzo uprosczony język programowania, który się praktycznie mapuje 1 do 1 z kodem maszynowym, tylko jest wygodniejszy, bo zamiast

1f 2a 0b 75 10

jest coś w
  • Odpowiedz
@tell_me_more: Ok, ale takie tłumaczenie zakłada, że komputer dysponuje jakąś inteligencją, a przecież on sam sobie nie "zakłada, że to musi być instrukcja", tylko ktoś mu to założenie wcześniej opisał. Pytanie, w jaki sposób? Może sięgam zbyt głęboko, ale interesuje mnie ten pierwotny kształt, jak ktoś do tego doszedł.
  • Odpowiedz
@Elph: to jest zapisane w procesorze na sztywno - w postaci układów cyfrowych (przerzutników, liczników, rejestrów, bramek logicznych OR, XOR, AND, NAND, NOR, NOT, itp). Żywcem w krzemie jest wypalone :)

Jeśli Cię to interesuje, to polecam elektronikę cyfrową, to jest wbrew pozorom bardzo proste, dużo prostsze, niż normalna elektronika analogowa, bo masz klocki lego i nie trzeba się przejmować napięciami i natężeniami itd - tylko układasz klocki. W kilka
tellmemore - @Elph: to jest zapisane w procesorze na sztywno - w postaci układów cyfr...
  • Odpowiedz
@tell_me_more: Dobra, krzem bardziej do mnie przemawia, ale przeanalizuję to sobie jeszcze na trzeźwo :D bo skoro wypalone to i tak musiało istnieć połączenie co do kształtu i efektu jego zastosowania. Ale żeby to zrozumieć to najpierw muszę rozszyfrować te wszystkie magiczne skróty :P
  • Odpowiedz
@Elph: też miałem takie rozkminy, aż teraz mam to na studiach i zaczyna mi się to jakoś obrazować. Ale wytłumaczyć chyba jeszcze tego bym nie umiał :p ale jakbym próbował to jak koledzy wyżej, że po prostu do procesora jest podawana cyfra i ona oznacza jakąś podstawową komendę. Potem został napisany program, który umie zamienić tekst na komendy, które pokolei ma wykonać procesor. Z dysku odczytywane są te komendy i
  • Odpowiedz
@Elph: Rozumiesz jak działają bramki logiczne?
To teraz pomyśl że taki bardzo prosty procesor ma tych bramek kilka i kilka zakodowanych instrukcji (czyli jak wykorzystywać bramki).

Teraz procesor wykonuje program. W programie ma napisane z numer instrukcji z której ma skorzystać, następnie ewentualnie adres danych z pamięci, które ma wziąć do wykonania instrukcji. I tak linijka po linijce.

Oczywiście to jest bardzo uproszczone.
  • Odpowiedz
@Elph: Dorzucę jeszcze swoje trzy grosze: W komputerze wszystko jest ciągiem znaków, a co jest poleceniem zależy od kontekstu i założeń - inna sprawa co komputer będzie w stanie rozumieć, a rozumie rozkazy których lista wyżej została zalinkowana.
Więc w takiej architekturze von Neumanna trzymamy to wszystko razem: w przeglądarce raczej niedaleko od miejsca w którym jest zapisany sposób postępowania po kliknięciu w link są wszystkie avatary i zdjęcia z
  • Odpowiedz
@Elph: Ładnie wytłumaczył to @RSGApps.

Uwaga poniżej stosuję łopatologię:

Na najniższym poziomie procesor składa się z bramek logicznych. Możesz to sobie wyobrazić koncepcyjnie jako zębatki / albo przekładnie, które w zależności od ustawienia wykonują dane zadanie. Na przykład bramka "or" na wyjściu produkuje prąd "1", jeśli na którymś jej wejściu też jest prąd "1", bramka "and" na wyjściu będzie miała "1", jeśli wszystkie jej wejścia mają "1".
I tak korzystając z
  • Odpowiedz