Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Drzewo genealogiczne jezykow programowania
Volume
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

Ostrzeżenie: (0%)
-----


Tytul moze dziwny, ale czy ktos moglby mnie oswiecic jak wyglada programowanie od poczatku - od poczatku czyli jaki jezyk programowania jest tym startowym i jakie sa kolejne do osiagniecia poziomu systemu operacyjnego (np. w czym albo jak zaprogramowano jezyk C).
Czyli w czym buduje sie podwaline pod cala reszte programow i kolejnych jezykow - co jest lacznikiem miedzy podzespolami komputera a cala reszta swiata informatycznego. Ktos to w miare lopatologicznie potrafi wyjasnic?

Przyznam sie, ze temat moze jest banalny ale ciezko mi w google wyszukac az takie podstawy, nawet nie wiem jakich fraz uzyc a te co wymyslam nie daja mojej oczekiwanej odpowiedzi...

Ten post edytował Volume 18.02.2013, 18:30:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
abort
post
Post #2





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

Ostrzeżenie: (0%)
-----


Zacznijmy po kolei:

- komp rozumie tylko ciąg zer i jedynek - człowiek dla łatwiejszej orientacji podzielił ciągi na bajty czy słowa. I programował tak, jak komputer umiał - składając z zer i jedynek instrukcje dla komputera. Załóżmy, że komputer miał 8 rejestrów, oznaczonych literami od A do H - i do wstawienia do rejestru A wartości 1 potrzebny był kod "0x35 0x01", ale już przy rejestrze B kod mógł brzmieć "0x71 0x01". Tak samo z dodawaniem liczby do rejestru, odejmowaniem... Programowanie szybko zaczęło męczyć. Ponieważ jednak (Crozin dobrze gada, polać mu) każdy producent procesora podawał (w specyfikacji procesora) takie rzeczy jak mnemonik (czyli : ADD, SUB, MOV, JMP, ...), i wartość, jaka temu mnemonikowi odpowiada (+opcjonalnie parametry), stosunkowo łatwo było napisać sobie...

- ASEMBLER - czyli tłumacz mnemoników bezpośrednio na binarny kod maszynowy. Dodatkową zaletą pisania w asemblerze stało się to, że już nie trzeba było przeliczać adresów do skoków (JMP), asembler sam potrafił o to zadbać, trzeba było tylko w odpowiednim miejscu kodu umieścić tzw. etykietę, którą podawało się w instrukcjach JMP czy CALL jako adres do skoku. Dodatkowo oczywiście pojawiły się automatyczne konwersje ciągu znaków (podanych w cudzysłowach) na ich kody ASCII i umieszczenie w poszczególnych komórkach pamięci, można było używać stałych... Życie stało się prostsze.

- Ale ludzie chcieli więcej i łatwiej, i dlatego już w latach '50-'60 powstały takie języki jak Fortran (do dziś wielu naukowców go używa, z uwagi na nieprawdopodobnie dobrej jakości biblioteki numeryczne), Algol (prekursor Pascala) czy Cobol (język dla biznesu). Nieco później (na początku lat '70) powstały dopiero C czy Prolog.

Z ciekawostek: C, C++, Unix, tranzystor - to wszystko łączą dwa słowa: "Bell Labs".

P.S.
Zobacz sobie http://www.thegeekstuff.com/2011/10/c-prog...-an-executable/ - tu masz fajnie pokazane, jak linuksowy gcc kompiluje program "Hello World", a także (co może Cię bardziej zainteresować), jak wygląda kod asemblera takiego programu.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 10:00