Paradygmaty programowania/Ćwiczenia 1: Co to jest paradygmat programowania?

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Ćwiczenie 1

Przyjrzyj się programom, pokazanym w przykładach na początku wykładu. Zapewne od razu widzisz, do czego mogą służyć. Upewnij się, że masz dostęp do komputera i oprogramowania, które umożliwia uruchamianie programów w jakimś typowym języku imperatywnym (np. Pascal) i obiektowym (np. Java); C++ może spełniać obydwie te role. Następnie uruchom pierwsze dwa programy, imperatywny i obiektowy, ewentualnie dostosowując je do wymagań języków, których używasz.

Ćwiczenie 2

Trzeci program, funkcyjny, można łatwo przerobić na program imperatywny. Zrób to i uruchom ów program. Czy potrafisz napisać program, który taki sam wynik obliczy znacznie prościej?

Wskazówka

Ćwiczenie 3*

Czwarty program, logiczny, jest znacznie trudniejszy w przetłumaczeniu na język imperatywny. Spróbuj jednak i tego. Zauważ, że oprócz przetłumaczenia treści tego konkretnego programu, trzeba zbudować zalążek „maszyny logicznej”, która potrafi wyciągać wnioski z podanych zależności.

Wskazówka

Ćwiczenie 4

W historii informatyki parokrotnie podejmowano próby stworzenia „superjęzyka”, który zawierałby niemalże wszystkie znane w danym czasie mechanizmy. Przykładami są języki PL/I i Ada. PL/I dawno odszedł już w zapomnienie, zaś Ada dopiero w ćwierć wieku po powstaniu doczekała się przyzwoitych implementacji; trudno jednak uznać ją za język, który odniósł spektakularny sukces. Wymień parę powodów, dla których superjęzyki wydają się skazane na porażkę.

Wskazówka

Ćwiczenie 5

Zapisz za pomocą BNF składnię kilku typowych konstrukcji w wybranym języku programowania, np. instrukcji warunkowej (if), instrukcji wyboru (case lub switch), pętli while, deklaracji zmiennej tablicowej. Wyrażenia arytmetyczne oraz inne „żmudne” sytuacje pozostaw chwilowo bez definicji. Zauważ, że często definiujemy jakąś konstrukcję, a potem wykorzystujemy tę definicję do opisania większego lub bardziej ogólnego tworu.

Ćwiczenie 6

Zapisz w BNF definicje liczby całkowitej i liczby w zapisie zmiennopozycyjnym (chodzi o liczby postaci 1.23, –1.23E+45, 1.23E–4). Zauważ że tam, gdzie występują powtarzające się elementy (np. cyfry w liczbie), można użyć rekurencji lub nawiasów klamrowych.

Ćwiczenie 7

Zapisz w BNF definicję wyrażenia arytmetycznego z wybranego języka programowania.