Paweł Tarasiuk, 151021 Politechnika Łódzka FTIMS, Informatyka

Transkrypt

Paweł Tarasiuk, 151021 Politechnika Łódzka FTIMS, Informatyka
Paweł Tarasiuk, 151021
Politechnika Łódzka
FTIMS, Informatyka, rok I. gr. 2
Zadanie 5.: Maemo.
Zgodnie z dokumentacją przygotowaną przez twórców maemo, dostępną pod adresem
(http://maemo.org/development/documentation/) oraz przykładami zawartymi w dokumentacji na
stronie bądź dołączonymi do dystrybucji maemosdk, przygotowany został program na platformę
maemo. Wykorzystane zostały narzędzia maemosdk „DIABLO” w wersji opartej na dystrybucji
Ubuntu Hardy w wersji Desktop, pobranej z oficjalnej strony projektu maemo
(http://maemo.org/development/sdks/maemo_4-1-2_diablo/).
W celu przygotowania struktury programu opartego o narzędzia autotools wykorzystany
został przykład HelloWorld w C++, dostępny przy tworzeniu projektu w środowisku ESBox.
Struktura projektu została uzupełniona między innymi o plik .desktop i regułę do umieszczania go
w odpowiedniej lokacji (w celu umożliwienia prostego uruchamiania go z poziomu maemo) oraz
.service (który zostaje odpowiednio przygotowany przez narzędzia autotools, zależnie od lokacji w
której program zostanie zainstalowany) – pomocny był opis zawarty na stronie
http://raphael.slinckx.net/blog/documents/dbus-tutorial.
Program stanowi środowisko programistyczne dla języka BrainF*ck. Jego interfejs oparty
jest o bibliotekę Gtk, oraz wykorzystuje kontrolki z bibliotek Hildon tam, gdzie skutkuje to
ułatwieniami w korzystaniu z aplikacji pod platformą maemo. Program umożliwia wygodną edycję
kodu w języki BrainF*ck, oraz różne tryby jego uruchamiania, dzięki którym łatwo analizować
działanie napisanego programu. W zasadzie jednak należy to traktować jako zabawkę, gdyż
BrainF*ck jest językiem ezoterycznym, znacznie utrudniającym tworzenie programów użytkowych.
Odpowiednia edycja narzędzi autotools polegała na uzupełnieniu zależności (chociażby o
bibliotekę hildon-fmmm, z której wykorzystywana jest kontrolka Hildon::FileChooserDialog), oraz
tworzeniu i instalacji pliku .service. Stworzone zostały także reguły do tworzenia pakietu .deb
(katalog „debian”). Odpowiednie wartości zostały ustawione za pomocą narzędzia „dh_make”.
Pakiet debiana został stworzony za pomocą polecenia „dpkg-buildpackage -rfakeroot”.
Ponadto za pomocą wywołania „make dist” przygotowana została źródłowa dystrybucja
stworzonego programu.
Proponowane pytania na do pracy:
1. Omówić interfejs graficzny programu i wyjaśnić wybór wybkorzystanych kontenerów Gtk.
2. Zademonstrować działanie programu, tworząc i uruchamiając pewien kod w języku
Brainf*ck. Przedstawić przygotowaną funkcjonalność i wyjaśnić, w jaki sposób została ona
zaimplementowana.
3. Jakie możliwości języka C++ oraz specyficzne dla tego języka bibioteki zostały
wykorzystane przy tworzeniu programu? Jakie szablony z bioblioteki STL zostały
wykorzystane i dlaczego?
4. W jakich okolicznościach zostały wykorzystane kontrolki z biblioteki Hildon? Jaka jest ich
przewaga nad standardowymi kontrolkami z Gtk?
5. W jaki sposób interpretator jest zabezpieczony przed niebezpiecznym kodem w języku
Brainf*ck, który może wprowadzać użytkownik (nieskończone pętle, alokacja dużej ilości
pamięci)?

Podobne dokumenty