Klasyfikacja języków programowania

Języki programowania możemy podzielić według paradygmatówparadygmat programowaniaparadygmatów, czyli zbiorów pewnych cech.

Paradygmaty kompilowane i interpretowane

Kod w języku kompilowanym musi zostać przetworzony przez program zwany kompilatorem, aby można było go uruchomić; przykłady języków: C, C++, Java, Go.

Program napisany w języku interpretowanym może być wykonywany bezpośrednio na kodzie źródłowym przez program zwany interpreterem, który wykonuje kod linijka po linijce; przykłady języków: Python, Ruby, JavaScript, PHP.

R1IwnwViKRWkk
Logo języka Python
Źródło: tylko do użytku edukacyjnego.

Paradygmaty imperatywne i deklaratywne

RRMe40kpA6Bsc1
Logo języka C++
Źródło: domena publiczna.

W języku imperatywnym korzystamy z instrukcji, aby bezpośrednio zmienić stan programu – mówimy, jak coś zrobić. Przykłady to C++, Java, Lua. W języku deklaratywnym deklarujemy oczekiwany rezultat (wskazujemy, co ma być zrobione). Przykłady: SQL, regex, Prolog.

Paradygmaty obiektowe, funkcjonalne, proceduralne

ROdLVPbw2GIiC1
Logo języka Java
Źródło: tylko do użytku edukacyjnego.

W języku obiektowym operujemy na obiektach, czyli strukturach danych z pewnymi informacjami oraz interakcjami między sobą; przykłady to Java, Kotlin, C#.

W języku funkcjonalnym programy składają się z nałożonych na siebie matematycznych funkcji, które operują na zwracanych przez siebie rezultatach; przykłady to Haskell, Elixir, Clojure.

W językach proceduralnych programy składają się z kolejnych kroków, które należy wykonać, aby otrzymać pożądany rezultat; przykłady takich języków programowania to C, C++, Python.

Ważne!

Przedstawiony podział jest bardzo dynamiczny i wiele z języków programowania można umieścić w kilku różnych kategoriach. Przykładowo Python, choć zazwyczaj traktowany jako język interpretowany, może zostać skompilowany do programu niewymagającego interpretera. W języku C++ możemy stosować zarówno programowanie obiektowe, funkcjonalne i proceduralne, jak również deklaratywne i imperatywne. Języki, które pozwalają na użycie więcej niż jednego paradygmatu, nazywamy wieloparadygmatowymi.

Najważniejsze języki programowania

Ważne!

W szkole podstawowej poznaliśmy już kilka języków programowania, np. HTML, Scratch, Logo czy Visual Basic.

Aktualnie jednym z najpopularniejszych języków jest Java. Znajduje zastosowanie we wszelkiego rodzaju aplikacjach internetowych przeznaczonych do wyświetlania w przeglądarce, jak również aplikacjach mobilnych.

Wciąż popularnym językiem jest język C, oraz pokrewny mu język C++.

Język C często jest używany do programowania urządzeń takich jak satelity czy urządzenia szpitalne, które często pracują na ograniczonych zasobach i nie mogą ulegać awariom.

C++ jest wykorzystywany w niemal każdej gałęzi informatyki, od gier komputerowych, przez programowanie systemów operacyjnych, aż do zaawansowanych symulacji fizycznych.

Językiem, którego popularność nieustannie rośnie, jest Python. Wśród jego zalet możemy wymienić przejrzysty zapis. Python jest także głównie językiem interpretowanym, dlatego po wprowadzeniu zmian w kodzie można bardzo szybko uruchomić program, co ułatwia tworzenie większych aplikacji. Jest on wykorzystywany między innymi do tworzenia gier czy oprogramowania serwerów.

Język SQL jest jednym z głównych języków służących do obsługi baz danych. Służy on zarówno do zapisywania danych, jak i do ich odczytywania, przy czym oferuje możliwości filtrowania według podanych kryteriów.

Język JavaScript służy do dodawania interaktywnych elementów do stron internetowych. Bardzo ważnym aspektem użycia JavaScript jest środowisko Node.js, za pomocą którego można stworzyć serwer w tym samym języku, co aplikację po stronie przeglądarki – bez Node.js  JavaScript nie oferuje możliwości serwera.

PHP to język służący do tworzenia oprogramowania do serwerów. Chociaż w znacznej mierze został zastąpiony przez języki takie jak JavaScript czy Python, nadal jest wykorzystywany w projektach takich jak Wikipedia czy WordPress.

Asemblery i kody maszynowe

Co dzieje się, kiedy chcemy uruchomić program w języku kompilowanym?

Na początku, po sprawdzeniu kodu pod względem poprawności składni, kompilator tłumaczy go do języka asemblera (często nazywanego po prostu asemblerem), który jeszcze nie może zostać uruchomiony. Ten proces nazywa się kompilacją.

Ważne!

Asembler to program tłumaczący kod z języka asemblera na kod maszynowy. Technicznie rzecz biorąc, za język asemblera możemy uznać każdy język programowania, który bardzo ściśle odpowiada pojedynczym instrukcjom, jakie wykonuje procesor.

Dopiero po procesie zwanym asemblacją otrzymujemy kod maszynowy, który może zostać bezpośrednio odczytany i wykonany przez procesor. Ponieważ sam język asemblera jest bardzo nieczytelny, powstały kod maszynowy jest dla ludzi praktycznie niezrozumiały, jednak dla komputera jest to idealna forma. Wynika to z tego, że kod maszynowy to postać programu, która jest przeznaczona do bezpośredniego lub prawie bezpośredniego wykonania przez procesor i jest dopasowana do konkretnego typu procesora (wyrażona w postaci zrozumiałych dla niego kodów rozkazów i argumentów).

Od kodu do programu

R1daMSdA3vSxh
Wybierz jedno nowe słowo poznane podczas dzisiejszej lekcji i ułóż z nim zdanie.

Słownik

paradygmat programowania
paradygmat programowania

zbiór cech charakteryzujących grupy języków programowania

język wieloparadygmatowy
język wieloparadygmatowy

język, który może zostać przyporządkowany do kilku różnych paradygmatów

asembler
asembler

program służący do tłumaczenia kodu z języka asemblera na kod maszynowy

kompilacja
kompilacja

proces tłumaczenia kodu z języka programowania na język asemblera

język asemblera
język asemblera

każdy język, który jest bardzo podobny do poszczególnych instrukcji wykonywanych przez procesor

kod maszynowy
kod maszynowy

kod, który jest wykonywany przez procesor; jest to ostateczna forma programu w języku kompilowanym, która może zostać uruchomiona

asemblacja
asemblacja

proces tłumaczenia kodu z języka asemblera na kod maszynowy

język wysokiego poziomu
język wysokiego poziomu

język, którego składnia i słowa kluczowe mają ułatwić rozumienie kodu programu przez człowieka; nim procesor komputera zrozumie taki kod, należy poddać go procesowi kompilacji; do języków wysokiego poziomu zalicza się m.in. PascalCC++Logo i BASIC

język niskiego poziomu
język niskiego poziomu

język programowania, w którym jednej operacji elementarnej odpowiada najczęściej jedna operacja wykonywana przez procesor

język skryptowy
język skryptowy

język programowania służący do kontrolowania danej aplikacji i interpretowany wewnątrz niej