Języki programowania


Definicje języka programowania

Język programowania może być zdefiniowany ze względu na kilka cech:

  • funkcja: język programowania służy do tworzenia programów komputerowych, których zadaniem jest przetwarzanie danych, wykonywanie obliczeń i algorytmów oraz kontrolowanie/obsługa zewnętrznych urządzeń, np. drukarek, robotów itd.
  • przeznaczenie: języki naturalne służą do komunikacji między ludźmi, natomiast języki programowania umożliwiają wydawanie poleceń maszynom. Niektóre z języków są wykorzystywane również do kontrolowania jednego urządzenia przez inne. Przykładowo, program wykonywany na komputerze może wygenerować kod PostScript do sterowania pracą drukarki bądź wyświetlacza.
  • konstrukcje składniowe: język programowania może zawierać konstrukcje składniowe do manipulowania strukturami danych oraz zarządzania przepływem sterowania.
  • moc: teoria obliczeń klasyfikuje języki według rodzajów obliczeń, które można za ich pomocą zrealizować (hierarchia Chomsky’ego). We wszystkich językach zupełnych w sensie Turinga da się zaimplementować ten sam zbiór algorytmów. Przykładem często stosowanego języka niezupełnego jest SQL służący do komunikacji z bazą danych.

Języki, w których nie da się realizować obliczeń (języki znaczników, jak HTML czy XML oraz gramatyki formalne, np. BNF), nie są uznawane za języki programowania.

Najpopularniejsze języki programowania

Najpopularniejsze języki programowania

  1. C (17,38%)
  2. Java (11,96%)
  3. Python (11,72%)
  4. C++
  5. C#
  6. Visual Basic
  7. JavaScript
  8. PHP
  9. R
  10. Groovy
  11. Asembler
  12. SQL
  13. Swift
  14. Go
  15. Ruby
  16. Matlab
  17. Perl
  18. Objective-C
  19. Delphi
  20. Classic Visual Basic

Klasyfikacja języków programowania

Języki programowania mogą być podzielone ze względu na:

  • paradygmat programowania,
  • generację języka programowania,
  • sposób kontroli typów,
  • sposób wykonywania (kompilacja, interpretacja),
  • poziom (języki niskiego poziomu są bardziej zbliżone pod względem budowy do działania sprzętu),
  • przeznaczenie.

Wykonywanie kodu

Aby program napisany w danym języku mógł być wykonany, niezbędne jest przetworzenie jego kodu źródłowego:

  • kompilacja – kod źródłowy jest tłumaczony do postaci języka maszynowego, czyli sekwencji elementarnych operacji gotowych do bezpośredniego przetworzenia przez procesor komputera. Jeżeli dany język programowania podlega kompilacji, określany jest mianem kompilowanego języka programowania
  • interpretacja – kod źródłowy jest na bieżąco tłumaczony i wykonywany przez dodatkowy program zwany interpreterem. Jeżeli język podlega interpretacji, nazywany jest interpretowanym językiem programowania.

Przeznaczenie

Obecnie na świecie istnieją tysiące języków programowania i każdego roku powstają nowe. Od języków naturalnych odróżniają się wysoką precyzją oraz jednoznacznością. Człowiek podczas komunikacji między sobą stale popełnia niewielkie błędy lub pozostawia niedomówienia wiedząc, że drugi rozmówca najczęściej go zrozumie. Maszyny wykonują zadania dokładnie, dlatego każdą czynność trzeba opisać ściśle krok po kroku, ponieważ komputer nie potrafi dociec, co programista miał na myśli.

Wiele języków zostało zaprojektowanych od zera, lecz powszechna jest praktyka rozwijania już istniejących rozwiązań oraz celowego upodabniania jednego języka do innego. Pozwala to na szybsze opanowanie nowego języka przez programistów mających już doświadczenie w tworzeniu aplikacji. Potrzeba istnienia wielu różnorodnych języków wynika z dużej liczby sytuacji, w których są one wykorzystywane – każda posiada pewne specyficzne wymagania.

Elementy języka

Postać programu wyrażona w języku programowania określana jest jako kod źródłowy. Na język programowania składa się kilka elementów:

  • Składnia - Aby dany ciąg znaków mógł być rozpoznany jako program napisany w danym języku, musi spełniać pewne reguły, zwane składnią. Składnia opisuje: rodzaje dostępnych symboli oraz zasady, według których symbole mogą być łączone w większe struktury.
  • Semantyka języka programowania definiuje precyzyjnie znaczenie poszczególnych symboli oraz ich funkcję w programie. Semantykę najczęściej definiuje się słownie, ponieważ większość z jej zagadnień jest trudna lub wręcz niemożliwa do ujęcia w jakikolwiek formalizm. Część błędów semantycznych można wychwycić już w momencie wstępnego przetwarzania kodu programu, np. próbę odwołania się do nieistniejącej funkcji, lecz inne mogą ujawnić się dopiero w trakcie wykonywania.
  • Typy danych - każdy język operuje na jakimś zestawie danych, dlatego niezbędne jest podzielenie danych na odpowiednie typy, zdefiniowanie ich właściwości oraz operacji, jakie można na nich realizować. Większość języków posiada typy danych do reprezentowania: liczb całkowitych w różnych zakresach, liczb zmiennoprzecinkowych oraz ciągów tekstowych.
  • Dla większości języków zdefiniowana jest także biblioteka standardowa zawierająca podstawowy zestaw funkcji pozwalających realizować wszystkie najważniejsze operacje, np.:
    • obsługę wejścia-wyjścia
    • obsługę plików
    • obsługę wielowątkowości
    • zarządzanie pamięcią operacyjną
    • podstawowe typy danych oraz funkcje do zarządzania nimi
    • operacje na ciągach tekstowych.


© 2023, Maksymilian Klocek