Spis tre±ci. Paradygmaty programowania tematy referatów (26 marca 2018) 1 Gramatyki i j zyki formalne, notacja BNF, diagramy syntaktyczne 2

Podobne dokumenty
JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Filozoa Clojure. Mateusz Dereniowski. 15 lipca Instytut Informatyki Uniwersytetu Wrocªawskiego

Spis treści 1. Wstęp 2. Projektowanie systemów informatycznych

Listy i operacje pytania

Zagadnienia programowania obiektowego

Praca Dyplomowa Magisterska

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Podstawy modelowania w j zyku UML

Podstawy Informatyki i Technologii Informacyjnej

1. Wprowadzenie do C/C++

Podstawy modelowania w j zyku UML

Rekurencyjne struktury danych

Paradygmaty programowania

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Maszyny Turinga i problemy nierozstrzygalne. Maszyny Turinga i problemy nierozstrzygalne

Programowanie funkcyjne. Wykªad 13

MiASI. Modelowanie systemów informatycznych. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

1. Wprowadzenie do C/C++

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Bazy danych, 4. wiczenia

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Spis tre±ci. 1 Wst p Zawarto± rozdziaªów Projekt LoXiM... 2

Lab. 02: Algorytm Schrage

Logika matematyczna (16) (JiNoI I)

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Algorytmy zwiazane z gramatykami bezkontekstowymi

Java EE produkcja oprogramowania

Podstawy Informatyki Gramatyki formalne

Podstawy matematyki dla informatyków. Logika formalna. Skªadnia rachunku zda« Skróty i priorytety. Wykªad 10 (Klasyczny rachunek zda«) 15 grudnia 2011

Teoretyczne Podstawy Informatyki

Translacja wprowadzenie

x y x y x y x + y x y

Podstawy programowania. Wprowadzenie

Programowanie obiektowe. Wprowadzenie

Low Level Virtual Machine

Android. Podstawy tworzenia aplikacji. Piotr Fulma«ski. March 4, 2015

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

Programowanie C# mgr in. Dariusz Ku. p. 119A

Informatyka. I rok, semestr II. Bartosz Kuczewski. PWSZ Gªogów, 2010

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Dyskretyzacja i kwantyzacja obrazów

Programowanie funkcyjne w Pythonie

Biblioteka graczna XPCE

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

PyPy's Approach to Virtual Machine Construction

Szeregowanie zada« Przedmiot fakultatywny 15h wykªadu + 15h wicze« dr Hanna Furma«czyk. 7 pa¹dziernika 2013

Wzorce projektowe strukturalne cz. 1

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy

tylko poprawne odpowiedzi, ale nie wszystkie 2 pkt poprawne i niepoprawne odpowiedzi lub brak zaznaczenia 0 pkt

PRZEWODNIK PO PRZEDMIOCIE

Wykład. Materiały bazują częściowo na slajdach Marata Dukhana

Gra Arkanoid dla dwóch graczy w j zyku Ada Krzysztof Wesoªowski, Automatyka i Robotyka rok II, grupa III

19. Obiektowo± 1 Kacze typowanie. 2 Klasy

Optymalizacja R dlaczego warto przesi ± si na Linuxa?

Programowanie obiektowe w C++ Wykªad 4

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

Języki programowania deklaratywnego

Podziaª pracy. Cz ± II. 1 Tablica sortuj ca. Rozwi zanie

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Spis treści. Wprowadzenie 15

Logika dla matematyków i informatyków Wykªad 1

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Model obiektu w JavaScript

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych

c Radosªaw Klimek Vincent Van GOGH: M»czyzna pij cy li»ank kawy J zyk programowania Java

MiASI. Modelowanie analityczne. Piotr Fulma«ski. 18 stycznia Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

2 Skªadnia polece«w pliku

EPI: Interfejs Graczny 2009/2010 Podstawy Rubiego

Modele wielorównaniowe. Problem identykacji

Lekcja 9 Liczby losowe, zmienne, staªe

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);

Programowanie i struktury danych

Kompilowanie programów

Java język programowania zorientowany obiektowo

Makroekonomia Zaawansowana

Numeryczne zadanie wªasne

Programowanie obiektowe - 1.

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

System komputerowy - hardware (schemat uproszczony) System operacyjny. Składniki systemu. Struktury systemów operacyjnych

Algorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI

1 Bª dy i arytmetyka zmiennopozycyjna

Programowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz

Programowanie obiektowe

Wprowadzenie do kompilatorów

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Propozycja integracji elementów ±wiata gry przy u»yciu drzew zachowa«

Projekt systemy operacyjne 2 - Systemowe mechanizmy synchr

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

Technologie internetowe Internet technologies Forma studiów: Stacjonarne Poziom kwalifikacji: I stopnia. Liczba godzin/tydzień: 2W, 2L

Programowanie wspóªbie»ne

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Katedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak

O autorze... 9 Wprowadzenie... 11

tylko poprawne odpowiedzi, ale nie wszystkie 2 pkt poprawne i niepoprawne odpowiedzi lub brak zaznaczenia 0 pkt

Programowanie wspóªbie»ne

Transkrypt:

Paradygmaty programowania tematy referatów (26 marca 2018) Spis tre±ci 1 Gramatyki i j zyki formalne, notacja BNF, diagramy syntaktyczne 2 2 Zasada dziaªania kompilatora i interpretera 2 3 Przeci»anie operatorów na potrzeby dziaªania na obiektach 2 4 Zasady programowania opartego na zdarzeniach 3 5 Metody wnioskowania w przód i wstecz 3 6 Programowanie strukturalne i strukturalizacja programów 3 7 Realizacja wspóªbie»no±ci proceduralna i obiektowa 4 8 Podstawowe cechy i mo»liwo±ci j zyk Prolog 4 9 Podstawowe cechy i mo»liwo±ci j zyk Scala 5 10 Podstawowe cechy i mo»liwo±ci j zyk Smalltalk 5 11 Rachunek lambda 5 12 Idea dziaªania platformy.net 6 13 Charakterystyka j zyka wirtualnej maszyny Javy (kodu bajtowego) 6 14 Obsªuga wyj tków w ró»nych j zykach programowania 7 15 Wyra»enia regularne i ich przykªadowe zastosowania 7 16 Listy i operacje na nich (najlepiej prezentacja z animacj ) 7 17 Funkcje preprocesora dla j zyków programowania (C/C++,...) 8 18 Metody przekazywania zmiennej liczby parametrów do podprogramów 8 19 Przeci»anie funkcji a domy±lne warto±ci parametrów w ró»nych j zykach programowania 9 20 Funkcje czyste; ±cisªe, nie±cisªe i leniwe warto±ciowanie, funkcje wy»szego rz du 9 21 Wieloparadygmatowy j zyk Python 10 22 J zyki dziedzinowe w przykªadach 10 23 Programowanie równolegªe 10 1 z 10

1 Gramatyki i j zyki formalne, notacja BNF, diagramy syntaktyczne 1. Podaj denicj j zyka formalnego. 2. Co to jest alfabet? Co to jest sªowo? (W kontek±cie gramatyki formalnej.) 3. Jakie jest zastosowanie j zyków formalnych? 4. Podaj denicj gramatyki formalnej. 5. Co to jest notacja BNF? Podaj jej denicj formaln oraz przykªad. 6. Co to jest diagram syntaktyczny i do czego sªu»y? 7. Podaj przykªad gramatyki formalnej oraz wywodu sªowa na jej podstawie. 8. Co to jest klasykacja Chomsky'ego i jaki podziaª deniuje? 2 Zasada dziaªania kompilatora i interpretera 1. Co to jest translator? 2. Co to jest interpreter? Jakie s jego zalety i wady? 3. Podaj przykªad j zyka interpretowanego. 4. Co to jest kompilator? Jakie s jego zalety i wady? 5. Podaj przykªad j zyka kompilowanego. 6. Jakie s ró»nice mi dzy interpreterem a kompilatorem? 7. Jakie s etapy kompilacji kodu? Omów je. 8. Jakie s fazy analizy kodu ¹ródªowego? Co si podczas nich dzieje? 9. Co to jest kompilacja skro±na? 10. Co to jest preprocesor i jakie ma zadania? 11. Co to jest kompilacja JIT? (ang. just-in-time) 3 Przeci»anie operatorów na potrzeby dziaªania na obiektach 1. Co to jest przeci»anie operatorów i jakie operatory mo»na przeci»a? 2. Które j zyki pozwalaj na przeci»anie operatorów, a które nie? Podaj kilka przykªadów, najlepiej w±ród najpopularniejszych j zyków programowania. 3. Do czego wykorzystywane jest przeci»anie operatorów? 4. Ile argumentów mog mie operatory? Podaj przykªady. 5. Jak liczb argumentów mo»e przyj przeci»ony operator? 6. Co to jest priorytet oraz wi zanie operatora? W jaki sposób zmieniaj si w trakcie przeci»ania? 7. Podaj przykªady przeci»enia dowolnego operatora w wybranych j zykach. 2 z 10

4 Zasady programowania opartego na zdarzeniach 1. Na czym polega programowanie oparte na zdarzeniach? 2. Zdeniuj zdarzenie (w programowaniu)? Jakie mog by rodzaje zdarze«? 3. Podaj kilka przykªadów zdarze«(ró»nego rodzaju). 4. Z jakimi zagadnieniami z zakresu programowania powi zane jest programowanie oparte na zdarzeniach? 5. Co mo»e wywoªa zdarzenie? 6. Co to jest dyspozytor (ang. dispatcher)? Jaka jest jego rola? 7. Co to jest obsªugiwacz (ang. handler)? Jaka jest jego rola? 8. Co to s kolejki zdarze«? W jakiej kolejno±ci zdarzenia s obsªugiwane? 9. W jakich j zykach mo»na programowa zdarzeniowo, a w jakich nie? Podaj przykªady. 10. Podaj przykªad aplikacji, której dziaªanie b dzie oparte na zdarzeniach. 5 Metody wnioskowania w przód i wstecz 1. Co to jest system ekspertowy? Omów jego skªadowe. 2. Jakie elementy s potrzebne do wnioskowania? Opisz krótko ka»dy z nich. 3. Jakie s sposoby reprezentacji wiedzy w systemie ekspertowym? Podaj przykªady. 4. Czym we wnioskowaniu ró»ni si reguªy od faktów? 5. Na czym polega wnioskowanie wstecz? Podaj przykªad. 6. Bez czego nie jest mo»liwe wnioskowanie wstecz? 7. Na czym polega wnioskowanie w przód? Podaj przykªad. 8. Bez czego nie jest mo»liwe wnioskowanie w przód? 9. Na czym polega wnioskowanie mieszane? Podaj przykªad. 10. Gdzie wykorzystywane jest wnioskowanie i po co? 6 Programowanie strukturalne i strukturalizacja programów 1. Rozwini ciem jakich paradygmatów jest programowanie strukturalne? 2. Podaj cechy i zaªo»enia programowania strukturalnego. Jakie s jego zalety i wady? 3. Podaj twórców koncepcji programowania strukturalnego. 4. Co to jest metoda analityczna (bottom-up)? Co to jest metoda syntetyczna (top-down)? Na czym polegaj? Czym si ró»ni? 5. Jakie s podstawowe struktury steruj ce w programowaniu strukturalnym? 6. Jakie rodzaje iteracji (p tli) s wyró»niane w programowaniu strukturalnym? 3 z 10

7. Jakie instrukcje s w peªni dozwolone w programowaniu strukturalnym, a jakie s niezalecane? 8. Podaj przykªad j zyka, w którym mo»na programowa strukturalnie. 9. Podaj przykªad kodu strukturalnego oraz niestrukturalnego w dowolnym j zyku programowania. Oba kody maj wykonywa to samo zadanie. 10. Na czym polega strukturalizacja programu? Jak j wykona? Podaj przykªad. 7 Realizacja wspóªbie»no±ci proceduralna i obiektowa 1. Co to s w tki? 2. Co to jest operacja atomowa? Jakie to ma znaczenie w kontek±cie przetwarzania wielow tkowego? 3. Wymie«oraz omów problemy wyst puj ce w programowaniu wielow tkowym. 4. Podaj i omów metody synchronizacji w tków. 5. (opcjonalnie) Co to jest wywªaszczenie? Dlaczego si je stosuje? Jakie s zalety i wady stosowania wywªaszczenia? 6. (opcjonalnie) Czym si ró»ni programowanie proceduralne od obiektowego? 7. Omów poj cia: wielow tkowo±, wspóªbie»no±, równolegªo±. Jakie s ich wady i zalety? Czym si ró»ni? 8. Podaj przykªad proceduralnej obsªugi wspóªbie»no±ci oraz wyja±nij, jak jej u»ywa (sªowa kluczowe, funkcje). Podpowied¹: fork() w j zyku C; CreateThread(), WaitForMultipleObjects() itd. w WinAPI. 9. Podaj przykªad obiektowej obsªugi wspóªbie»no±ci oraz wyja±nij, jak jej u»ywa (sªowa kluczowe, metody). Podpowied¹: klasa Thread oraz interfejs Runnable w j zyku Java. 10. Sekcje krytyczne, muteksy i semafory omów te poj cia i podaj przykªady zastosowa«. 8 Podstawowe cechy i mo»liwo±ci j zyk Prolog 1. Podaj rok powstania i twórc j zyka Prolog. 2. Jakiego rodzaju j zykiem jest j zyk Prolog? 3. Jakie s elementy j zyka Prolog? (Z czego skªada si j zyk Prolog?) 4. Jaki paradygmat programowania wspiera Prolog? Na czym ten paradygmat polega? 5. Co to jest term? Jaki jest podziaª termów? 6. (opcjonalnie) Do czego sªu»y funktor? 7. Co to jest predykat? Z czego si skªada? 8. Co to jest staªa? Jak j zadeklarowa? 9. Co to jest zmienna? Co to jest zmienna anonimowa? Jak je zadeklarowa? 10. Jak deniowana jest lista? Z czego si skªada? Co to jest gªowa, a co to jest ogon? 11. (opcjonalnie) Jakie operatory wyst puj w j zyku Prolog? 12. Jakie s obszary zastosowa«j zyka Prolog? 13. Podaj fragment kodu lub zademonstruj dziaªanie j zyka na prostym przykªadzie. 4 z 10

9 Podstawowe cechy i mo»liwo±ci j zyk Scala 1. Podaj rok powstania i twórc j zyka Scala. 2. Do czego kompilowany jest kod j zyka Scala? 3. Jak w j zyku Scala zadeklarowa staª i zmienn? 4. Jak w j zyku Scala stworzy funkcj? 5. Jak w j zyku Scala stworzy klas, a jak singleton? Co to jest singleton? 6. (opcjonalnie) Dla porównania przykªad deklarowania singletona w innym popularnym j zyku programowania. 7. Co zwróci funkcja w przypadku nie umieszczenia sªowa kluczowego return wynik na jej ko«cu? 8. Co to jest silna i sªaba typizacja? Jak z nich cechuje si j zyk Scala? 9. Co to jest statyczna i dynamiczna typizacja? Jak z nich cechuje si j zyk Scala? 10. Co to jest inferencja typów? Podaj przykªad w j zyku Scala. 11. Co to jest funkcja anonimowa? Podaj przykªad w j zyku Scala? 12. Podaj fragment kodu lub zademonstruj dziaªanie j zyka na prostym przykªadzie. 10 Podstawowe cechy i mo»liwo±ci j zyk Smalltalk 1. Podaj rok powstania i twórc j zyka Smalltalk. 2. Co to jest statyczna i dynamiczna typizacja? Jak z nich cechuje si j zyk Smalltalk? 3. Co to jest silna i sªaba typizacja? Jak z nich cechuje si j zyk Smalltalk? 4. Co to jest Garbage Collector? 5. Z czego korzysta program w j zyku Smalltalk w trakcie dziaªania? 6. Co to jest reeksyjno±? 7. Jakie innowacje dla ±wiata wprowadzono wraz z j zykiem Smalltalk? 8. Omów rodzaje komunikatów (ang. messages): unarne, binarne, zªo»one. Co to jest kaskada komunikatów? Jaki komunikaty maj priorytet i kierunek ewaluacji? Jakie problemy z tego wynikaj? 9. Podaj fragment kodu lub zademonstruj dziaªanie j zyka na prostym przykªadzie. 11 Rachunek lambda 1. Podaj rok powstania oraz twórc rachunku lambda. 2. U podstaw jakiego programowania le»y rachunek lambda? 3. Podaj przykªad j zyka speªniaj cego paradygmat programowania funkcyjnego. (opcjonalnie) Podaj fragment kodu w tym j zyku. 4. Jaki jest cel stosowania j zyków funkcyjnych? 5 z 10

5. Co w sposobie dziaªania na±laduj j zyki funkcyjne? 6. Co to jest term? 7. Co to jest aplikacja? 8. Co to jest λ-abstrakcja? 9. Czym s α-konwersja i β-redukcja? 10. Omów zmienne wolne i zwi zane. 11. Omów konwencj Barendregta. 12. Omów numeraªy Churcha. 13. (opcjonalnie) Jak wygl daj wyra»enia lambda w wybranym (niefunkcyjnym) j zyku programowania? (np. Java, C#, C++) 12 Idea dziaªania platformy.net 1. Podaj rok powstania oraz twórc platformy.net. 2. Co to jest.net? Jakie s jej gªówne cechy? Dlaczego opracowano tak platform? 3. Omów poszczególne komponenty: i. CLI (ang. Common Language Infrastructure), ii. CIL (ang. Common Intermediate Language), iii. CLR (ang. Common Language Runtime), iv. CLS (ang. Common Language Specication), v. CTS (ang. Common Type System). 4. Wymie«kilka przykªadowych j zyków dost pnych na platformie.net. 5. Jakie ±rodowisko programistyczne jest powi zane z platform.net? 6. Jakie jest zarz dzanie pami ci? 7. Z czego korzystaj gotowe programy? 8. Co to jest kompilacja JIT? (ang. just-in-time) 13 Charakterystyka j zyka wirtualnej maszyny Javy (kodu bajtowego) 1. Podaj rok powstania i twórc j zyka Java. 2. Co to jest kompilacja JIT? (ang. just-in-time) 3. Co wchodzi w skªad JVM (ang. Java Virtual Machine)? 4. Omów kod bajtowy co to jest, sk d si wzi ªa nazwa? 5. Dlaczego wprowadzono maszyn wirtualn? 6. Omów JRE (ang. Java Runtime Environment). 7. Podaj przykªady j zyków korzystaj cych z JVM. 6 z 10

14 Obsªuga wyj tków w ró»nych j zykach programowania 1. Co to jest wyj tek? 2. Po co wprowadzono do programowania mechanizm wyj tków? 3. Podaj przykªady z ró»nych j zyków programowania. Podpowied¹: try-catch (Java, C++, C#, JavaScript), try-except (Python, Pascal). 4. Co to s wyj tki wbudowane? Podaj przykªad. 5. Co to znaczy rzuci wªasny wyj tek? 6. Jak rzuci wªasny wyj tek? 7. Jak funkcj peªni blok nally? 8. Blok nally a instrukcja return w j zyku Java. 15 Wyra»enia regularne i ich przykªadowe zastosowania 1. Czym s wyra»enia regularne i do czego sªu»? 2. Co opisuj wyra»enia regularne? 3. W jakich j zykach s dost pne? 4. Omów kwantykatory. 5. Omów grupy. 6. Co to oznacza,»e wyra»enia regularne s leniwe lub zachªanne? Jak uzyska ka»d z tych cech? 7. Podaj przykªady wykorzystania wyra»e«regularnych w wybranych j zykach programowania (np. String w j zyku Java). 16 Listy i operacje na nich (najlepiej prezentacja z animacj ) 1. Omów listy jednokierunkow i dwukierunkow. 2. Omów listy cykliczne. 3. Kiedy w listach stosujemy wartownika i dlaczego? 4. Z czego skªadaj si poszczególne elementy znajduj ce si na li±cie? 5. Czym jest ogon? Czym jest gªowa? 6. Jak wygl da dodanie elementu do listy? 7. Jak wygl da usuni cie elementu z listy? 8. Jak wygl da wyszukiwanie elementu? 9. Jak zªo»ono± obliczeniow maj powy»sze operacje? 10. Listy s statycznymi czy dynamicznymi strukturami danych i dlaczego? 11. (opcjonalnie) Jakie s ró»nice mi dzy list a tablic? 12. (opcjonalnie) Przedstaw implementacj listy z podstawowymi operacjami w dowolnym j zyku programowania lub pseudokodzie. 7 z 10

17 Funkcje preprocesora dla j zyków programowania (C/C++,...) 1. Co to jest preprocesor? 2. Kiedy s wykonywane operacje preprocesora? 3. Jakie jest zastosowanie preprocesora oraz funkcjonalno±ci, które zapewnia? 4. Omów dyrektywy j zyka C/C++: i. #pragma, #pragma once, ii. #dene, #undef, iii. #include vs #import iv. #ifdef, #else, #elif, #endif v. #error 5. Podaj kilka przykªadów makr predeniowanych. 6. Czym si ró»ni funkcje z parametrami od makr? 7. Czym si ró»ni staªe (const) od makr bezparametrowych (symboli) #dene? 8. W jakich innych j zykach wyst puj dyrektywy preprocesora? 9. Na co nale»y uwa»a przy u»ywaniu makr preprocesora? 18 Metody przekazywania zmiennej liczby parametrów do podprogramów 1. Czym si ró»ni funkcja od procedury? 2. Podaj po jednym przykªadzie funkcji i procedury (jakie zadania mog realizowa )? 3. Czym s parametry formalne? 4. Czym s parametry aktualne? 5. Omów metody przekazywania zmiennej liczby parametrów w wybranych j zykach: i. C++: biblioteka cstdarg/stdarg; va_list; ii. C#: params; iii. Java: typdanych... args; iv. Python: def foo(pierwszy, drugi, *reszta); def bar(pierwszy, drugi, **opcje); v. przykªady w innych j zykach programowania mile widziane 6. Podaj krótki przykªad dla ka»dego z omówionych j zyków. 7. Jaka jest minimalna liczba argumentów, któr trzeba poda podczas wywoªania? Podaj dla ka»dego z omówionych j zyków. 8. Jakie jest zastosowanie takich funkcji? 8 z 10

19 Przeci»anie funkcji a domy±lne warto±ci parametrów w ró»- nych j zykach programowania 1. (opcjonalnie) Wymie«i scharakteryzuj metody przekazywania parametrów do podprogramów. 2. Czym s parametry formalne? 3. Czym s parametry aktualne? 4. Co to jest przeci»anie (przeªadowanie) funkcji? 5. Podaj kilka przykªadów j zyków umo»liwiaj cych przeci»anie funkcji i takich, które nie posiadaj takiej funkcjonalno±ci. 6. Jakie warunki musz by speªnione, aby byªo mo»liwe przeci»enie funkcji? 7. Podaj przykªady przeci»enia funkcji w ró»nych j zykach programowania. 8. Czym s domy±lne warto±ci parametrów w funkcji? 9. W jakich j zykach mo»na u»ywa domy±lnych warto±ci parametrów, a w których nie jest to mo»- liwe? 10. Jakie warunki musz by speªnione, aby byªo mo»liwe ustawienie domy±lnych warto±ci parametrów w funkcji? 11. Podaj przykªady funkcji z domy±lnymi warto±ciami parametrów w ró»nych j zykach programowania. 12. Porównaj obie techniki. 13. Jakie jest zastosowanie wymienionych technik? 14. Na co nale»y uwa»a przy ich stosowaniu? 20 Funkcje czyste; ±cisªe, nie±cisªe i leniwe warto±ciowanie, funkcje wy»szego rz du 1. Czym s efekty uboczne (w programowaniu)? 2. Podaj denicj funkcji. 3. Czym si ró»ni funkcja od procedury? 4. (opcjonalnie) Podaj po jednym przykªadzie funkcji i procedury (jakie zadania mog realizowa )? 5. Podaj denicj funkcji czystej. 6. Omów warto±ciowanie: ±cisªe, nie±cisªe, leniwe. 7. Omów funkcje ±cisªe i nie±cisªe. 8. Omów funkcje leniwe. 9. Czym s funkcje wy»szego rz du? 10. Podaj przykªad funkcji wy»szego rz du. 11. Omów paradygmat programowania funkcyjnego. 9 z 10

12. Podaj przykªad j zyka speªniaj cego paradygmat programowania funkcyjnego, najlepiej z fragmentem kodu. 13. (opcjonalnie) Jakie jest zastosowanie j zyków funkcyjnych? 14. (opcjonalnie) Co w sposobie dziaªania na±laduj j zyki funkcyjne? 15. Czym ró»ni si programowanie funkcyjne od programowania imperatywnego? 16. Jakie s zalety i wady programowania funkcyjnego? 21 Wieloparadygmatowy j zyk Python 1. Podaj rok powstania i twórc j zyka Python. 2. Jakie paradygmaty wspiera Python? 3. Wymie«i omów cechy charakterystyczne j zyka Python. 4. Jakie typowanie ma Python i co to oznacza? 5. W jaki sposób wyró»niane s grupy instrukcji? 6. Jak reprezentowany jest faªsz logiczny? 7. Omów budow klasy w j zyku Python. 8. Podaj fragment kodu lub zademonstruj dziaªanie j zyka na prostym przykªadzie. 22 J zyki dziedzinowe w przykªadach 1. Zdeniuj j zyk dziedzinowy (DSL, ang. Domain-specic language). 2. Podaj kilka przykªadów takiego j zyka i napisz, z jakiej s dziedziny (do czego sªu» ). 3. Jakie cechy ma j zyk dziedzinowy? 4. Podaj podziaª j zyków dziedzinowych. 5. Jakie s zalety i wady j zyków dziedzinowych? 6. Podaj fragment kodu w dowolnym j zyku dziedzinowym lub zademonstruj dziaªanie wybranego j zyka na prostym przykªadzie. 23 Programowanie równolegªe 1. Programowanie równolegªe a wspóªbie»ne omów podobie«stwa i ró»nice. 2. Omów taksonomi Flynna. 3. Omów prawo Amdahla. 4. Omów modele MPI (ang. Message Passing Interface) oraz OpenMP (ang. Open Multi-Processing). 5. (opcjonalnie) Programowanie kart gracznych podaj zalety i wady. Jakie s ró»nice w stosunku do zwykªego programowania równolegªego? 6. (opcjonalnie) Omów metody automatycznego zrównoleglania programów. Podpowied¹: S2P, Par4All, Cetus, PLUTO, Polaris compiler, Intel C++ Compiler. 10 z 10