Paradygmaty programowania/Ćwiczenia 15: Inne paradygmaty warte wspomnienia: Różnice pomiędzy wersjami
(Nie pokazano 2 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
Linia 7: | Linia 7: | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Wskazówka:''' <div class="mw-collapsible-content" style="display:none"> Klasyczny, książkowy przykład to opis automatu sprzedającego czekoladki: | <div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Wskazówka:''' <div class="mw-collapsible-content" style="display:none"> Klasyczny, książkowy przykład to opis automatu sprzedającego czekoladki: | ||
Automat = moneta -> czekoladka -> STOP | |||
</div></div> | </div></div> | ||
===Zadanie 3=== | ===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. | 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. | ||
Linia 21: | Linia 22: | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Wskazówka:''' <div class="mw-collapsible-content" style="display:none"> Przykładowo: nazwy zmiennych zapisywane były z gwiazdką na początku, klauzule z symbolami + (głowa) i – (reszta). Klauzula | <div class="mw-collapsible mw-made=collapsible mw-collapsed">'''Wskazówka:''' <div class="mw-collapsible-content" style="display:none"> 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: | wyglądałaby tak: | ||
+P(*X) –A(*X, *Y) –B(*Y). | |||
</div></div> | </div></div> | ||
===Zadanie 5=== | ===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? | 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? | ||
Linia 35: | Linia 37: | ||
</div></div> | </div></div> | ||
===Zadanie 6=== | ===Zadanie 6=== | ||
Wymień paradygmaty, z których | 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? |
Aktualna wersja na dzień 21:11, 25 wrz 2006
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.
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.
Zadanie 4
Składnia oryginalnego Prologu francuskiego różniła się od Prologu angielskiego (i obecnego standardu). Znajdź przykłady tych różnic.
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?
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?