Top Banner
Języki programowania
51

Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Mar 01, 2019

Download

Documents

phungcong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Języki programowania

Page 2: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

historia

• Programowanie w języku maszynowym komputera (1-sza generacja)

• Wprowadzenie nazw mnemonicznych – kody operacji, identyfikatory – argumenty; ręczne tłumaczenie

• Asembler – program tłumaczący

język asemblerowy (2-ga generacja)

Język asemblerowy - wady

– zależny od architektury konkretnego komputera

– Programowanie „małymi kroczkami”

• Języki programowania 3trzeciej generacji

– Wysokopoziomowe konstrukcje pierwotne, dające się zaimplementować w postaci ciągu rozkazów maszynowych

Page 3: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Wczesne języki programowania

trzeciej generacji

• FORTRAN (FORmula TRANslator)-

zastosowania naukowe i inżynieryjne

• COBOL (Commom Busines-Oriented

Language) – zastosowania biznesowe

(siły morskie USA)

Page 4: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

TRANSLATOR Program umożliwiający wykonanie

programu napisanego w języku różnym od

języka maszynowego

• Kompilator

program źródłowy → program wynikowy

• Interpreter

program wykonujący program;

rozpoznanie każdej instrukcji +

wykonanie

Asembler - kompilator

Page 5: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

• Języki trzeciej generacji –

uniezależnienie od

konkretnego komputera

Jeden program – różne

kompilatory – różne platformy

• W praktyce – brak ścisłych

ustaleń dot. definicji języka

→ problemy z przenoszeniem

oprogramowania → wprowadzenie

standardów

• Środowiska programistyczne

Page 6: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Paradygmaty

programowania Różne ścieżki rozwoju języków programowania

•funkcyjny

– Lisp, ML, Scheme

•obiektowy

– SIMULA, Smaltalk,C++, Ada95, Visual Basic, Java

•imperatywny

– Fortran, Cobol, Algol, basic, APL, C, Pascal,Ada

•deklaratywny

– GPSS, Prolog

Page 7: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Paradygmat imperatywny

(proceduralny)

• Znalezienie algorytmu

rozwiązującego problem

• Dane, ciąg poleceń, wyniki

• Zgodny z cyklem maszynowym JC

(pobierz, dekoduj, wykonaj)

Page 8: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Paradygmat deklaratywny

• Pytanie: „Na czym polega problem”

• Zadanie programisty: precyzyjny opis problemu

• Zaimplementowanie ogólnego algorytmu rozwiązywania problemów

• Początkowo języki specjalnego przeznaczenia; wąska klasa zastosowań

– Symulowanie systemów ekonomicznych, politycznych, fizycznych

Page 9: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Paradygmat funkcyjny

• Konstruowanie czarnych skrzynek:

we; wy

• Program w Lisp’ie:

(podziel (sumuj liczby) (zlicz liczby))

(pierwszy(sortuj lista))

• Modularne konstruowanie programów

Page 10: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Paradygmat obiektowy

• OOP Object Oriented Programming

• Dane – obiekty implementowane

oddzielnie, zawierające zestaw

funkcji do ich obsługi

• Komunikacja między modułami –

przesyłanie komunikatów

CORBA – Common Object Request Broker

Architecture

Page 11: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Paradygmaty

programowania

Wpływ paradygmatu

programowania na proces

rozwiązywania problemów

Paradygmaty tworzenia

oprogramowania

Page 12: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Paradygmaty programowania

• Programowanie liniowe - wszystko w jednym worku, go to !

• Programowanie strukturalne - moduły operujące na lokalnych danych i zmiennych, komunikacja przez przekazywanie parametrów, każdy moduł testowany osobno

Wada: zmiana struktur danych wymaga zmiany wielu modułów

• Programowanie zorientowane obiektowo

• Programowanie funkcyjne

Page 13: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Style programowania

• Top-down

• Bottom-up

Cykl życia (life cycle) programu: – projekt programu (program design)

– napisanie programu

– uruchamianie (edycja - poprawianie, translacja, wykonanie)

– testowanie, rozwijanie, naprawianie i pielęgnacja (maintanence) programu.

Narzędzia do tworzenia oprogramowania: – edytory

– kompilatory i interpretery

– debugery

– programy wspomagające tworzące środowisko pracy

Page 14: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Klasyfikacja języków programowania

• Języki bliskie kodu maszynowego

• Języki imperatywne

• Języki deklaratywne

• Języki proceduralne

• Języki funkcyjne

• Języki definicyjne - kolejne podstawienia interpretowane są jako definicje

• Języki logiczne - oparte na logice matematycznej, programy traktowane są jako formuły logiczne

• Języki ograniczeń (constraint) - problemy są w nich specyfikowane nie w sposób jawny lecz przez podanie zbioru ograniczeń

• Języki obiektowo zorientowane

• Języki programowania współbieżnego - dla komputerów o wielu procesorach

• Języki „przepływu danych” (dataflow) - dla komputerów o eksperymentalnej architekturze, sterowanych nie tyle kolejnymi instrukcjami co przepływem danych

• Języki czwartej generacji (4GL) - języki bardzo wysokiego poziomu, używają graficznych systemów dialogu z użytkownikiem lub opisu w języku naturalnym

• Języki zapytań baz danych - do zapisywania i wydobywania informacji z baz danych

• Metajęzyki - służące do opisu innych języków programowania

Page 15: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

1952 asemblery

1957 Fortran John Backus,IBM, Fortran II, Fortran IV (1966), Fortran 77

(1977), Fortran 90 (1991)

1960 LISP J.McCarthy

1960 Algol Algol 60, Algol 68

1960 COBOL …COBOL 85

1962 APL K. Iverson, Harvard

1962 Simula

1964 Basic

1964 PL1

1971 Prolog

1972 C Dennis Ritchie, Bell Labs, C*, Visual C

1975 Pascal N. Wirth

1979 Modula-2 N. Wirth

1980 d-BASE III, III+, IV, V

1983 Smaltalk

1983 Ada ..Ada 95

1986 C++ Bjarne Stroustrup, AT&T,

1988 Mathematica Oparta na SMP

1995 Java SunLabs,

Page 16: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Fortran • 1957r

• Obliczenia naukowe, techniczne

• Biblioteki matematyczne

• Analiza numeryczna, statystyka

C. Dijkstra, tak pisał o Fortranie w 1972 roku:

... wady ujawniły się dopiero po 10 latach intensywnego używania, ludzie go projektujący godni są podziwu... jednak im prędzej zapomnimy, że FORTRAN kiedykolwiek istniał, tym lepiej, bo jako nośnik myśli nie jest on już wystarczający: marnuje nasze władze umysłowe, jest zbyt ryzykowny i dlatego zbyt drogi by go używać. ...

Page 17: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Pascal

• 196x ; 1971, Niklaus Wirth

• Następca Algolu

• Narzędzie do nauki

programowania

• Rozbudowane struktury danych

Page 18: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

C • Dennis Ritchie 1972

• Pierwotnie – język do tworzenia systemów operacyjnych (unix, PDP11)

• Cechy języka wysokiego oraz niskiego poziomu

• Nie związany z żadnym systemem ani sprzętem

"Pisanie programów w C jest jak szybki taniec z brzytwami na śliskiej podłodze".

Page 19: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Ada

• 1980 Departament obrony USA

• Augusta Ada Lovelace z d. Byron

(1815-1852)

• Projektowanie systemów czasu

rzeczywistego

• Równoległe wykonywanie pewnych

czynności

• Obsługa sytuacji wyjątkowych

• Wbudowane systemy komputerowe

• Ada 95 – paradygmat obiektowy

Page 20: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

C++

• Rozszerzenie C

• Paradygmat obiektowy

Page 21: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Java

• 199xr

• C,C++

• Przenoszenie w sieci

programów wykonywalnych -

aplety

Page 22: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

• Sztuczna inteligencja

– LISP, Prolog, powłoki systemów ekspertowych

• DBMS

– SQL (Structured Query Language)

– języki baz danych: Oracle, Ingres, Informix, Paradox, dBase, FoxPro, MS Access ...

• 4GL

– CA-Visual Objects

– Delphi

– Clarion

– Magic

• Programowanie wizualne (VPL)

• Języki symulacyjne

• Programowanie współbieżne

• Modelowanie matematyczne (Matlab, Mathcad, Mathematica)

• Programowanie www

– Java script

– CGI

– CSS

– PHP

– Perl

– Tcl/Tk

– DHTML

• CASE Computer Aided Software Engineering,

Page 23: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Podstawowe elementy

języków programowaia (imperatywnych i obiektowych)

• Instrukcje

– Deklaratywne ( deklaracje)

– Imperatywne

– Komentarze

• Zmienne, stałe, literały

const stala=1999;

Page 24: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Typy danych

Definiują sposób interpretacji danych oraz możliwe operacje

• Liczby całkowite integer

– (notacja uzupełnieniowa do 2)

• Liczby rzeczywiste real

– (postać zmiennopozycyjna)

• Znaki character

– (kod ASCII, unicode)

• Wartości logiczne boolean

– true, false

Page 25: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Deklaracje zmiennych

Fortran:

REAL promien,obwod,pole

INTEGER i,j

Pascal:

var

promien,obwod,pole: real;

i,j: integer

C, C++, Java;

float promien,obwod,pole;

int i,j;

Page 26: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Struktury danych

tablica jednorodna Fortran:

INTEGER wynik(5,2)

Pascal:

var

wynik: array[1..5,1..2]of integer;

C:

int wynik[5][2];

Java;

int wynik[][]=new int [5][2];

1,1 1,2

2,1 2,2

3,1 3,2

4,1 4,2

5,1 5,2

Page 27: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Struktury danych

tablica niejednorodna Pascal:

var

osoba: record

nazwisko: packed array [1..8] of char;

wiek: integer;

end

C:

struct

{char nazwisko [8]; osoba.wiek

int wiek;

osoba;

}

Page 28: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Instrukcje przypisania

C, C++, Java

i=i+1;

Ada, Pascal

i:=i+1;

fortran

razem=poczatek//koniec

// - konkatenacja

+ - dodawanie lub konkatenacja- zależnie

od typu argumentów (np. Java)

przeciążenie

Page 29: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Instrukcje sterujące Imperatywne – zmiana kolejności

wykonywania instrukcji

if (w) I1;

else I2;

if (w)

{I1; I2;…;In}

else

{J1;J2;…;Jn}

goto

if w then I1

else I2

if w then

begin I1;I2;…;In;end

else

begin J1;J2;…;Jn;end

fortran

pascal

C, C++, Java

Page 30: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Instrukcje sterujące Imperatywne – zmiana kolejności

wykonywania instrukcji

while (w) {I1;I2}

do {I1;I2} while (w)

for(w1;w2;w3)I1;

switch(w1)

{ case s1: I1;

case s2: I2;

default: I3;

}

while w do

begin I1; I2 end;

repeat I1 until w

case w1 of

s1: I1;

s2: I2;

end

for z:=w1 to w2 do I1;

Page 31: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

komentarze

//komentarz

/*komentarz*/

C komentarz

{ komentarz }

Page 32: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Procedury i funkcje

procedura

moduł

wywołujący

CALL procedura

procedura;

Parametry:

formalne

aktualne

Przekazywanie:

przez wartość

przez referencję

Page 33: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Instrukcje we/wy

readln (wartosc);

writeln(wartosc);

scanf(”%d”,&wartosc);

printf(”%d”,wartosc;)

cin>> wartosc;

Cout << wartosc;

Page 34: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

translacja

Program źródłowy -> program wynikowy

FAZY TRANSLACJI:

•Analiza leksykalna

– tworzy ciąg tokenów (leksemów)

•Analiza składniowa

- rozpoznaje gramatyczną strukturę programu

•Generowanie kodu

- Tworzenie programu w języku maszynowym

Page 35: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Język

• Podstawa - słownik – symbole

• Ciągi słów – zdania

• Składnia – zbiór reguł

• Semantyka – znaczenie

L=L(T, N, P, S)

L –język;

T – słownik symboli końcowych

N – zbiór symboli pomocniczych

P – zbiór produkcji (reguł syntaktycznych)

S – symbol początkowy; S Є N

Page 36: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Notacja BNF

Backus-Naur-Form

metasymbole

::=

|

{ }

Przykład:

A::=x|(B)

B::=AC

C::={+A}

+,x,(,) – symbole końcowe

zdania: x

(x)

(x+x)

((x))

Page 37: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Diagramy składniowe

A::=x|(B)

B::=AC

C::={+A}

A

(

+

) B A

B

C

C

A

A

(

+

) B

B

C

C

A

x

x

A (

+

) A

A

Page 38: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

program p1;

var i,j: integer;

begin

j:=i+1;

end.

Analiza leksykalna:

program p1 ; var i j integer begin := +1 end .

Analiza składniowa:

drzewo rozbioru składniowego, tabela symboli:

nazwa leksem typ

id1 i integer

id2 j integer

:=

id2 +

id1 1 MOV id1, R1

ADD R1, #1.0

MOV R1, id2

Page 39: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

składnik wyrażenie

+

-

wyrażenie

składnik wyrażenie

*

/

x

y

z

składnik

x

x+y

x*y

x*y-z

x+y*z

x/y+(x+y)

Page 40: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

w x*y-z

s w

s

-

z

s * w

x s z

s

y

drzewo składniowe

Page 41: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

if W1 then if W2 then I1 else I2

if Wyr then Instr else Instr

if (w1)

if(w2)

I1;

else

I2;

if (w1)

{

if(w2)

I1;

}

else

I2;

if-then-else

instrukcja

if

Wyr if

then

instrukcja

if Wyr instrukcja else instrukcja

w1

then

w2 I1 I2

instrukcja

then instrukcja else instrukcja

w2

if

if Wyr

w1 I2

if Wyr then

instrukcja

I1

Page 42: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Konsolidacja i ładowanie

Linker – program łączący –

połączenie programów wynikowych w

moduł wynikowy

Program ładujący – umieszcza moduł

w pamięci

Page 43: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji
Page 44: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Programowanie

obiektowe

obiekt + metody(funkcje składowe)

klasa - „typ” obiektu

wzorzec do tworzenia obiektów

komunikat – reprezentuje operację wykonaną

na obiekcie

metoda – określa sposób wykonania

komunikatu

dziedziczenie – własność umożliwiająca

klasie pochodzącej uzyskiwanie pól i metod

klasy rodzicielskiej

polimorfizm każda klasa może mieć własne

wersje metod

kapsułkowanie – pewne elementy obiektu - prywatne

Page 45: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Programowanie czynności

współbieżnych

Przetwarzanie równoległe, współbieżne

Procesy, zadania, wątki

• tworzenie nowych procesów

• komunikacja; synchronizacja

Page 46: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Programowanie

deklaratywne

•bazuje na logice formalnej

•dedukcja logiczna ; rezolucje

P OR Q

Przesłanka: ⌐P

Rezolucja->wniosek: Q

ZASADA REZOLUCJI

P OR Q zdania postaci klauzulowej (OR)

R OR ⌐ Q

P OR R -rezolwenta

P → Q

Q OR ⌐ P

Page 47: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Prolog PROgramowanie w LOGice

– cykliczne stosowanie zasady rezolucji

– zbiór zdań początkowych (predykaty) – dedukcja

FAKTY:

szybszy(żółw, ślimak).

szybszy(kot, żółw).

REGUŁY:

szybszy(X,Y) AND szybszy(X,Z) → szybszy(X,Z) –logika szybszy(X,Z) :- szybszy(X,Y),szybszy(Y,Z) - Prolog

ZAPYTANIA:

szybszy(kot, żółw).

szybszy(kot, ślimak).

szybszy(W, żółw).

szybszy(V,ślimak).

szybszy(W, V).

stałe

zmienne

Page 48: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Programowanie

zdarzeniowe

• sterowane zdarzeniami

• program jest cały czas bombardowany zdarzeniami (events), na które musi odpowiedzieć

• przepływ sterowania w programie jest niemożliwy do przewidzenia z góry

• dominujący typ programowania GUI - zdarzenia - naciśnięcia myszy, klawiszy, żądania odświeżenia, różne zdarzenia sieciowe

Page 49: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

Programowanie komponentowe • rosnąca złożoność systemów informatycznych

• konieczność skrócenia czasu ich budowy

• potrzeba klarownej strukturalizacji procesu wytwarzania oprogramowania oraz podniesienia jego jakości

• wynik ewolucji obiektowego podejścia do projektowania i implementacji aplikacji - wyposażenie obiektów aplikacji w predefiniowane usługi zapewniające realizacje szeregu standardowych funkcjonalności jak np.: możliwość zdalnej komunikacji, transakcyjność, bezpieczeństwo, trwałość danych, mechanizmy łączenia, samotestowanie, samoinstalacja, etc

• dążenie do odseparowania usług, które można uznać za systemowe od funkcjonalności danej aplikacji

• znacząca redukcja złożoności budowy aplikacji

• wymaga opracowania interfejsów łączenia funkcjonalność aplikacji z częścią systemową stanowiącą środowisko wykonania komponentów

• programowanie imperatywne oraz deklaratywne

Page 50: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

budowa serwera aplikacji

Page 51: Języki programowania - mars.iti.pk.edu.plmars.iti.pk.edu.pl/~anka/WSEiA/PI/jezykiprog.pdf · – Programowanie „małymi kroczkami” • Języki programowania 3trzeciej generacji

• Systemy komponentowe strony serwerowej powstały w wyniku uogólnienia systemów opartych na koncepcji standardu CORBA [ORF1996] oraz usług systemowych opracowanych w ramach architektury OMA zwanych Common CORBA Service

• Po stronie klienta zasadniczy wpływ na ukształtowanie się komponentów warstwy prezentacji posiadały technologie związane z tworzeniem stron WWW oraz budową web serwerów.

• technologie środowisk komponentowych

– CCM (CORBA Component Model) OMG

– EJB (Enterprice Java Beans) SUN

– COM+ (Common Component Model) .NET Microsoft