Język wysokiego poziomu: Różnice pomiędzy wersjami
m (Infobox5 - przypisy zamiana) |
m (cleanup bibliografii i rotten links) |
||
(Nie pokazano 4 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
Linia 56: | Linia 56: | ||
==Bibliografia== | ==Bibliografia== | ||
<noautolinks> | <noautolinks> | ||
* Duch W. (1997) [https://wwwold.fizyka.umk.pl/~duch/books-fsk/FSPK/fspk04.pdf Języki programowania] ''Fascynujący świat programów komputerowych | * Duch W. (1997), ''[https://wwwold.fizyka.umk.pl/~duch/books-fsk/FSPK/fspk04.pdf Języki programowania]'', Fascynujący świat programów komputerowych | ||
* Kernighan, Plaugher (1978) ''The Elements of Programming Style'', McGraw-Hill | * Kernighan B., Plaugher P. (1978), ''The Elements of Programming Style'', McGraw-Hill | ||
* Kumar K., Dahiya S. (2017) Programming Languages: A Survey | * Kumar K., Dahiya S. (2017), ''Programming Languages: A Survey'', International Journal on Recent and Innovation Trends in Computing and Communication, Volume: 5 Issue: 5 | ||
* Prata | * Prata S. (2006), ''Język C++. Szkoła programowania'', Helion, Gliwice | ||
* | * Saylor Foundation (2013), ''[https://www.saylor.org/site/wp-content/uploads/2013/02/CS101-2.1.2-AdvantagesDisadvantagesOfOOP-FINAL.pdf Advantages and Disadvantages of Object-Oriented Programming]'', Introduction to computer science | ||
* Wróblewski P. (2010), ''Algorytmy, struktury danych i techniki programowania'', Helion, Gliwice | * Wróblewski P. (2010), ''Algorytmy, struktury danych i techniki programowania'', Helion, Gliwice | ||
* Wrycza S. (1999), ''Analiza i projektowanie systemów informatycznych zarządzania. Metodyki, techniki, narzędzia.'', Wydawnictwo Naukowe PWN, Warszawa | * Wrycza S. (1999), ''Analiza i projektowanie systemów informatycznych zarządzania. Metodyki, techniki, narzędzia.'', Wydawnictwo Naukowe PWN, Warszawa |
Aktualna wersja na dzień 23:38, 17 sty 2024
Język wysokiego poziomu - jest to względny typ języka programowania, którego kod i składnia są bardzo przystępne dla człowieka, lecz kompletnie nie zrozumiałe dla jednostki centralnej komputera. Przez co program, podlega dłuższemu i bardziej skomplikowanemu procesowi kompilacji. Jego względność polega na tym, że gdy zestawić asemblera i język C można stwierdzić, że ten drugi jest językiem wysokiego poziomu, ale gdy porównać go z obiektowym językiem programowania Java można powiedzieć, iż jest on językiem niskiego poziomu. Ogólnie, im wyższy poziom abstrakcji struktur danych, tym poziom języka jest wyższy[1]
TL;DR
Język wysokiego poziomu jest łatwiejszy do nauki i bardziej zrozumiały dla programistów niż języki niskiego poziomu. Popularne języki wysokopoziomowe to Java, C, C++, PHP. Mają one wiele cech ułatwiających programowanie, takich jak obiekty, funkcje i pętle. Kompilacja jest niezbędna do uruchomienia programu napisanego w języku wysokopoziomowym. Różnice między językami wysokiego i niskiego poziomu obejmują abstrakcję, bezpośrednie działanie na sprzęcie, szybkość działania programu i złożoność procesu kompilacji. Przykładem programu w języku wysokopoziomowym jest wypisanie ciągu znaków na ekranie w języku Java.
Historia
Gdy w latach sześćdziesiątych zaczęto konstruować duże jak na tamtejsze czasy systemy informatyczne (w sensie ilości kodu), popełniano przy tym bardzo dużo błędów, ponieważ programowanie asemblerowe jako kod o małym stopniu abstrakcji pisano zwykle intuicyjnie i bez możliwości sprawdzenia poprawności oprogramowania. Sytuacja była na tyle poważna, że zaczęto nawet mówić o "kryzysie w wytwarzaniu oprogramowania". Dlatego w 1968 odbyła się pierwsza konferencja zwołana przez NATO[2], gdzie dyskutowano o roli informatyki jako nauki i o dziedzinie jaką jest inżynieria oprogramowania. Wtedy też, usystematyzowano różne pojęcia, modele oraz metodyki i podzielono informatykę na dziedziny.
Plankalkül
Konrad Zuse w latach od 1942 do 1945 projektował pierwszy na świecie język wysokiego poziomu. Wprowadził on kilka istotnych cech, takich jak:
- programy są funkcjami, które mogą być używane wiele razy, bez konieczności wielokrotnego powtarzania fragmentu kodu.
- arytmetykę zmiennoprzecinkową, która pozwalała na używanie ułamków oraz operowanie znacznie większymi liczbami, niż przed wprowadzeniem tej właściwości.
- pętle, tablice [3]
Aby ten język mógł zacząć być wykorzystywany, potrzebny był kompilator, który niestety powstał dopiero po śmierci twórcy Plankalküla. Pomimo tego Plankalkül miał ogromny wpływ na rozwój języków programowania.
Języki używane współcześnie
W dzisiejszych czasach języki wysokopoziomowe cieszą się niezwykłą popularnością, w szczególności Java, C, C++, PHP. Stworzono również wygodne środowiska programistyczne, które ułatwiają pracę inżynierów oprogramowania, podpowiadają i dają wskazówki w trakcie pisania kodu, tak aby programista mógł w pełni skupić się na rozwiązaniu zadania.
Cechy
Zdecydowanie łatwiej jest nauczyć się podstaw programowania na przykład w Javie lub C++, niż w dowolnym języku niskopoziomowym, ponieważ programista nie działa bezpośrednio na rejestrach procesora i na komórkach pamięci, więc nie musi on znać architektury komputera. Ponadto składnia większości języków wysokiego poziomu jest zrozumiała. Można korzystać w nich między innymi z: obiektów, funkcji, pętli. Ważnym aspektem jest również to, że często kod języka wysokopoziomowego jest przenośny. Oznacza to, że jeden program może być poprawnie uruchomiony na wielu komputerach o różnych parametrach[4]
Abstrakcja
Wysoki poziom omawianych języków odnosi się do poziomu abstrakcji używanej przy programowaniu, która ułatwia pracę programistów i pozwala skupić się na wykorzystaniu algorytmów i efektywnym rozwiązaniu problemu, bez potrzeby kierowania swojej uwagi na detale techniczne i rozszyfrowywania skomplikowanego kodu maszynowego.
Kompilacja
Każdy język wysokiego poziomu potrzebuje kompilatora. Jego zadaniem jest przetłumaczenie kodu źródłowego napisanego przez programistę na język maszynowy, który może być wykonany przez komputer. Kompilacja jest niezbędna, aby uruchomić napisany program.
Różnice między niskim a wysokim poziomem języka
Głównymi różnicami jakie występują między językami wysokiego, a niskiego poziomu są:
- wysoka abstrakcja - im wyższy poziom abstrakcji struktur danych, tym poziom języka jest wyższy.
- bezpośrednie działania na sprzęcie komputera - im bardziej w programowaniu skupia się na użyciu sprzętu (praca na rejestrach, przerwaniach), tym poziom języka jest niższy.
- szybkość działania programu - zazwyczaj im program jest szybszy (w sensie wykonywania), tym większe prawdopodobieństwo, że został napisany w języku niższego poziomu,
- złożoność procesu kompilacji - jeżeli proces kompilacji trwa dłużej oznacza to, że program został napisany w języku wyższego poziomu.
- podobieństwo do kodu maszynowego - im kod jest bardziej zbliżony do kodu maszynowego komputera tym poziom języka jest niższy.
Niektóre z wyżej wymienionych własności wynikają jedne z drugich, niemniej jednak warto je wymienić, aby lepiej zobrazować różnice w językach wysokiego i niskiego poziomu.
Przykład
Poniżej przedstawiony przykładowy program w języku Java pokazuje, jak w prosty sposób wypisać ciąg znaków na ekranie (w tym przypadku jest to klasyczne "Hello, World").
public class HelloWorld { public static void main (String[] args) { System.out.println ("Hello, World"), } }
Język wysokiego poziomu — artykuły polecane |
Programowanie obiektowe — Program komputerowy — Baza NoSQL — SQL — Java — Data science — Perl (język programowania) — Cobol — Test driven development |
Przypisy
- ↑ Wrycza S., Analiza i projektowanie systemów informatycznych zarządzania. Metodyki, techniki, narzędzia., Wydawnictwo Naukowe PWN, Warszawa 1999
- ↑ Wróblewski P., Algorytmy, struktury danych i techniki programowania, Wydawnictwo Helion, Gliwice 2010
- ↑ Raúl Rojas, Cüneyt Göktekin, Gerald Friedland, Mike Krüger, Plankalkül: The First High-Level Programming Language and its Implementation, Freie Universität, Berlin 2000
- ↑ Kernighan i Plaugher, The Elements of Programming Style, McGraw-Hill 1978
Bibliografia
- Duch W. (1997), Języki programowania, Fascynujący świat programów komputerowych
- Kernighan B., Plaugher P. (1978), The Elements of Programming Style, McGraw-Hill
- Kumar K., Dahiya S. (2017), Programming Languages: A Survey, International Journal on Recent and Innovation Trends in Computing and Communication, Volume: 5 Issue: 5
- Prata S. (2006), Język C++. Szkoła programowania, Helion, Gliwice
- Saylor Foundation (2013), Advantages and Disadvantages of Object-Oriented Programming, Introduction to computer science
- Wróblewski P. (2010), Algorytmy, struktury danych i techniki programowania, Helion, Gliwice
- Wrycza S. (1999), Analiza i projektowanie systemów informatycznych zarządzania. Metodyki, techniki, narzędzia., Wydawnictwo Naukowe PWN, Warszawa
Autor: Michał Milewski, Arkadiusz Bugajski