Języki programowania

Transkrypt

Języki programowania
Języki programowania - generacje
11/10/2005
Próba klasyfikacji
oprogramowania
Języki programowania
- generacje
!
Nie jest możliwa jednoznaczna klasyfikacja
oprogramowania - to jedna z subiektywnych prób:
!
Klasyfikacja oprogramowania
Co to jest język programowania?
Generacje języków
Przenaszalność programów
!
!
!
systemy operacyjne,
! DOS
! Windows ’95, ’98, Millenium
! Windows NT, 2000, XP
! OS/2
! Linux
oprogramowanie narzędziowe,
języki programowania,
programy aplikacyjne.
2/12
Oprogramowanie narzędziowe
!
!
Języki programowania
Oprogramowanie narzędziowe staje się coraz
częściej składową systemu operacyjnego
Oprogramowanie narzędziowe
!
!
!
nakładki na system operacyjny ułatwiające niezbyt
wprawnym użytkownikom posługiwanie się komputerem
bardziej zaawansowane programy służące
zaawansowanym użytkownikom do szczegółowej
diagnostyki sprzętu.
3/12
©2005 R. Robert ‘RoG@j’ Gajewski
!
!
!
!
©2005 R. Robert ‘RoG@j’ Gajewski
II Generacja
Języki assemblerowe
I generacja - języki poziomu maszynowego (MLL,
Machine Level Languages) powstały wraz z
narodzinami pierwszych komputerów
Języki te wymagały od programistów pracy na
poziomie pojedynczych bitów
Komplikował to dodatkowo zadanie tworzenia
algorytmów i najczęściej prowadziło do błędów,
które trzeba było wykrywać i poprawiać
(odpluskwianie, debugging)
!
!
!
!
5/12
Języki programowania są to (w pewnym
uproszczeniu) narzędzia, które umożliwiają
tworzenie nowych programów
Gdyby programiści musieli pisać programy w języku
maszynowym tworzenie oprogramowania byłoby
bardzo trudne
Opracowano więc języki programowania w których
można zapisywać algorytmy w sposób wygodny dla
człowieka i łatwo przekształcalny na rozkazy języka
maszynowego
4/12
I Generacja
Języki maszynowe
!
©2005 R. Robert ‘RoG@j’ Gajewski
©2005 R. Robert ‘RoG@j’ Gajewski
(C)2005 R. Robert "RoG@j" Gajewski
6/12
II generacja - języki symboliczne określane mianem
języków niskiego poziomu (Intermediate Level
Languages) powstały jako ułatwienie pracy
programisty
Są one nadal językami zorientowanymi maszynowo,
ich używanie jest już jednak znacznie prostsze.
Assemblery tłumaczyły programy zapisane w
postaci mnemonicznej na postać zrozumiałą dla
komputera
Te systemy nazw mnemonicznych to języki
assemblerowe
©2005 R. Robert ‘RoG@j’ Gajewski
1
Języki programowania - generacje
11/10/2005
III Generacja
Języki wysokopoziomowe
!
!
!
!
IV Generacja
III generacja - języki wysokiego poziomu (High
Level Languages) są to języki ogólnego
przeznaczenia o dużym stopniu uniwersalności;
Ich rozwój ewoluował w kierunku języków
problemowo zorientowanych
Zastosowano w nich wysokopoziomowe konstrukcje
pierwotne, które są niezależne od danego
komputera
Wyodrębniono w nich zestaw wysokopoziomowych
instrukcji
7/12
©2005 R. Robert ‘RoG@j’ Gajewski
!
!
!
!
!
©2005 R. Robert ‘RoG@j’ Gajewski
Rozwiązywanie
problemów w środowisku,
w którym człowiek
dostosowuje się do
charakterystyki
komputera
10/12
Niezależność od komputera
!
!
!
!
11/12
(C)2005 R. Robert "RoG@j" Gajewski
©2005 R. Robert ‘RoG@j’ Gajewski
!
Nie odwołują się one do konkretnego typu komputera
(procesora)
Program w języku III generacji teoretycznie można
wykonać na dowolnej maszynie
Okazuje się jednak, że ten sam język programowania dla
różnych komputerów może być inny
Amerykański Narodowy Instytut Standaryzacji,
Międzynarodowa Organizacja Normalizacyjna przyjęły i
opublikowały standardy wielu języków
©2005 R. Robert ‘RoG@j’ Gajewski
Rozwiązywanie
problemów w środowisku,
w którym komputer
dostosowuje się do
charakterystyki człowieka
Realistyczna konstatacja
Został on częściowo osiągnięty w językach III
generacji
!
©2005 R. Robert ‘RoG@j’ Gajewski
Od I do V generacji
V generacja: wizualny (graficzny) interfejs, by
stworzyć kod źródłowy, kompilowany zwykle
kompilatorem języka 3. czy 4. generacji: VisualAge
for Java, Visual C++
9/12
języki arkuszy kalkulacyjnych,
systemy zarządzania bazami danych,
systemy graficzne
systemy ekspertowe i oprogramowanie zintegrowane
8/12
V Generacja
!
IV generacja - użytkownik komputera czasami jest
też programistą!
Językom III generacji nie udało się uzyskać pełnej
niezależności od komputera
!
!
!
12/12
Pełna przenaszalność jest bliska ideału – programy można
przenosić względnie łatwo
Cel ten był przygrywka do bardziej istotnych działań
Wyzwaniem jest stworzenie środowiska
programistycznego, które pozwoli komunikować się
z komputerem za pomocą pojęć abstrakcyjnych
©2005 R. Robert ‘RoG@j’ Gajewski
2