Jak komputery rozumieją nasze polecenia? Jak ewoluowały języki programowania

W tym wpisie na blogu wyjaśnimy w prosty sposób, w jaki sposób komputery rozumieją nasze polecenia i jak ewoluowały języki programowania.

 

Człowiek szybko stuka w klawiaturę, ekran monitora wypełnia się niezrozumiałymi znakami, a komputer coś robi. To jest rodzaj programisty komputerowego, którego często widzimy w filmach i innych mediach. We współczesnym świecie komputery stały się narzędziem, z którego każdy może łatwo korzystać, ale programowanie – umiejętność wydawania podstawowych poleceń komputerom – jest nadal trudnym i złożonym światem dla przeciętnego człowieka.
Zrozumienie relacji między komputerami a programowaniem jest jak nauka nowego języka. Język nie jest tylko środkiem komunikacji; odzwierciedla sposób myślenia i kulturę ludzi, którzy nim mówią. Podobnie języki programowania są ważnymi narzędziami, które określają sposób komunikacji komputerów i ludzi. Z tej perspektywy programowanie jest czymś więcej niż tylko umiejętnością techniczną; jest sposobem rozwiązywania problemów i patrzenia na świat.
Języki programowania ewoluują z każdym dniem, a najnowsze osiągnięcia są bardziej podobne do języka codziennego, co sprawia, że ​​programowanie staje się z czasem coraz mniejszą barierą wejścia. Ale w jaki sposób komputer, który jest niczym więcej niż urządzeniem mechanicznym, może zrozumieć polecenia, które wydajemy w języku codziennym?
Aby zrozumieć, jak komputery rozumieją nasze polecenia, musimy najpierw zrozumieć podstawy komputerów. W swojej istocie komputer jest urządzeniem elektronicznym, a w najbardziej ekstremalnym przypadku istnieją tylko dwa sygnały, które można mu przekazać. Albo przez obwód płynie prąd, albo go nie ma. To bardzo prosta informacja, ale jeśli połączysz ją w dowolnej liczbie przypadków, możesz utworzyć wiele różnych danych wejściowych, a CPU (Central Processing Unit) komputera ma elementy, które mogą implementować prostą logikę, taką jak AND, OR i NOT, które, gdy są dobrze połączone, mogą tworzyć „funkcję”, która generuje określone dane wyjściowe dla dowolnego danego sygnału wejściowego. Nowoczesne komputery mają dziesiątki milionów takich jednostek, co pozwala im wykonywać złożone zadania.
Aby ułatwić zrozumienie działania komputerów, wczesni twórcy przypisali „1” do wskazania, że ​​prąd płynie, i „0” do wskazania, że ​​tak nie jest. To właśnie oznacza zwrot „komputery składają się z zer i jedynek”, który prawdopodobnie słyszałeś przynajmniej raz, nawet jeśli niewiele wiesz o komputerach. Wczesne komputery musiały zostać przebudowane, aby dostarczać różne dane wejściowe. Aby to ulepszyć, komputery ewoluowały tak, aby można było wprowadzić serię zer i jedynek za pomocą urządzenia wejściowego, a komputer rozpoznawał układ i automatycznie wysyłał odpowiedni prąd, aby wykonać żądaną operację. Ten język programowania zer i jedynek nazywa się językiem maszynowym.
Ale język maszynowy był zbyt długi i mało czytelny. Nawet najprostsze operacje wymagały programowania na wielu arkuszach papieru pełnych zer i jedynek, a oczywiście bardzo trudno było zrozumieć, co się programuje, patrząc na to. Tak więc pojawił się nowy język programowania zwany językiem asemblera. Język asemblera to język zbudowany z jednoznacznych odpowiedników między językiem maszynowym składającym się z zer i jedynek, a gdy wpisujesz język asemblera, komputer wykonuje odpowiedni język maszynowy zgodnie z tym odpowiednikiem. To, co odróżnia asembler od języka maszynowego, to fakt, że odpowiadające sobie frazy składają się z liter alfabetu, które reprezentują ich funkcje. Innymi słowy, kod jest znacznie łatwiejszy do zrozumienia niż język maszynowy, ponieważ składa się ze słów, których używamy w życiu codziennym.
Pojawienie się assemblerów uprościło programowanie. Jednak assemblery były nadal długie i trudne w użyciu, ponieważ były one bezpośrednią odpowiedniczką języka maszynowego. Ponadto assemblery były bardzo ściśle powiązane ze strukturą sprzętu komputerowego, wymagając od programistów głębokiego zrozumienia wewnętrznych mechanizmów komputera. W rezultacie assemblery były często zależne od konkretnego sprzętu i wymagały modyfikacji języka za każdym razem, gdy wprowadzano nowy sprzęt. Aby przezwyciężyć te problemy, opracowano języki programowania wyższego poziomu.
Zainspirowani przez assembler, ludzie zaczęli opracowywać sposoby, aby ułatwić ludziom programowanie. W tym procesie powstało kilka języków programowania, które zasadniczo odchodzą od assemblera, aby osiągnąć prostotę. Podczas gdy assemblery mają bezpośrednią korespondencję z rzeczywistym przepływem prądu przez maszynę, więc musisz wiedzieć każdą małą rzecz o tym, jak działa sprzęt, nowsze języki programowania mogą obsługiwać procesy, które są intuicyjnie niezbędne do wykonania ich funkcji w pojedynczej instrukcji, co oznacza, że ​​mają wiele do jednego korespondencji z kodem assemblera. Języki te obniżyły trudność programowania, czyniąc programowanie intuicyjnym bez zrozumienia struktury sprzętowej komputera i czyniąc kod krótszym. Języki programowania opracowane w ten sposób obejmują C, C++, FORTRAN i JAVA, i nadal ewoluowały w podobny sposób, aby uczynić je łatwiejszymi w użyciu, a obecnie pojawiły się bardziej codzienne języki, takie jak JAVA Script, PHP i PYTHON.
Ewolucja języków programowania przebiegała równolegle z ewolucją sprzętu. Wraz z pojawieniem się potężniejszych komputerów, wzrosła potrzeba pisania bardziej złożonych programów, a języki programowania ewoluowały odpowiednio. Współcześni programiści mają dostęp do znacznie potężniejszych narzędzi niż w przeszłości, co sprawia, że ​​stosunkowo łatwo jest tworzyć bardziej złożone i wyrafinowane programy.
Chociaż języki programowania stały się znacznie bliższe językowi codziennemu niż w przeszłości, nadal nie jest to łatwo dostępna dziedzina. Jednak języki programowania są pod wpływem i ewoluują wraz z postępem komputerów. Od wczesnych dni ogromnych komputerów badawczych i korporacyjnych do ery komputerów osobistych (PC) jesteśmy teraz w erze smartfonów. W miarę jak komputery ewoluują, aby uczynić je bardziej przyjaznymi dla użytkownika, języki programowania będą ewoluować, aby ułatwić nam sprawienie, aby nas rozumiały.
W końcu programowanie to rozmowa z komputerem. I to coś więcej niż tylko wydawanie poleceń i uzyskiwanie wyników; to definiowanie, jak komputer rozumie świat i jak będzie działał na podstawie tego zrozumienia. Postępy w językach programowania nieustannie zmieniają sposób, w jaki wchodzimy w interakcje z komputerami, co z kolei zmienia sposób, w jaki wchodzimy w interakcje ze światem. W przyszłości zmiany te mogą stać się tak zakorzenione w naszym codziennym życiu, że komunikowanie się z komputerami stanie się tak naturalne, jak codzienny język.

 

O autorze

Pisarz

Jestem „detektywem kotów”. Pomagam odnaleźć zagubione koty i ich rodziny.
Regeneruję się przy filiżance latte, lubię spacerować i podróżować, a pisaniem poszerzam swoje horyzonty. Uważnie obserwując świat i podążając za swoją intelektualną ciekawością jako blogerka, mam nadzieję, że moje słowa mogą być dla innych pomocą i pocieszeniem.