JĘZYKI PROGRAMOWANIA I ICH KLASYFIKACJA

46
JĘZYKI PROGRAMOWANIA I ICH KLASYFIKACJA Cel: Wprowadzenie do programowania: języki i ich charakterystyka. Uczeń wymienia najbardziej znane języki programowania, rozróżnia interpretery i kompilatory

description

JĘZYKI PROGRAMOWANIA I ICH KLASYFIKACJA. Cel : Wprowadzenie do programowania: języki i ich charakterystyka. Uczeń wymienia najbardziej znane języki programowania, rozróżnia interpretery i kompilatory. Program. Język programowania. - PowerPoint PPT Presentation

Transcript of JĘZYKI PROGRAMOWANIA I ICH KLASYFIKACJA

Page 1: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

JĘZYKI PROGRAMOWANIA I ICH KLASYFIKACJA

Cel: Wprowadzenie do programowania: języki i ich

charakterystyka.Uczeń wymienia najbardziej znane języki programowania, rozróżnia

interpretery i kompilatory

Page 2: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Program. Język programowania• Program - zapis algorytmu w języku programowania

Program komputerowy - algorytm zapisany w języku programowania (zapisany na nośniku w postaci pliku źródłowego lub wykonywalnego).

• Język programowania: sformalizowany (zgodny z pewnymi regułami), zbliżony do języka naturalnego sposób zapisu algorytmu, tak aby był możliwy po kompilacjido wykonania przez komputer.

Page 3: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Język programowania• Język programowania – jeden ze sposobów

zapisu algorytmu.• Sztuczny język (w odróżnieniu do języków

naturalnych), pozwala na zapis zadania i sposobu jego wykonania przez komputer.

• Jest to zbiór zasad określających, kiedy ciąg symboli (opisujący np. obliczenia) tworzy program oraz jakie obliczenia opisuje.

• Język programowania określony jest przez podanie jego składni i semantyki - ścisłych zasad tworzenia - instrukcji, określających elementarne (w danym języku) operacje.

Page 4: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Programowanie

• Programowanie to pisanie ciągów instrukcji (programu), który ma wykonać właśnie procesor.

• Instrukcje te powinny być zapisane w postaci ciągów zer i jedynek, aby procesor był w stanie je poprawnie zinterpretować (zrozumiały dla procesora język zer i jedynek nazywamy językiem maszynowym).

Page 5: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Instrukcje dla procesora

• Instrukcje te powinny być zapisane w postaci ciągów zer i jedynek, aby procesor był w stanie je poprawnie zinterpretować

• Zrozumiały dla procesora język zer i jedynek nazywamy językiem maszynowym.

Page 6: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Język maszynowy• Program w języku maszynowym, rozumianym

przez komputer jest ciągiem cyfr binarnych – zer i jedynek.Program taki jest praktycznie nieczytelny dla człowieka.

• W praktyce do pisania instrukcji do bezpośredniego wykonania przez komputer używa się języka programowania niskiego poziomu tzw. asemblera.

Page 7: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Asembler• Kodom instrukcji dla procesora odpowiadają

symbole literowe. Są to skróty nazw czynności.• Również adresy komórek mają nazwy literowe a

kompilator zamienia je na adresy liczbowe• Przykład: MOV AX DANE – AX – rejestr procesora– MOV – przesuń– DANE – etykieta komórki pamięci z danymi do

przeniesienia do rejestru AX

Page 8: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Programowanie w Asemblerze• Programowanie w Asemblerze polega na pisaniu

ciągu instrukcji w bardziej przyjazny dla człowieka sposób.

• Nie trzeba posługiwać się liczbami dwójkowymi, lecz krótkimi, z reguły trzyliterowymi poleceniami.

• Procesor nie potrafi jednak wykonać programu napisanego w Asemblerze. Trzeba program przetłumaczyć na postać binarną - maszynową

• Dlatego razem z opracowaniem Asemblerastworzono też specjalny program tłumaczący, który nazywamy kompilatorem

Page 9: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Kompilator, kompilacja

• Kompilator to program, który tłumaczy kod pewnego języka programowania na język maszynowy - ciąg zer i jedynek, które potrafi wykonać procesor.

• Proces tłumaczenia programu na język maszynowy nazywamy kompilacją.

Page 10: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Języki wysokiego poziomu• Programista Asemblera nie musi już co

prawda używać wyłącznie zer i jedynek, jednak programowanie w Asemblerze nadal jest trudne i wymaga dużej wiedzy i cierpliwości.

• Dla ułatwienia programowania wymyślono tak zwane języki wysokiego poziomu.

• Jednym z nich jest Pascal.

Page 11: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Programowanie w języku wysokiego poziomu – kod źródłowy

• Programowanie w języku wysokiego poziomu polega na zapisaniu ciągu instrukcji za pomocą zbliżonych wyrażeń zbliżonych do mowy człowieka ( z reguły jęz. angielskiego) – dzięki temu jest proste.

• Program napisany w języku wysokiego poziomu to tzw. kod źródłowy

• Aby móc taki program uruchomić, należy go najpierw skompilować (czyli przetłumaczyć na przykład z języka Pascal na język maszynowy).

Page 12: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Instrukcje• W przypadku tzw. języków wysokiego

poziomu (m.in. Algol, Fortran, Cobol, C, BASIC, Pascal, Logo, Lisp, Prolog) instrukcje budowane są z –pewnej liczby słów angielskich, – znaków operacji matematycznych i

logicznych, – stałych liczbowych oraz – symbolicznych nazw zmiennych

Page 13: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Klasyfikacja języków programowania

• Języki programowania mogą być podzielone ze względu na:– Paradygmat programowania – Generację języka programowania – Sposób kontroli typów. – Sposób wykonywania (kompilacja, interpretacja). – Poziom (języki niskopoziomowe są bardziej

zbliżone pod względem budowy do działania sprzętu).

– Przeznaczenie.

Page 14: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Języki niestrukturalne, strukturalne, obiektowe

• Języki niestrukturalne - FORTH, BASIC• Języki strukturalne (program budowany jest z

mniejszych elementów: procedur, funkcji itp.), np. Pascal, C, FORTRAN

• Języki obiektowe (program składa się z obiektów, które posiadają właściwości i potrafią wykonywać operacje), np. C++, Java - języki zorientowane obiektowo.

Page 15: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Podział języków wg poziomu• 1. Języki niskiego poziomu tzw. asemblery • 2. Języki wysokiego poziomu, języki

uniwersalne służące do rozwiązywania szerokiego zakresu problemów (Pascal, C, Logo, Basic, itd.)

• 3. Języki zorientowane problemowo, nastawione na wąski zakres problemów (HTML, PHP, VBA, dBase)

Page 16: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Języki wewnętrzne i zewnętrzne

Języki programowania dzielimy na:• języki wewnętrzne

(binarne lub asemblery),• języki zewnętrzne

(FORTRAN, COBOL, PASCAL, C, BASIC, CLIPPER …).

Page 17: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Generacje języków• Wewnętrzne (binarne lub asemblery),• maszynowe, • algorytmiczne (Pascal, częściowo C), • języki czwartej generacji (w tym niektóre

języki do tworzenia aplikacji na bazie danych np. SQL)

Page 18: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Pod względem stopnia zaawansowania:• Języki pierwszej generacji - są to języki maszynowe, czyli

języki procesorów. Instrukcje są w nich zapisywane w postaci liczb binarnych.

• Języki drugiej generacji - języki symboliczne, asemblery. • Języki trzeciej generacji - języki wysokiego poziomu,

proceduralne (imperatywne). Do tej grupy należą między innymi: FORTH, BASIC - języki niestrukturalne, Pascal, C, FORTRAN - języki strukturalne, C++, Java - języki zorientowane obiektowo.

• Języki czwartej generacji - języki bardzo wysokiego poziomu, nieproceduralne (deklaratywne). Przykładem języka z tej grupy jest: SQL.

• Języki piątej generacji - języki sztucznej inteligencji, języki systemów ekspertowych. Języki najbardziej zbliżone do języka naturalnego. Przykładem języka piątej generacji jest PROLOG.

Page 19: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Języki pierwszej generacji• Języki pierwszej generacji - są to języki maszynowe,

czyli języki procesorów. • Instrukcje są w nich zapisywane w postaci liczb

binarnych. • Przykładowy kod programu:

111010100000000000001111111111111111100010011101100000000010100000001

Page 20: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Języki drugiej generacji• Języki drugiej generacji - języki symboliczne, asemblery. • Języki niskiego poziomu, pod względem składni tożsame z

maszynowymi, z tą różnicą że zamiast liczb używa się tu łatwiejszych do zapamiętania mnemoników.

• Przykładowy kod programu: jmp ffff:0 mov ax, bx add ax, 1

Pod względem znaczenia kod ten jest jednoznaczny z kodem binarnym przedstawionym w poprzednim punkcie (tylko dla procesorów z grupy 80x86).

Page 21: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Języki trzeciej generacji• Języki wysokiego poziomu, proceduralne (imperatywne). • W językach tych jedna instrukcja jest tłumaczona na kilka

instrukcji procesora.• Pierwszym językiem tego typu był ALGOL.

Do tej grupy należą między innymi: – FORTH, BASIC - języki niestrukturalne, – Pascal, C, FORTRAN - języki strukturalne, – C++, Java - języki zorientowane obiektowo.

• Przykładowy kod: if(!x){ printf("Nie wolno dzielić przez zero\n"); return 1;}

Page 22: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Języki czwartej generacji• Języki bardzo wysokiego poziomu, nieproceduralne

(deklaratywne). • Korzystając z tych języków programista skupia się na

problemie, a nie na sposobie jego rozwiązania (języki zorientowane problemowo, task oriented languages).

• Syntaktyka wielu języków czwartej generacji przypomina składnię języka naturalnego.

• Języki te są one często używane do dostępu do baz danych. Przykładem języka z tej grupy jest: SQL.

• Przykładowy kod: SELECT Towar FROM „Faktura" WHERE Cena >= 500

Page 23: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Języki pod względem przeznaczenia

• Bazodanowe: dBase, Clipper, FoxPro, Access, Delphi, SQL-owe (np. Oracle).

Ukierunkowanie na tworzenie aplikacji baz danych (zbiór informacji jednorodnych, łatwiej dopisywać informacje, dostosowanie do pracy w sieci, sortowanie)

• Obliczeniowe (naukowo techniczne, statystyka), np. Fortran (są biblioteki do grafiki), Pascal, C/C++ (ojciec Pascal, matka assembler), podobny do UNIXa, wykonuje instrukcje nie dyskutuje.

Jest jakby językiem uniwersalnym, właściwości sieciowe. C++ cechuje obiektowość. Gorzej z zastosowaniami bazodanowymi, biblioteka funkcji matematycznych mniejsza niż w Fortranie.

• Specjalizowane: sztuczna inteligencja, systemy ekspertowe, przetwarzanie list, do symulacji procesów

• Języki typu "Visual" (np. Visual C++, C#, Visual Basic, Delphi)

Page 24: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Języki strukturalne, obiektowe

• Języki niestrukturalne• Języki strukturalne (program budowany jest z

mniejszych elementów: procedur, funkcji itp.), np. Pascal

• Języki obiektowe (program składa się z obiektów, które posiadają właściwości i potrafią wykonywać operacje), np. C+

Page 25: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Implementacja (kodowanie)• W fazie implementacji następuje proces kodowania (pisania

oprogramowania w konkretnym języku), projekt zostaje zaimplementowany w konkretnym środowisku programistycznym oraz wykonywane są testy poszczególnych modułów.

• Wydzielenie modułów funkcji• Wstępne testowanie (debugger)• Dokumentacja techniczna dla programisty.

Komentuje algorytm a nie instrukcje. Opis procedur, funkcji, danych we/wy

• Kompilacja, usunięcie błędów (kod max zbliżony do ANSII, nie ignorować ostrzeżeń)

Page 26: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Program- zapis algorytmu może mieć postać:

1. źródłową - w pewnym języku programowania

2. kodu pośredniego - ciąg instrukcji wykonywanych przez interpreter

3. binarną - skompilowana - ciąg instrukcji do wykonania bezpośredniego przez procesor

Page 27: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Interpretery

• Interpretery – interpretują program a nie kompilują.

• Tłumaczą program w następujący sposób: 1. pobierają jedną instrukcję programu 2. tłumaczą na język maszynowy 3. dają procesorowi do wykonania 4. powracają do pkt. 1.

• Językami interpretowanymi są na przykład: BASIC, SQL, JavaScript.

Page 28: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Plusy i minusy interpretera• Aby uruchomić program zapisany w języku interpretowanym

należy zawsze posiadać interpreter, bez niego program po prostu nie będzie działać. W związku z tym jeżeli chcemy sprzedać komuś program napisany w języku interpretera należy sprzedać go razem z interpreterem.

• Programy zapisane w języku interpretowanym działają powoli, np. jeżeli w programie jakaś instrukcja ma być wykonywana tysiąc razy to interpreter będzie ją tysiąc razy tłumaczył.

• Dobrą stroną interpreterów jest fakt, że programy napisane w ich językach charakteryzują się bardzo dużą przenośnością. To znaczy, że program napisany np. na komputerze PC na 99% będzie działał na komputerach iMac - należy mieć odpowiedni interpreter dla iMac-a

Page 29: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Kompilatory• Kompilatory działają w następujący sposób: – tłumaczą cały program – zapisują przetłumaczony program w pamięci komputera

lub na dysku • Program po przetłumaczeniu (skompilowaniu) przez

kompilator jest gotowy do wykonania. • Językami kompilowanymi są na przykład: – Pascal, – C, C++, – Asembler, – COBOL, itp.

Page 30: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Plusy i minusy kompilatorów

• PLUSY

– Programy skompilowane wykonują się szybciej niż interpretowane (nie muszą być na bieżąco tłumaczone), mają postać np. COM, EXE jako pliki wykonywalne.

– Nie potrzeba kompilatora aby uruchomić program• MINUSY

– Negatywną cechą kompilatorów jest przenośność programów. Programy skompilowane za pomocą kompilatora są w większości nieprzenośne, np. program napisany dla komputera iMac nie będzie działał na komputerze PC. Aby program zadziałał na innym rodzaju komputera należy program na tym komputerze skompilować.

Page 31: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Elementy języka programowaniaNa język programowania składa się kilka elementów:• Składnia: Rodzaje dostępnych symboli – alfabet języka.

• Semantyka języka programowania definiuje precyzyjnie znaczenie poszczególnych symboli oraz ich funkcję w programie – gramatyka języka programowania. Definiuje znaczenie poszczególnych sekwencji znaków

Semantykę najczęściej definiuje się słownie, ponieważ większość z jej zagadnień jest trudna lub wręcz niemożliwa do ujęcia w jakikolwiek formalizm. Część błędów semantycznych można wychwycić już w momencie wstępnego przetwarzania kodu programu, np. próbę odwołania się do nieistniejącej funkcji, lecz inne mogą ujawnić się dopiero w trakcie wykonywania.

Page 32: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Typy danych • Większość języków posiada typy danych do reprezentowania:– Liczb całkowitych w różnych zakresach. – Liczb zmiennoprzecinkowych (reprezentacje liczb

rzeczywistych o różnym stopniu dokładności) – Ciągów tekstowych.

• Od strony sprzętowej wszystkie te informacje wyrażane są za pomocą sekwencji zer i jedynek. Język programowania nakłada jedynie odpowiednie ograniczenia i zasady ich przetwarzania.

Page 33: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Biblioteki standardowe • Dla większości języków zdefiniowana biblioteka

standardowa zawierająca podstawowy zestaw funkcji pozwalających realizować wszystkie najważniejsze operacje, np.:

– Obsługę wejścia-wyjścia. – Obsługę plików. – Obsługę wielowątkowości. – Zarządzanie pamięcią. – Podstawowe typy danych oraz funkcje do

zarządzania nimi. – Operacje na ciągach tekstowych.

Page 34: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Podsumowanie koncepcji języków programowania• W pamięci komputera program jest przechowywany jako kod maszynowy, będący

instrukcjami dla konkretnego procesora. Instrukcje te przechowywane są w systemie zero-jedynkowym – język maszynowy.

• Dla ułatwienia programowania niskopoziomowego utworzono asembler (assembler), którego rozkazy odpowiadają bezpośrednio instrukcjom procesora, jednak zapisywane są w bardziej zrozumiałej dla nas formie.

• Później powstały języki interpretowane nie mające już tak bliskiego związku z procesorem, ale nadal podobnie jak asembler stanowiące jeden ciąg instrukcji. Przykładem takiego języka może być ogólnie znany Basic (GWBasic, Qbasic, inne).Jedna instrukcja języka drugiej generacji, może być tłumaczona na kilka, kilkadziesiąt a czasem więcej instrukcji procesora.

• Języki kolejnej generacji, np. Pascal, rozwinęły koncepcję programowania o możliwość podzielenia programu na moduły wykonujące różne operacje wchodzące w jego skład.

• Następną generację języków programowania tworzą tak zwane języki obiektowe, np. Delphi, Visual Basic, C++.

Page 35: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Najpopularniejsze języki programowania

• Java• C• C++• PHP• Visual Basic• C#• Python• Perl• Objective-C• Delphi

Page 36: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Basic• BASIC (Beginner's All-purpose Symbolic Instruction Code) - język programowania

wysokiego poziomu, opracowany w 1964 przez Johna George'a Kemeny'ego i Thomasa E. Kurtza w Dartmouth College w oparciu o Fortran i Algol-60.

• Założenia projektantów BASIC-a uwzględniały łatwość użytkowania, wszechstronność zastosowań, interaktywność i dobrą komunikację z użytkownikiem poprzez jasne komunikaty błędów.

• BASIC wybił się na czoło języków do zastosowań amatorskich i półprofesjonalnych po wprowadzeniu na rynek mikrokomputera Altair 8800. BASIC szybko zaimplementowany został przy budowie serii komputerów Apple, a później jako GW BASIC w IBM

• Następcą GW BASIC-a dla komputerów PC został QB, później rozprowadzany komercyjnie jako QuickBASIC, który w końcu wyewoluował w Visual Basic for Windows.

• Istnieją też alternatywne interpretery i kompilatory tego języka dla platformy win32 (Power BASIC, DarkBASIC itp.). Wersja darmowa to np. JustBASIC.

• Just BASIC is a programming language for the Windows operating system. It is completely free and it is suitable for creating all kinds of applications for business, industry, education and entertainment. Just BASIC borrows many features from our popular commercial product, Liberty BASIC.

Page 37: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

TURBO PASCAL

• Turbo Pascal to bardzo popularny język programowania, zorientowany na naukę programowania strukturalnego. Pascal powstał w 1971 roku, kiedy to Niklaus Wirth opublikował pierwszy artykuł o nim, jego upowszechnienie nastąpiło po roku 1974.

• Język Pascal miał służyć przede wszystkim do nauki programowania strukturalnego, tj. programowania dużych systemów tzw. metodą "z góry na dół", czyli określania dużych elementów poprzez elementy niższego rzędu, aż do końcowych elementów programowych realizujących określone funkcje.

• Pascal jest on dobry do nauki podstaw programowania. Zyskał on dużą popularność dzięki prostej i ścisłej składni oraz czytelnej budowie programu, która łatwo może być modyfikowana.

• Turbo Pascal, został wprowadzony na rynek w 1983 roku przez amerykańską firmę Borland International Inc.

Page 38: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

C/C++• Język C opracował i zrealizował w latach siedemdziesiątych Dennis Ritchie

jako narzędzie do stworzenia systemu operacyjnego Unix.• C jest językiem strukturalnym i zajmuje on miejsce pomiędzy typowymi

językami wysokiego poziomu jak Pascal, Basic lub FORTRAN, a asemblerami. Dużą popularność język C zawdzięcza m.in. nowoczesnemu sterowaniu, prostocie wyrażeń oraz nowoczesnym strukturom danych i wielkiemu bogactwu operatorów.

• Zaletą C jest jego "zorientowanie maszynowe" np. typy int, char, double float, pointer są tłumaczone prawiew stosunku 1:1 na konstrukcje kodu maszynowego

• Obiektowa wersja C, czyli C++, została opracowana przez Bjarne Stroustrup'a z AT&T Bell Laboratories. C++ jest językiem strukturalnym z dodatkowymi konstrukcjami umożliwiającymi programowanie obiektowe i usprawniającymi składnię proceduralną. Język ten zyskał popularność ponieważ daje programiście możliwość tworzenia spójnego, szybkiego i niezawodnego kodu.

Page 39: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Paradygmaty programowania• Paradygmat to przyjęty sposób widzenia rzeczywistości w

danej dziedzinie, doktrynie itp.Jak to się ma do programowania? Greckie παράδειγμα oznacza wzorzec bądź przykład. Chodzi tu zbiór mechanizmów, jakich programista używa, pisząc program, i o to, jak ów program jest następnie wykonywany przez komputer.

Paradygmat programowania to ogół oczekiwań programisty wobec języka programowania i komputera, na którym będzie działał program.

Page 40: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Pardygmaty programowania - rodzaje

• Programowanie imperatywne• Programowanie obiektowe• Programowanie funkcyjne• Programowanie w logice• Programowanie strukturalne• Programowanie sterowane przepływem danych• Programowanie sterowane zdarzeniami

• Programowanie współbieżne

Page 41: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Programowanie imperatywne:

• zmienne • struktura blokowa • wiązanie statyczne i dynamiczne • organizacja wywołań podprogramów • przydział pamięci na stosie i na stercie • przykłady z języków Ada, C, Pascal

Page 42: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Programowanie obiektowe:

• klasy jako abstrakcyjne typy danych • dziedziczenie • późne (dynamiczne) wiązanie wywołań • polimorfizm • szablony i klasy rodzajowe • przykłady z języków C++, Java, C#, Ada 95,

Smalltalk

Page 43: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Programowanie funkcyjne:• funkcje jako model programowania • rachunek lambda • dopasowywanie wzorca • nadawanie typów • rekursja • leniwa ewaluacja • funkcje wyższego rzędu • przykłady z języków Lisp, Scheme, ML, Haskell

Page 44: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Programowanie w logice:

• rachunek predykatów w Prologu • rezolucja • listy

Page 45: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Języki wg różnych kryteriów• wieloparadygmatowe : Ada • Clojure • Common Lisp • D • Icon • Lua •

Nemerle • PHP • Python • Ruby • Scala • Snobol• proceduralne i strukturalne : AWK • C • COBOL • Forth • Fortran •

Modula-2 • Oberon • Pascal • Perl • PLEX • PL/SQL • REXX • obiektowe: ActionScript • C++ • C++/CLI • C# • Delphi • Delphi.NET •

Delphi Prism • Eiffel • Java • JavaScript • Object Pascal • Objective-C • Oxygene • Smalltalk • VB.NET

• Funkcyjne: Clojure • Erlang • F# • Haskell • Lisp • ML • OCaml • Scheme• Logiczne: Prolog• edukacyjne : Comal • Logo • Small Basic• historyczne : ALGOL • APL • BASIC • Clascal • Clipper • JAS • Lisp •

MUMPS • PLAN • PL/I • PL/M • SAKO • SAS (asembler) • Simula• inne : ABAP • Asembler • C-- • GAUSS • Lustre • MCPL • occam • QCL •

SAS 4GL • SQL • Visual Basic

Page 46: JĘZYKI PROGRAMOWANIA  I ICH KLASYFIKACJA

Języki programowania szeroko rozumiane - kategorie:

• skryptowe (np.: skrypty powłoki systemu operacyjnego)• obsługi stron internetowych - po stronie serwera

(np.: PHP, JSP)• obsługi stron internetowych - po stronie klienta

(np.: JavaScript, JScript, VBScript, ActionScript)• opisu dokumentów (np.: HTML, TeX)• opisu danych (np.: XML)• przetwarzania tekstu i danych (np.: AWK, Perl)• programowania baz danych (np.: PL/SQL)• ogólnego przeznaczenia

(np.: C++, C#, Delphi, Java, Assembler)