Zagadnienia do referowania: 1. gramatyki i języki formalne, notacja

Transkrypt

Zagadnienia do referowania: 1. gramatyki i języki formalne, notacja
Zagadnienia do referowania:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
gramatyki i języki formalne, notacja BNF, diagramy syntaktyczne
zasada działania kompilatora/interpretera
przeciążanie operatorów na potrzeby działania na obiektach
zasady programowania opartego na zdarzeniach
metody wnioskowania – w przód i wstecz
programowanie strukturalne i strukturalizacja programów
realizacja współbieżności proceduralna i obiektowa
podstawowe cechy i możliwości język Prolog
podstawowe cechy i możliwości język Scala
podstawowe cechy i możliwości język Smalltalk
rachunek lambda
idea działania platformy .NET
charakterystyka języka wirtualnej maszyny Javy (kodu bajtowego)
obsługa wyjątków w różnych językach programowania
wyrażenia regularne i ich przykładowe zastosowania
listy i operacje (najlepiej prezentacja z animacją)
funkcje preprocesora dla języków programowania (C/C++,…)
metody przekazywania zmiennej liczby parametrów do podprogramów
Zagadnienia do oprogramowania:
1. kompilator/interpreter prostego języka programowania
2. konwersja wyrażeń arytmetycznych między postaciami: infiksową – prefiksową – postfiksową
3. konwerter liczb całkowitych i rzeczywistych (zapis zmiennopozycyjny) na i z postaci binarnej z
implementacją podstawowych operacji
4. realizacja stosu i kolejki na listach ze wskaźnikami z własnym menedżerem sterty
5. tablica z haszowaniem do wyszukiwania danych
6. iteracyjna i rekurencyjna implementacja wybranych algorytmów (liczby Fibonacciego, quicksort,
wieże Hanoi) – porównanie czasów działania
7. program z podprogramami i bez, z przekazywaniem parametrów przez wartość i referencję –
porównanie czasów działania
8. metody wnioskowania za pomocą podejścia imperatywnego
9. program obiektowy i proceduralny – porównanie czasów działania
10. porównanie czasów działania sortowania przez wybór w wersji sekwencyjnej, z podziałem na
połówki w realizacji sekwencyjnej i w realizacji współbieżnej (być może ze zrównolegleniem łączenia
z sortowaniem)
11. programowanie deklaratywne – przykłady zastosowań
12. optymalizacja kodu źródłowego – porównanie czasów działania
13. różne aspekty użycia obsługi wyjątków
14. implementacja automatu ze stosem dla prostych gramatyk
15. implementacja maszyny Turinga
16. implementacja współbieżna wybranych problemów (5 filozofów, producent konsument itp.)