31 SmalltalkX.DOC

(218 KB) Pobierz









Rozdział 31.
Smalltalk/X









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.

Co to jest Smalltalk/X

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.

Instalacja Smalltalk/X

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.Z
doc.tar.Z
exe.tar.Z
goodies.tar.Z
source.tar.Z

3.                                       rozpakuj skopiowane pliki wydając kolejno polecenia:

 

uncompress *.Z
tar –xf bitmaps.tar
tar –xf doc.tar
tar –xf exe.tar
tar –xf goodies.tar
tar –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.

Uruchamianie systemu Smalltalk/X

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

Środowisko Smalltalk/X

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

Element

Opis

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.

Przeglądarki (Browsers)

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.

Przeglądarka systemowa (System Browser)

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

Element

Opis

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

Element

Opis

FileOut

...

Zgłoś jeśli naruszono regulamin