Różnice między językami programowania wysokiego i niskiego poziomu

Ludzie używają języków programowania do instruowania sprzętu komputera.

Języki programowania

Językiem programowania jest każdy język, w którym ludzie mogą pouczać komputery. Program to lista instrukcji przygotowanych do dostarczenia do komputera i wykonania. Zasadniczo instrukcje przechowują, przesuwają i zmieniają wartości w pamięci komputera. Wartości te mogą być interpretowane przez kilka urządzeń, takich jak monitory, głośniki, klawiatury, panele dotykowe lub myszy, które zapewniają sposoby komunikowania się z użytkownikiem.

Kod maszynowy

Język niskiego poziomu to taki, który jest bliski podstawom sprzętu komputerowego. Językiem najniższego poziomu jest kod maszynowy, który sprzęt rozumie bezpośrednio i nie wymaga tłumaczenia ani tłumaczenia. Kod maszynowy składa się wyłącznie z ciągów liczb binarnych: znanych zer i jedynek. Chociaż może zrobić wszystko, co może osiągnąć każdy inny język (w rzeczywistości reszta języków musi zostać przetłumaczona na kod maszynowy przez interpreter), nie jest zaprojektowana tak, aby odpowiadała potrzebom programisty i wymaga dogłębnej znajomości procesora i urządzenia komputera, poza tym jest prawie niemożliwe, aby człowiek ją odczytał.

Język asemblerowy

Następnym językiem programowania "wyższego" poziomu jest język asemblerowy, czyli kod maszynowy, którego kody instrukcji zostały zastąpione przez bardziej intuicyjne polecenia. Na przykład polecenie umieszczenia wartości 97 w rejestrze pamięci nazywa się AL (w kodzie maszynowym będzie to "10110000 01100001"), aw języku asemblerowym będzie to "MOV AL, 97", które jest wciąż tajemniczym rozkazem, ale jest znacznie łatwiejsze do odczytania. Mimo, że pisanie go jest wciąż nieefektywne i wymaga od programisty bezpośredniej pracy ze sprzętem komputerowym, jest to język wyższego poziomu niż kod maszynowy, ponieważ jest bardziej abstrakcyjny, tj. Jest bliższy programatorowi.

Języki wysokiego poziomu

Współcześni programiści rzadko piszą w języku asemblerowym. Zamiast tego używają jednego z wielu języków wysokiego poziomu, takich jak C, Java lub Python, których programy zwane kompilatorami lub interpretatorami można przetłumaczyć na kod maszynowy. Języki te uniemożliwiają programistom angażowanie się w fizyczny świat sprzętu i przenoszą go do logicznej abstrakcji: zamiast przenosić wartości szesnastkowych przez rejestry pamięci, programista działa ze zmiennymi, których zawartość może być modyfikowana, z pętlami, które można je powtarzać, dopóki nie zostanie spełniony warunek, z logicznymi instrukcjami, takimi jak IF, AND, THEN, OR i ELSE, a także innymi narzędziami. Te języki są przeznaczone dla programisty, zajmującego się sposobami, w których maksymalna moc może być osiągnięta przy najmniejszych trudnościach.

Porównania

Języki wysokiego poziomu nie otrzymują tej nazwy, ponieważ są "lepsze" niż języki niskiego poziomu. Czasami możliwość bezpośredniego komunikowania się z procesorem komputera w języku asemblerowym, a nawet z kodem maszyny może rozwiązać problemy, które warstwy abstrakcji języka wysokiego poziomu mogą utrudnić. Język bardzo wysokiego poziomu może dotyczyć tylko określonego systemu operacyjnego, takiego jak Microsoft Visual Basic, lub określonego programu, takiego jak "makra" edytora tekstu. Programy te są bardzo przydatne dla każdego, kto chce manipulować Windows lub Word, nie wiedząc, jak to działa, ale taki język nie byłby przydatny dla kogoś, kto próbuje napisać własny program i potrzebuje języka niższego poziomu. Dlatego programista wybiera język w zależności od pracy, którą musi wykonać.