I.

Oprogramowanie i jego początki

Oprogramowanie to niesamowita innowacja, z której korzystamy za każdym razem, gdy używamy komputera, smartfona, konsoli do gier wideo lub wielu innych urządzeń elektronicznych. Niektóre programy są dość proste i zaprojektowane tylko do robienia kilku rzeczy, podczas gdy inne są bardzo skomplikowane i zarządzają ogromnymi ilościami danych.

Po co nam w ogóle oprogramowanie?

Krótko mówiąc, komputery nie rozumieją ludzkiego języka - a programiści chcą budować komputery, które będą dla nas łatwe w obsłudze. Ale oczywiście ludzie i komputery nie mówią tym samym językiem. Dlatego właśnie mamy oprogramowanie, interfejs pomiędzy sprzętem a użytkownikiem, który pomaga nam wykonywać zadania na naszych komputerach. Zbadajmy to dokładniej.

Jaki język rozumieją komputery?

Komputery rozumieją tylko informacje binarne, reprezentowane głównie w formie sygnałów elektrycznych, które są włączone (wysokie napięcie, ON) lub wyłączone (niskie napięcie, OFF), wszystko musi im być dostarczane jako sekwencja jedynek i zer (ON i OFF). Ogólnie rzecz biorąc, logiczna "1" reprezentuje wyższe napięcie, takie jak 5 V, które jest powszechnie określane jako wartość WYSOKA, podczas gdy logiczne "0" reprezentuje niskie napięcie, takie jak 0 V lub ujemne, i jest powszechnie określane jako wartość NISKA. Ta sekwencja (seria) jedynek i zer jest określana mianem formatu/kodu binarnego.

Ponieważ komputery nie rozumieją naszego języka, zdjęć, filmów, tekstów, programów czy muzyki w taki sposób jak my, wszystkie dane muszą zostać przekształcone w kod binarny, aby komputer mógł je przetworzyć.

W nowoczesnych komputerach mamy systemy kodowania, które działają jak warstwy tłumaczące, przekształcając nasze dane wejściowe na kod maszynowy. Jako bardzo podstawowy przykład, kiedy piszesz literę "A" na klawiaturze, jest ona konwertowana przez system kodowania znaków UTF-8 na kod maszynowy o wartości 01000001.

Dłonie wchodzące w interakcję z ikonami aplikacji
Dłonie wchodzące w interakcję z ikonami aplikacji

Teraz wyobraź sobie, ile jedynek i zer musielibyśmy mieć, aby odwzorować książkę w kodzie binarnym. Wyobraź sobie, ile jedynek i zer potrzebowalibyśmy do odwzorowania zdjęcia lub piosenki w kodzie binarnym. Jak zapewne sobie wyobrażasz, reprezentowanie każdego obrazu, tekstu, programu czy muzyki w kodzie binarnym, w tej kolekcji jedynek i zer, może być dość skomplikowane i żmudne. Nasze nowoczesne komputery robią to automatycznie i jest to proces niewidoczny dla większości użytkowników.

Spróbuj sobie wyobrazić, jak ten proces wyglądał w przeszłości, kiedy nasi pierwsi programiści musieli wyrażać wszystko w kodzie binarnym ręcznie!

Jaka jest rola programistów w ewolucji oprogramowania?

Niezależnie od tego, jakiego języka lub rodzaju języka używamy do pisania naszych programów, muszą one być zapisane w kodzie maszynowym, aby mogły być przetwarzane przez komputer.

Kiedy powstały pierwsze "nowoczesne" komputery zasilane elektrycznie, programiści zdali sobie sprawę, że ograniczona szybkość i pojemność pamięci tych urządzeń stanowiły ograniczenie dla ich wyobraźni, a także ograniczenie dla doświadczenia użytkowników nie będących ekspertami.

Zmusiło ich to do napisania "translatorów języka", służących do ułatwienia pisania kodu maszynowego. Istnieją trzy główne kategorie translatorów języka używanych w naszych komputerach: asemblery, kompilatory i interpretery. Przeanalizujemy je w następnym rozdziale.

Do tworzenia oprogramowania programiści używają języków programowania; jest ich wiele i ewoluowały na przestrzeni lat. W niektórych publikacjach wyróżnia się pięć generacji języków programowania.

Języki programowania dzielą się na dwa poziomy, niski i wysoki. Pierwsze dwie generacje należą do języków niskiego poziomu, a kolejne trzy generacje do języków wysokiego poziomu.

Teraz jesteśmy przygotowani i możemy przejść do kolejnego rozdziału, w którym poznamy nowoczesne języki niskiego i wysokiego poziomu oraz programowanie.

Next section
II. Języki programowania i tworzenie oprogramowania