Paradygmaty programowania/Ćwiczenia 15: Inne paradygmaty warte wspomnienia

From Studia Informatyczne

Spis treści

Zadanie 1

Wymyśl program, który będziesz potrafił(a) zapisać w językach ze wszystkich paradygmatów „wielkiej czwórki”. W którym jest najmniej/najwięcej pracy? Który wydaje Ci się najmniej/najbardziej czytelny? Który lubisz najmniej/najbardziej? Dlaczego...?

Zadanie 2

Jednym z formalizmów, który wywarł duży wpływ na rozwój programowania współbieżnego, był opracowany przez Hoare’a „rachunek procesów” o nazwie Communicating Sequential Processes (CSP). W szczególności język occam powstał na bazie CSP. Dowiedz się coś więcej o CSP i napisz za jego pomocą choćby najprostszy opis.

Wskazówka:

Klasyczny, książkowy przykład to opis automatu sprzedającego czekoladki:

 Automat = moneta -> czekoladka -> STOP

Zadanie 3

Wyjaśnij, dlaczego w Smalltalku jedyny możliwy „błąd typu” to brak metody dla danego wywołania i dlaczego tę sytuację nazywamy błędem typu.

Wskazówka:

Skoro wszystko jest obiektem...

Zadanie 4

Składnia oryginalnego Prologu francuskiego różniła się od Prologu angielskiego (i obecnego standardu). Znajdź przykłady tych różnic.

Wskazówka:

Przykładowo: nazwy zmiennych zapisywane były z gwiazdką na początku, klauzule z symbolami + (głowa) i – (reszta). Klauzula

 p(X) :- a(X, Y), b(Y).

wyglądałaby tak:

 +P(*X) –A(*X, *Y) –B(*Y).

Zadanie 5

Podaj przykłady sytuacji, w których instrukcja skoku go to wydaje się szkodliwa, i takich, w których wydaje się pożyteczna. Czy widzisz jakieś rozsądne użycie skoku w języku, który ma return, break, continue i obsługę wyjątków?

Wskazówka:

To oczywiście kwestia subiektywna, ale można by wskazać np. opuszczenie dwóch lub więcej pętli (jedna zagnieżdżona w drugiej itd.). Tu przydałoby się „podwójne/wielokrotne break”, a pod jego nieobecność — skok.

Zadanie 6

Wymień paradygmaty, z których chciałbyś skorzystać, pisząc oprogramowanie: (a) do całościowej obsługi dużej firmy ubezpieczeniowej, (b) bankomatu, (c) systemu nawigacji w samolocie, (d) czegoś prostego, np. elektrycznej szczoteczki do zębów. Jakie cechy zamierzonego oprogramowania i jakie cechy paradygmatów wpływają tu na Twój wybór?