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