Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
oop-VisualWorks.pdf
Скачиваний:
28
Добавлен:
13.02.2015
Размер:
1.23 Mб
Скачать

Литература

1.Draft American National Standard for Information Systems — Programming Languages — Smalltalk. — Revision 1.9. — NCITS, 1997.

2.Goldberg A., Robson D. Smalltalk-80: The Language and its Implementation.

Reading, MA: Addison-Wesley, 1983.

3.Goldberg A., Robson D. Smalltalk-80: The Language. — Reading, MA: Addison-Wesley, 1989.

4.Hopkins T., Horan B. Smalltalk: An introduction to application development using VisualWorks. — Prentice-Hall, 1995.

5.Lalonde W., Pugh J. Smalltalk/V: Practice and Experience. — Prentice Hall, 1994.

6.Lewis S. The Art and Science of Smalltalk. — Prentice Hall, 1995.

7.Linderman M. Developing Visual Programming Applicftions Using Smalltalk.

New York: SIGS Books, 1996.

8.Sharp A. Smalltalk by Example. The developer’s guide. — McGraw-Hill, 1997.

9.VisualWorks: Application Developer’s GuideVisual.— Cincom, 2005.

10.VisualWorks: Source Code Management Guide.— Cincom, 2003.

11.VisualWorks: Taming Name Spaces. — Cincom, 2000 – 2001.

12.VisualWorks: Walk Through. — Cincom, 2000 – 2005.

13.Бадд Т.Объектно-ориентированное программирование в действии. — СПб.: Питер, 1997.

14.Буч Г. Объектно-ориентированное проектирование с примерами применения. — М.: Конкорд, 1992.

15.Кирютенко Ю. А., Савельев В. А. Объектно-ориентированное программирование. Язык Smalltalk. — М.: «Вузовская книга», 2007.

16.Смолток. Объектно-ориентированная система программирования. Руководство пользователя, часть 1, 2, 3. — М.: Ин-т проблем информатики РАН, 1995.

Список иллюстраций

1.1 Двойная иерархия класс/метакласс . . . . . . . . . . . . .

9

2.1Окна, возникающие при первом запуске VisualWorks. . . . 36

2.2Окно установки параметров среды. . . . . . . . . . . . . . 38

2.3Простой способ вывода строки Hello, World!. . . . . . . . . 40

2.4Окно системного браузера. . . . . . . . . . . . . . . . . . . 41

2.5Окно браузера для пакета HelloWorld. . . . . . . . . . . . . 42

2.6Вывод строки Hello, World! в диалоговом окне. . . . . . . . 43

2.7Команда File In. . . в браузере файлов. . . . . . . . . . . . . 45

2.8Окно администратора парселов. . . . . . . . . . . . . . . . 46

2.9Стартовое окно инструмента Runtime Packager. . . . . . . 47

5.1Рабочее окно системы VisualWorks. . . . . . . . . . . . . . 67

5.2Установка путей поиска парселов. . . . . . . . . . . . . . . 71

5.3Окно браузера файлов. . . . . . . . . . . . . . . . . . . . . 74

5.4Окно инспектора на скомпилированном методе. . . . . . . 75

5.5Окно инспектора на наборе. . . . . . . . . . . . . . . . . . 76

6.1Окно браузера для работы с пакетами и связками. . . . . 82

6.2Редактор определения связки пакетов. . . . . . . . . . . . 85

6.3Окно браузера для работы с парселами. . . . . . . . . . . . 86

6.4Диалоговое окно определения пространства имён. . . . . . 89

6.5Диалоговое окно определения класса. Страница Basic. . . 92

6.6Диалоговое окно определения класса.Страница Advanced. 93

6.7Определение категории переменных класса. . . . . . . . . 98

6.8Окно определения переменной в пространстве имён. . . . 99

6.9Определение метода в браузере системы. . . . . . . . . . . 102

7.1Окно отладчика VisualWorks. . . . . . . . . . . . . . . . . . 107

7.2Вставка контрольной точки. . . . . . . . . . . . . . . . . . 116

СПИСОК ИЛЛЮСТРАЦИЙ

155

7.3 Вставка точки отслеживания за переменной. . . . . . . . . 116 7.4 Диалоговое окно Expression Watch Probe. . . . . . . . . . . 118 7.5 Вставка контрольной точки с условием. . . . . . . . . . . . 119 7.6 Вставка временной контрольной точки в отладчике. . . . . 126

Предметный указатель

блок, 24 без переменных, 25

соператором ^, 24

спеременными, 25 блок обработки, 130 блок зачистки, 139 браузер

файлов, 44 пакета, 41

браузер системы, 40, 78 панель иерархии, 79

панель исходного текста, 81 панель категорий методов, 80 панель категорий переменных,

80 панель классов и пространств

имён, 79 панель методов, 81

панель методов и переменных, 80

панель пакетов, 79, 82 панель парселов, 79

панель разделяемых переменных, 80

двигатель объектов, 35 экземпляр класса, 7 файл

исходного кода, 44 изменений, 44 образа среды, 36, 43

срасширением к *.st, 73

срасширением .st, 44, 63 страницы рабочего окна, 70 установок параметров, 39

файл парсела

срасширением .pcl, 63

срасширением .pst, 63

срасширерием .pcl, 70

срасширерием .pst, 70 формат

Chunk Format, 39 XML Format, 39

иерархия классов, 8

метаклассов, 8 импорт, 55

частным образом, 55, 58 конкретного связывания, 56 общий, 55 переменной класса, 58

публичным образом, 55, 57 частным образом, 55

имя

класса, 7, 41 переменной, 25

инкапсуляция, 6 инспектор, 74

для наборов, 75

панель Evaluator Pane, 76 инструмент

Process Monitor, 114

Runtime Packager, 45, 141, 143 RuntimePackager, 45

интерфейс объекта, 6 исключение, 128

невозобновляемое, 135 обработчик, 129 создание, 132

возобновляемое, 135 каталог инсталляции, 39 категория

методов, 42, 80 класс, 7

СlassDescription, 9 абстрактный, 22 базовый, 8 конкретный, 22 определение, 41, 91

через окно, 91 через шаблон, 94

переключатель Private, 93 страница Advanced, 93 страница Basic, 91

перемещение, 88 тип, 95

Error, 128 ExceptionSet, 131 Exception, 128, 131 GenericException, 128 Notification, 128, 131 Signal, 128

Array, 20 Association, 21 Behavior, 9 BindingReference, 52 BlockClosure, 24 Boolean, 30 ByteArray, 20 ByteString, 21 Character, 12

Class, 810

Collection, 22 Date, 59 DwordArray, 21 False, 30 FixedPoint, 15

Float, 15, 22

Fraction, 15 GeneralBindingReference, 52 Integer, 15 LiteralBindingReference, 52 Magnitude, 22

MetaClass, 10

Metaclass, 8, 9 Metaclass class, 9 Number, 15

Object, 8, 9, 22

Object class, 10 Point, 22

Set, 22

String, 13 Symbol, 14, 20 TextCollector, 37

Time, 28

True, 30 UndefinedObject, 22, 30 VariableBinding, 52 Window, 22 WordArray, 21

клавиши

Control+\, 114

Control+y, 114 ключевое слово, 14, 22 кнопка мыши

Operate, 38

Select, 38

Window, 38 команда

Debug it, 68 Do it, 68

File In. . . , 73

File Out As. . . , 62 Inspect it, 68 Print it, 68

Step, 69

Class/Variable/Name Space, 79 Move, 83

New View, 82 Step into, 69

команда меню

Parcel Manager, 45

Runtime Packager, 45 Workspace, 39 Accept, 42

Condense Changes, 44 Do It. . . , 39

157

File Browser, 44 File In. . . , 44

File Out As. . . , 39, 44 Launcher Help, 37

New Package. . . , 41 Save Image, 43

Save Image As. . . , 43

Set VisualWorks Home. . . , 39 Settings, 37

System, 40 командa

File In. . . , 65

File Out As. . . , 65 комментарий метода, 29 константы

числовые, 15 символьные, 12

метакласс, 8, 9 метод, 6, 10

экземпляра, 102 имя, 10 класса, 102

определение, 42, 102 поиск, 80 примитивный, 32

наследование, 7 одиночное, 8

объект, 5 литеральный, 11

неизменяемый, 100 получатель, 6 возвращаемый, 6

образ поставки приложения, 141

окно

отладки, 106, 108 рабочее, 35, 67 стартовое, 35, 37 установок, 37

Debugger, 106

Watchpoint, 115

Walkback, 106 окно отладки

инспектор стека, 110

меню Correct, 113 меню Execute, 112 меню Method, 112 меню Stack, 111

панель стека вызовов, 108 текстовая панель, 108

окно уведомлений, 106 кнопка Debug, 107 кнопка Proceed, 107 кнопка Terminate, 107

оператор возврата объекта, 11

возврата значения, 104 в блоке, 24

присваивания, 28 описание переменной, 28 ошибка

синтаксическая, 103 пакет, 40, 62

определение, 41, 83 удаление, 84

none, 62 none, 83

панель Transcript, 37

Transcript, 39 парсел, 45, 62, 63, 70

***Unparcelled***, 87 частичная загрузка, 64 определение, 87 просмотр, 73 пути поиска, 71 сохранение, 88 выгрузка, 64, 72 загрузка, 64, 72

переменная, 7, 25 аргументная, 26, 29 блока, 26 блока,временная, 28 частная, 27 экземпляра, 26 глобальная, 26 именованная, 27 индексированная, 27

158

класса, 26 определение, 97

класса, экземплярная, 26, 27 локальная, 27 метода, 28 общая, 26 рабочего окна, 69 временная, 28

подкласс, 7 поиск метода, 10, 31 полиморфизм, 8 приложение

автономное, 141 поставка, 141

файлом образа, 142, 149 комбинированная, 142 в парселах, 142, 150

приоритет сообщений, 23

пространство имён, 27, 50 определение, 88 переключатель Private, 90 перемещение, 91

TextConstants, 59

Undeclared, 88, 147 Graphics, 59 Kernel, 58

Root, 52

SAX, 55

Smalltalk, 51, 52, 57

Smalltalk.Core, 60 SymbolicPaintConstants, 59 TextConstants, 54, 56 Undeclared, 60

XML, 55 протокол

методов, 80 псевдокомментарий, 145 псевдопеременная, 26, 30

false, 30 nil, 30 self, 29, 31 super, 31 true, 30

пул, 26 переменная пула, 26

разделяемая переменная, 52, 59, 60 частная, 60, 90 общая, 60, 90 определение, 99 поиск, 79

селектор, 10 селектор сообщения, 29 словарь

системы, 7 смолтоковский образ, 36 сообщение, 6, 22

бинарное, 23 каскадное, 24 ключевое, 23 унарное, 22

создание класса, 41 среда инсталляции приложения, 141 среда исключений, 133 суперкласс, 7 связывающая ссылка, 52 связка пакетов, 40, 62

определение, 84 удаление, 86

Base VisualWorks, 63 Kerner, 63

Tools, 63

шаблон сообщения, 29 тело метода, 10 выполнение выражения, 10

выражение посылки сообщения, 10 виртуальная машина, 35, 36

Linux, 36 Windows NT, 36

временная переменная блока, 26 метода, 26

всплывающее меню операций панели, 38

защищенный блок, 130 зонд, 106, 113

контрольная точка, 106, 114 надзорное выражение, 115

159

подсветка, 121 точка отслеживания, 106, 115 удаление, 118 временный, 126 вставка, 115

File Browser, 73 Parcel Manager, 71

страница Alphabetical, 72 страница Directories, 72 страница Loaded, 72 страница Prerequisite Tree, 72 страница Suggestions, 72

Cincom, 3

Digitalk, 3

ObjectShare, 3

ObjectWorks, 3

Parcel Manager, 45

ParcPlace, 3 private, 55 public, 55

Smalltalk/V, 158

Visual Smalltalk, 5

VisualAge for Smalltalk, 5

160

Оглавление

Предисловие

 

3

1

Структура классического Смолтока

 

5

 

1.1

Основные определения и термины . .

. . . . . . .

. . . . . . . . . 5

 

1.2

Метаклассы . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . 8

 

1.3

Посылка сообщений . . . . . . . . . .

. . . . . . .

. . . . . . . . . 10

 

1.4

Определение объектов . . . . . . . . .

. . . . . . .

. . . . . . . . . 11

 

1.5

Типы сообщений и их приоритеты . .

. . . . . . .

. . . . . . . . . 22

 

1.6

Блоки . . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . 24

 

1.7

Переменные . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . 25

 

1.8

Методы и примитивные методы . . . .

. . . . . . .

. . . . . . . . . 32

 

1.9

Соглашения о форматировании кода .

. . . . . . .

. . . . . . . . . 33

 

1.10

Контрольные вопросы . . . . . . . . .

. . . . . . .

. . . . . . . . . 33

2

Прогулка по VisualWorks

 

35

 

2.1

Установка и запуск VisualWorks . . .

. . . . . . .

. . . . . . . . . 35

 

2.2

Настройка среды . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . 37

 

2.3

Разработка простого приложения . . .

. . . . . . .

. . . . . . . . . 39

 

2.4

Сохранение созданного кода . . . . . .

. . . . . . .

. . . . . . . . . 43

 

2.5

Создание автономного приложения . .

. . . . . . .

. . . . . . . . . 45

 

2.6

Выход из среды . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . 48

 

2.7

Контрольные вопросы . . . . . . . . .

. . . . . . .

. . . . . . . . . 49

3

Пространства имён

 

50

 

3.1

Особенности введения пространств имён . . . . .

. . . . . . . . . 50

 

3.2

Пространство имён и его содержимое

. . . . . . .

. . . . . . . . . 52

 

3.3

Ссылка на объекты и импорт . . . . .

. . . . . . .

. . . . . . . . . 54

 

3.4

Особенности импорта . . . . . . . . .

. . . . . . .

. . . . . . . . . 57

 

3.5

Разделяемые переменные VisualWorks 7.4.1 . . . .

. . . . . . . . . 59

 

3.6

Контрольные вопросы . . . . . . . . .

. . . . . . .

. . . . . . . . . 61

4

Пакеты и парселы

 

62

 

4.1

Пакеты и связки пакетов . . . . . . .

. . . . . . .

. . . . . . . . . 62

 

4.2

Парселы . . . . . . . . . . . . . . . . .

. . . . . . .

. . . . . . . . . 63

 

4.3

Особенности операций File Out As. . .

и File In. . .

. . . . . . . . . 65

 

4.4

Контрольные вопросы . . . . . . . . .

. . . . . . .

. . . . . . . . . 66

5

Основные инструменты

67

 

5.1

Рабочее окно . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

67

 

5.2

Администратор парселов . . . . . . . . . . . . . . . . . . . . . . . .

70

 

5.3

Браузер файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

73

 

5.4

Инспекторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

74

 

5.5

Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . .

77

6

Cистемный браузер

78

 

6.1

Панели системного браузера . . . . . . . . . . . . . . . . . . . . .

79

 

6.2

Управление пакетами . . . . . . . . . . . . . . . . . . . . . . . . . .

82

 

6.3

Управление связками пакетов . . . . . . . . . . . . . . . . . . . . .

84

 

6.4

Управление парселами . . . . . . . . . . . . . . . . . . . . . . . . .

86

 

6.5

Определение пространства имён . . . . . . . . . . . . . . . . . . .

88

 

6.6

Определение класса . . . . . . . . . . . . . . . . . . . . . . . . . .

91

 

6.7

Определение переменной класса . . . . . . . . . . . . . . . . . . .

97

 

6.8

Определение переменных в пространстве имён . . . . . . . . . . .

98

 

6.9

Работа с экземплярами . . . . . . . . . . . . . . . . . . . . . . . . .

99

 

6.10

Определение метода . . . . . . . . . . . . . . . . . . . . . . . . . .

102

 

6.11

Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . .

104

7

Отладка кода

106

 

7.1

Oкно уведомлений . . . . . . . . . . . . . . . . . . . . . . . . . . .

106

 

7.2

Oкно отладки кода . . . . . . . . . . . . . . . . . . . . . . . . . . .

107

 

7.3

Программные зонды . . . . . . . . . . . . . . . . . . . . . . . . . .

113

 

7.4

Работа с зондами через браузер . . . . . . . . . . . . . . . . . . . .

115

 

7.5

Зонды на уровне класса . . . . . . . . . . . . . . . . . . . . . . . .

123

 

7.6

Установка временных зондов в отладчике . . . . . . . . . . . . . .

126

 

7.7

Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . .

127

8

Исключения и их обработка

128

 

8.1

Классы исключений . . . . . . . . . . . . . . . . . . . . . . . . . .

128

 

8.2

Обработка исключений . . . . . . . . . . . . . . . . . . . . . . . . .

129

 

8.3

Оповещение о возникновении исключения . . . . . . . . . . . . . .

132

 

8.4

Среда исключений процесса . . . . . . . . . . . . . . . . . . . . . .

133

 

8.5

Возобновляемые и невозобновляемые исключения . . . . . . . . .

135

 

8.6

Явный выход из обработчика . . . . . . . . . . . . . . . . . . . . .

135

 

8.7

Преобразование исключений . . . . . . . . . . . . . . . . . . . . .

138

 

8.8

Развертывание защиты . . . . . . . . . . . . . . . . . . . . . . . . .

139

 

8.9

Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . .

140

9

Поставка приложения

141

 

9.1

Выбор стратегии поставки . . . . . . . . . . . . . . . . . . . . . . .

141

 

9.2

Подготовка к поставке приложения . . . . . . . . . . . . . . . . . .

143

 

9.3

Создание поставляемого образа . . . . . . . . . . . . . . . . . . . .

148

 

9.4

Контрольные вопросы . . . . . . . . . . . . . . . . . . . . . . . . .

152

Литература

153

162

Список иллюстраций

156

Предметный указатель

161

163

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]