Język programowania: Różnice pomiędzy wersjami

[wersja przejrzana][wersja nieprzejrzana]
Usunięta treść Dodana treść
m Wycofano edycje użytkownika 46.171.212.2 (dyskusja). Autor przywróconej wersji to Thraen.
Znacznik: Wycofanie zmian
nic
Linia 1:
'''Język programowania''' – zbiór zasad określających, kiedy ciąg symboli tworzy [[program komputerowy]] oraz jakie obliczenia opisuje<ref>{{cytuj książkę |nazwisko=Ben-Ari |imię=Mordechai |tytuł= Understanding Programming Languages|wydawca= John Wiley & Sons|miejsce= Chichester |rok=1996}}</ref>.
 
== Wstęp ==
Podobnie jak [[język naturalny|języki naturalne]], język programowania składa się ze zbiorów reguł [[syntaktyka (językoznawstwo)|syntaktycznych]] oraz [[#Semantyka|semantyki]], które opisują, jak należy budować poprawne wyrażenia oraz jak [[komputer]] ma je rozumieć. Wiele języków programowania posiada pisemną specyfikację swojej składni oraz semantyki, lecz inne zdefiniowane są jedynie przez oficjalne [[implementacja (informatyka)|implementacje]].
 
Podobnie jak [[język naturalny|języki naturalne]], język programowania składa się ze zbiorów reguł [[syntaktyka (językoznawstwo)|syntaktycznych]] oraz [[#Semantyka|semantyki]], które opisują, jak należy budować poprawne wyrażenia oraz jak [[komputer]] ma je rozumieć. Wiele języków programowania posiada pisemną specyfikację swojej składni oraz semantyki, lecz inne zdefiniowane są jedynie przez oficjalne [[implementacja (informatyka)|implementacje]].
== Wstęp ==
Język programowania pozwala na precyzyjny zapis [[algorytm]]ów oraz innych zadań, jakie komputer ma wykonać. W niektórych pracach pojęcie ''języka programowania'' jest ograniczane wyłącznie do tych języków, w których można zapisać wszystkie istniejące algorytmy – od strony matematycznej oznacza to, że język musi być przynajmniej [[Kompletność Turinga|kompletny w sensie Turinga]]<ref>{{cytuj książkę| nazwisko=MacLennan |imię=Bruce J. |tytuł=Principles of Programming Languages |strony=1 |wydawca=Oxford University Press |rok=1987 |isbn=0-19-511306-3}}</ref>, jednak można się także spotkać z wykorzystaniem tego pojęcia na określenie również bardziej ograniczonych języków.
 
 
== Przeznaczenie ==
[[Plik:Algol&Fortran family-by-Borkowski.svg|thumb|[[Memetyka|Memetyczna]] ewolucja niektórych języków programowania według deklaracji autorów lub oficjalnych specyfikacji]]
 
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.
== Definicje ==
Język programowania może być zdefiniowany ze względu na kilka cech:
* ''funkcja'': język programowania służy do [[Programowanie komputerów|tworzenia programów komputerowych]], których zadaniem jest przetwarzanie danych, wykonywanie obliczeń i [[algorytm]]ów oraz kontrolowanie/obsługa zewnętrznych urządzeń, np. [[Drukarka|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 programowaniaprogramowan(informatyka)|zaimplementować]] możeten zawieraćsam konstrukcjezbiór składniowealgorytmów. doPrzykładem manipulowaniaczęsto [[Strukturastosowanego danych|strukturamijęzyka danychniezupełnego jest [[SQL]] orazsłużący zarządzaniado komunikacji z [[PrzepływBaza sterowaniadanych|przepływembazą sterowaniadanych]].
* ''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ę [[Implementacja (informatyka)|zaimplementować]] ten sam zbiór algorytmów. Przykładem często stosowanego języka niezupełnego jest [[SQL]] służący do komunikacji z [[Baza danych|bazą danych]].
 
Języki, w których nie da się realizować obliczeń ([[język znaczników|języki znaczników]], jak [[HTML]] czy [[XML]] oraz [[Gramatyka formalna|gramatyki formalne]], np. [[Notacja BNF|BNF]]), nie są zazwyczaj uznawane za języki programowania.
 
== Przeznaczenie ==
[[Plik:Algol&Fortran family-by-Borkowski.svg|thumb|[[Memetyka|Memetyczna]] ewolucja niektórych języków programowania według deklaracji autorów lub oficjalnych specyfikacji]]
 
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: