pwir1-print.pdf

(194 KB) Pobierz
Programowanie wspólbiezne i rozproszone -- czesc I
Programowanie współbiezne i rozproszone – czesc I
Marcin Szpyrka
Katedra Automatyki
Akademia Górniczo-Hutnicza w Krakowie
2008/09
Programowanie współbiezne i rozproszone – czesc I, c Marcin Szpyrka 2008/09
1
Literatura
[1] Burns, A.: Concurrent and Real-Time Programming in Ada 2005, Cambridge University
Press 2007
[2] Barnes, J.: Programming in Ada 2005, Addison Wesley 2006
[3] Morawski, M., Zaj aczkowski M.: Wstep do programowania w jezyku Ada’95, Politechnika
Łódzka 2004 (plik pdf dostepny w Internecie)
[4] Motet G., Szmuc T.: Programowanie systemów czasu rzeczywistego z zastosowaniem
jezyka Ada, Wydawnictwa Naukowo-Dydaktyczne AGH 2002
[5] Huzar, Z., Fryzlewicz, Z., Dubielewicz, I., Hnatkowska, B., Waniczek, J.: Ada 95, Helion
1998
[6] http://www.adahome.com
[7] http://www.adapower.com
Programowanie współbiezne i rozproszone – czesc I, c Marcin Szpyrka 2008/09
2
393671498.013.png 393671498.014.png
Geneza jezyka Ada
Analiza sytuacji
– W wyniku przeprowadzonego przez Departament Obrony Stanów Zjednoczonych studium
kosztów w latach 1973-1974 stwierdzono, ze Departament Obrony wydaje rocznie około 3
mld dolarów na oprogramowanie, przy czym połowe na systemy wbudowane.
– Przy realizacji projektów Departamentu Obrony uzywano w tym czasie ponad 450
jezyków programowania, z których zaden nie miał oficjalnego standardu.
– W efekcie analizy ówczesnej sytuacji Armia Stanów Zjednoczonych, Marynarka Wojenna
i Siły Powietrzne podjeły niezalezne próby adaptacji istniej acego jezyka jako standardu do
implementacji systemów wbudowanych. Wysiłki te szybko poł aczono tworz ac wspóln a
grupe robocz a.
– Na pocz atku roku 1975 grupa robocza rozpoczeła okreslanie wymaga n dla jezyka
programowania ogólnego przeznaczenia, odpowiedniego do implementacji systemów
wbudowanych. Wymagania te okreslały jedynie ograniczenia jakie powinien spełniac
wymagany jezyk.
– Pierwsza nieformalna specyfikacja wymaga n o nazwie „Strawman” zawierała wył acznie
opis ogólnych cech takich jak: wydajnosc, niezawodnosc, czytelnosc kodu itp.
Programowanie współbiezne i rozproszone – czesc I, c Marcin Szpyrka 2008/09
3
Geneza jezyka Ada
Konkurs na jezyk programowania
– Kolejna specyfikacja o nazwie „Woodenman” zawierała kompletn a (ale ci agle wstepn a)
wersje wymaga n. Wersje te przedstawiono do konsultacji ponad 100 zespołom ekspertów
z 15 pa nstw.
– Po uwzglednieniu nadesłanych uwag została opracowana kolejna iteracja o nazwie
„Tinman”, oficjalnie zaakceptowana przez wszystkie siły zbrojne.
– Równolegle z opracowywaniem specyfikacji Tinman poddano ocenie 23 jezyki
programowania, na zgodnosc z wymaganiami. Ocena ta wykonana została przez 16 firm i
organizacji.
– Uznano, ze zaden z ocenianych jezyków, nie spełnia wymaga n w zadowalaj acym stopniu,
ale kilka z nich moze byc zmodyfikowanych tak, aby powstał w pełni akceptowalny jezyk
programowania.
– W styczniu 1977 roku wymagania zawarte w specyfikacji Tinman przedstawiono w formie
krótkiego opisu jezyka programowania. Dokument ten pod nazw a „Ironman” stał sie
podstaw a ogłoszenia konkursu na opracowanie jezyka programowania, spełniaj acego
przedstawione wymagania.
Programowanie współbiezne i rozproszone – czesc I, c Marcin Szpyrka 2008/09
4
393671498.015.png 393671498.016.png 393671498.001.png
Geneza jezyka Ada
Rozstrzygniecie konkursu
– W pierwszym etapie z ponad 15 projektów jezyków programowania wybrano 4 najlepsze,
pochodz ace z: Cii-Honeywell Bull, Intermetrics, SofTech i SRI International.
Pocz awszy od sierpnia 1977 roku, projekty te były dalej rozwijane, a zespoły oznaczono
kolorami, aby zapewnic anonimowosc.
– W 1978 roku 4 rozwijane projekty poddano ocenie przez 125 zespołów oceniaj acych z
całego swiata. Wybrano 2 najlepsze propozycje. Jednoczesni powstała kolejna iteracja
wymaga n o nazwie „Steelman”.
– Po ocenie przez ponad 900 zespołów oceniaj acych, w maju 1979 roku wybrano jezyk
przedstawiony przez „Zielony” zespół (Cii-Honeywell Bull), którego kierownikiem był
Jean Ichbiah z Francji.
Programowanie współbiezne i rozproszone – czesc I, c Marcin Szpyrka 2008/09
5
Augusta Ada Byron
Augusta Ada Byron, ksiezna Lovelace (1815-1852) –
matematyczka angielska, była jedynym slubnym
dzieckiem poety Lorda Byrona.
W 1843 roku Ada przetłumaczyła z francuskiego artykuł
opisuj acy maszyne analityczn a Babbage’a. Tłumaczenie
było trzy razy dłuzsze niz oryginał, poniewaz dodała do
niego sporo własnych sugestii. Lady Lovelace
przewidywała, ze maszyna ta bedzie mogła byc uzywana
do odtwarzania i tworzenia muzyki, grafiki i wielu
zastosowa n zarówno praktycznych jak i naukowych.
Ada zaproponowała Babbage’owi napisanie „planu
działania” dla jego maszyny tak aby mogła ona wyliczac
liczby Bernoulie’go. Plan ten jest dzisiaj uwazany za
pierwszy program komputerowy.
Ada zmarła młodo w wieku 36 lat ale jej pomysły
według wielu badaczy wyprzedziły o ponad 100 lat
mozliwosci technologiczne epoki w której zyła.
Programowanie współbiezne i rozproszone – czesc I, c Marcin Szpyrka 2008/09
6
393671498.002.png 393671498.003.png 393671498.004.png 393671498.005.png 393671498.006.png 393671498.007.png
Ada 83
Ada 83, standard ISO
– W listopadzie 1979 roku otrzymano ponad 500 raportów z 15 krajów, dotycz acych jezyka
Ada. Wiekszosc z nich sugerowała naniesienie drobnych poprawek. Poprawion a wersje
jezyka opublikowano w lutym 1980 roku.
– Pierwsza wersja jezyka pod nazw a Ada 83 została oficjalnie opublikowana jako standard
ANSI w 1983 roku.
– W 1984 roku ANSI wyst apiło do ISO o standaryzacje tego jezyka w ramach ISO.
Zatwierdzenie standardu ISO nast apiło dopiero w 1987 roku.
Programowanie współbiezne i rozproszone – czesc I, c Marcin Szpyrka 2008/09
7
Cechy jezyka
Czytelnosc kodu
Ada nalezy do jezyków rodziny Algol/Pascal, programy napisane w Adzie s a czytelne
i stosunkowo łatwe do analizy.
with Text_IO, Ada.Integer_Text_IO;
use Text_IO, Ada.Integer_Text_IO;
procedure Silnia is
n, s, i : Integer := 1;
begin
Get(n);
while i < n loop
i := i + 1;
s := s * i;
endloop ;
Put("Silnia: ");
Put(s, 0);
end ;
Programowanie współbiezne i rozproszone – czesc I, c Marcin Szpyrka 2008/09
8
393671498.008.png 393671498.009.png 393671498.010.png
Cechy jezyka
Blokowa struktura
Ada ma blokow a strukture procedur podobn a jak w Pascalu. Bloki mog a byc zagniezdzone.
Nazwa:
declare declare
-- deklaracje -- deklaracje
begin begin
-- instrukcje -- instrukcje
end ; end Nazwa;
Programowanie współbiezne i rozproszone – czesc I, c Marcin Szpyrka 2008/09
9
Cechy jezyka
Typy danych
Ada zawiera pierwotnie wbudowane m.in. typy: Integer, Float, Character, Boolean. Ada
pozwala równiez na typy danych definiowane przez uzytkownika, istotnie rozszerzaj ace typy z
Pascala, np.: niezawezony typ tablicowy i rekordy z wariantami.
W jezyku Ada obowi azuje scisła typizacja. Konieczne jest zdefiniowanie zbioru wartosci dla
kazdego elementu (obiektu). Pozwala to na wykrycie wielu błedów juz na etapie kompilacji
kodu.
type MonthName is (Jan, Feb, Mar, Apr, May, Jun,
Jul, Aug, Sep, Oct, Nov, Dec);
type Date isrecord
Day : Integer range 1..31;
Month : MonthName;
Year : Integer := 2006; -- wartosc domyslna
endrecord ;
type Vector isarray (Integer range <>) of Float;
Programowanie współbiezne i rozproszone – czesc I, c Marcin Szpyrka 2008/09
10
393671498.011.png 393671498.012.png
Zgłoś jeśli naruszono regulamin