E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\31.DOC 517
Rozdzia³ 31. ¨ Smalltalk/X 517
Rick McMullin
W tym rozdziale:
u Co to jest Smalltalk/X
u Instalacja Smalltalk/X
u Uruchamianie systemu Smalltalk/X
u Środowisko Smalltalk/X
u Przeglądarki
u Edycja w przeglądarce obiektów
u Inspector
u Debugger
W tym rozdziale opiszemy aplikację Smalltalk/X, która jest kompletną implementacją środowiska programistycznego Smalltalk-80. Jeśli używałeś kiedyś jakiejś innej wersji języka Smalltalk, będziesz zaskoczony tym, jak wiele może Ci zaoferować jego darmowa wersja. Po przeczytaniu tego rozdziału będziesz orientował się w możliwościach Smalltalk/X, będziesz również potrafił pracować z interfejsem udostępnianym przez to środowisko.
Zanim powiemy, co to jest Smalltalk/X, warto może opisać w kilku zdaniach sam język Smalltalk. Smalltalk to obiektowy język programowania, powstały we wczesnych latach siedemdziesiątych. Nie był to pierwszy język obiektowy, ale był pierwszym, który stał się powszechnie używany w przemyśle.
Język ten jest popularny dopiero od kilku lat. Wykładany jest na wielu uczelniach technicznych, używany w niejednej firmie ze względu na łatwość i szybkość projektowania programów.
Smalltalk/X opracowany został przez Clausa Gittingera. Pierwsza wersja tego systemu ujrzała światło dzienne w roku 1988. Dziś jest to kompletne środowisko programistyczne, zawierające takie, narzędzia jak przeglądarki klas i potężny debugger. Bardzo przydatna bywa możliwość przetłumaczenia programu w języku Smalltalk na C. Dzięki temu można osiągnąć większą szybkość działania programów.
Smalltalk/X nie jest instalowany automatycznie przez program instalacyjny, ale znajduje się na dołączonym do tej książki dysku CD-ROM. Jego pliki znajdziesz w katalogu devel/smalltalkx. Aby go zainstalować, zaloguj się jako root, a następnie:
1. utwórz katalog /usr/local/lib/smalltalk;
2. skopiuj do utworzonego katalogu następujące pliki:
bitmaps.tar.Zdoc.tar.Zexe.tar.Zgoodies.tar.Zsource.tar.Z
3. rozpakuj skopiowane pliki wydając kolejno polecenia:
uncompress *.Ztar –xf bitmaps.tartar –xf doc.tartar –xf exe.tartar –xf goodies.tartar –xf source.tar
4. usuń niepotrzebne już pliki .tar:
rm *.tar
Smalltalk/X powinien być gotowy do uruchomienia. Jeśli nie masz prawa zapisu do katalogu /usr/local/lib, możesz zainstalować go gdzieś indziej, ale wówczas musisz odpowiednio zmodyfikować wartość zmiennej SMALLTALK_LIBDIR.
Aby uruchomić system Smalltalk/X (ST/X), wystarczy w oknie Xterm wydać polecenie
smalltalk
Po uruchomieniu, ST/X ładuje plik konfiguracyjny, nazywany plikiem obrazu. Jeśli go nie znajdzie, na podstawie danych zapisanych w pliku smalltalk.rc ustawia domyślny wygląd środowiska. Domyślnie ładowany jest plik o nazwie st.img, zawierający informacje o stanie środowiska w chwili, gdy zostało ono ostatnio zamknięte. Można również użyć pliku o innej nazwie, podając ją po opcji –i:
smalltalk –i nazwapliku.img
Po uruchomieniu ST/X pojawiają się dwa okna (nazywane również widokami): Transcript oraz Launcher. Rysunek 31.1 przedstawia okno Transcript.
Rysunek 31.1.
Okno Transcript
Okno Transcript pełni funkcję konsoli, do której kierowane są informacje systemowe. Okno Launcher przedstawione jest na rysunku 31.2.
Rysunek 31.2.
Okno Launcher
Okno Launcher zawiera menu pozwalające na szybkie uruchomienie wszystkich dostępnych w systemie ST/X narzędzi. Elementy tego menu opisane są skrótowo w tabeli 31.1.
Tabela 31.1. Elementy menu Launcher
Element
Opis
Browsers
Uruchamia podmenu dające dostęp do różnego rodzaju przeglądarek obiektów.
Workspace
Wywołuje widok obszaru roboczego.
FileBrowser
Pozwala manipulować plikami i katalogami.
cd. na następnej stronie
Tabela 31.1. cd. Elementy menu Launcher
Projects
Pozwala na utworzenie nowego lub załadowanie istniejącego projektu.
Utilities
Pozwala na uruchomienie narzędzi programistycznych.
Goodies
Udostępnia narzędzia nie związane bezpośrednio z programowaniem.
Games & Demos
Pozwala na uruchomienie kilku przykładowych programów i gier.
Info & Help
Zawiera opis środowiska i języka programowania.
Snapshot
Powoduje utworzenie pliku konfiguracyjnego i zapisanie go pod podaną przez użytkownika nazwą.
Exit
Kończy pracę środowiska ST/X.
Poniżej opiszemy nieco dokładniej poszczególne elementy menu Launcher.
Podmenu Browsers daje użytkownikowi dostęp do przeglądarek i edytorów, pozwalających poruszać się w hierarchii klas, oglądać kod źródłowy metod itd. W podmenu tym dostępne są następujące opcje:
u przeglądarka systemowa (System Browser)
u przeglądarka hierarchii klas (Class Hierarchy Browser)
u klasy implementujące daną metodę (Implementors)
u klasy wysyłające dany komunikat (Senders)
u przeglądarka wprowadzonych zmian (Changes Browser)
u przeglądarka katalogów (Directory Browser)
Każdą z tych opcji omówimy dokładniej.
Okno przeglądarki systemowej przedstawione jest na rysunku 31.3.
Zawiera ono pięć podwidoków:
u Lista kategorii klas
u Lista klas
Rysunek 31.3.
Okno System Browser
u Lista kategorii metod
u Lista metod
u Przeglądarka kodu źródłowego
W systemie ST/X klasy podzielone są na kategorie. Kategoria to po prostu jeden z atrybutów każdej klasy, dzięki którym można łączyć je w logiczne grupy, co znacznie ułatwia zarządzanie nimi. Aby wybrać kategorię klas, wybierz jej nazwę z listy znajdującej się z lewej strony górnej części okna. Spowoduje to wyświetlenie w podwidoku listy klas wszystkich klas należących do danej kategorii. Możesz również wybrać wszystkie kategorie (*all*), wtedy w podwidoku listy klas wyświetlone zostaną wszystkie klasy uporządkowane alfabetycznie, lub widok hierarchiczny (*hierarchy*), co spowoduje wyświetlenie klas w formie drzewa obrazującego dziedziczenie.
Po wybraniu klasy z listy klas, w następnym podwidoku wyświetlone zostaną wszystkie kategorie metod należących do tej klasy. Podobnie jak w przypadku kategorii klas, kategorie metod używane są do logicznego grupowania metod w zależności od spełnianych przez nie funkcji. Po wybraniu kategorii, w następnej części okna wyświetlone zostaną wszystkie metody należące do danej kategorii. W końcu po wybraniu którejś z metod, w dolnej części okna wyświetlony zostanie jej kod źródłowy.
W każdym z podwidoków dostępne jest również menu podręczne wywoływane środkowym klawiszem myszki. Menu dostępne w podwidoku kategorii klas przedstawione jest na rysunku 31.4 i opisane w tabeli 31.2.
Rysunek 31.4.
Menu dostępne w podwidoku listy kategorii klas
Tabela 31.2. Elementy menu podręcznego dostępnego w podwidoku listy kategorii klas
FileOut
Zapisuje wszystkie klasy bieżącej kategorii do jednego pliku źródłowego o nazwie postaci kategoriaKlas.st.
fileOut each
Zapisuje wszystkie klasy, umieszczając każdą z nich w osobnym pliku o nazwie nazwaKlasy.st.
PrintOut
Drukuje kod źródłowy klasy, włącznie z implementacją metod.
printOut protocol
Drukuje specyfikację protokołu klasy, z pominięciem implementacji metod.
Spawn
Uruchamia na aktualnie wybranej kategorii przeglądarkę klas bez listy kategorii.
spawn class
Uruchamia pełną przeglądarkę klas, która pozwala edytować cały kod klasy w jednym oknie.
update
Ponownie odczytuje wszystkie dane o klasach.
find class
Uruchamia okno dialogowe, w którym można wpisać nazwę klasy, która ma być przeglądana.
rename
Pozwala zmienić nazwę kategorii klas.
remove
Usuwa kategorię wraz ze wszystkimi należącymi do niej klasami.
Menu podręczne dostępne w podwidoku listy klas pokazane jest na rysunku 31.5 i opisane w tabeli 31.3.
Rysunek 31.5.
Menu podręczne dostępne w podwidoku listy klas
Tabela 31.3. Elementy menu podręcznego dostępnego w podwidoku listy klas
...
osyrius