Jakie są generacje języków programowania?
Generacje języków programowania są sposobem na klasyfikację języków programowania komputerowego zgodnie z ich całkowitą odległością od generowanego kodu maszynowego oraz, pod pewnymi względami, łatwością obsługi przez programistę. Istnieją trzy generalnie akceptowane generacje języków programowania i kilka, których definicje nie są jednoznacznie uzgodnione. Komputerowym językiem programowania pierwszej generacji jest prosty kod maszynowy bez abstrakcji. Języki drugiej generacji to abstrakcyjny kod maszynowy, taki jak język asemblera, powiązany z określoną architekturą systemu, ale czytelny dla człowieka i wymagający kompilacji. Języki trzeciej generacji są najczęstszą formą, w tym standardowe języki, takie jak C i Java®, podczas gdy języki czwartej lub wyższej generacji mają różne definicje.
Kiedy po raz pierwszy utworzono generacje języków programowania do opisu języków, termin ten był głównie używany do wskazania języków trzeciej generacji. Oznacza to, że języki pierwszej i drugiej generacji zostały sklasyfikowane jako takie, aby podkreślić możliwości języków trzeciej generacji. Czwarta i piąta generacja języków programowania były w dużej mierze używane jako terminy w odniesieniu do marketingu dla opracowywanych języków. W marketingu i niektórych obszarach akademickich generacje języków o wyższym numerze są używane w niestandardowy sposób, aby wskazać, że jeden język jest nowszy lub ma więcej funkcji niż inny.
Pierwsza generacja języków programowania wskazuje kod maszynowy. Oznacza to pisanie programu jako sekwencji bajtów lub, w skrajnych przypadkach, bitów, które mogą być bezpośrednio wykonane przez komputer. W większości przypadków odnosi się to do systemu, który przyjmuje dane wejściowe za pomocą zakodowanych na stałe przełączników lub innych mechanizmów fizycznych.
Języki programowania drugiej generacji są uważane za języki w stylu asemblera. Są to języki napisane za pomocą czytelnego dla człowieka kodu i poleceń, które wciąż są powiązane z konkretną architekturą systemu, ale stanowią łatwiejsze środowisko programistyczne i pewne abstrakcje. Języki asemblera nigdy nie przestały być używane, począwszy od 2011 r., I są nie tylko niezwykle potężne, ale mogą być również używane jako instrukcje wbudowane w językach programowania wyższego poziomu, co powoduje, że fałszywe jest przekonanie, że generowanie języka odpowiada jego szybkości lub mocy.
Języki programowania trzeciej generacji oddzieliły kod od procesora w jeszcze większym stopniu, co pozwoliło na opracowanie kodu wykorzystującego bardziej czytelne instrukcje. Ponadto opracowano kompilatory, które mogą zamienić jeden wiersz kodu w wiele instrukcji asemblera na wielu platformach, a ostatecznie w dziesiątki lub więcej instrukcji kodu maszynowego. Niemal wszystkie języki komputerowe, które mogą kompilować natywne pliki binarne i biblioteki, są uważane za języki trzeciej generacji.
Ogólnie rzecz biorąc, język czwartej generacji jest postrzegany jako język przeznaczony do używania pewnego rodzaju języka programowania, który jest bardzo naturalny dla użytkownika. Można go również zdefiniować jako język wykorzystujący elementy wizualne do budowy ostatecznego programu. Trzecia definicja to język programowania zbudowany w określonym celu, np. Język programowania bazy danych lub język szybkiego tworzenia aplikacji (RAD).
Luźna definicja języka komputerowego piątej generacji to taka, która pozwala programiście przedstawić komputerowi problem, który następnie próbuje rozwiązać. Większość języków wymienionych jako języki piątej generacji ma głównie charakter akademicki. Inne generacje języków programowania, takie jak szósta i siódma, były wykorzystywane przez programistów komercyjnych do celów marketingowych.