Шаг 32.
Основные типы данных, операции, способы определения функций... . Дополнительные возможности для отладки

    На этом шаге мы рассмотрим некоторые средства отладки, предоставляемые ИС HUGS 98.

    Инструментальное средство (ИС) HUGS 98 предоставляет разработчику несколько дополнительных возможностей для отладки программ, которые во многих случаях облегчают разработку и позволяют более обшир­но «оглядеть» созданное приложение. К таким дополнительным возможностям относятся просмотр классов, просмотр зарегисрированных имен объектов, просмотр конструкторов типов и просмотр иерархии классов.

    Далее подробно рассматривается каждая из этих дополнительных возможностей, однако перед этим необходимо разъяснить значения обозначений, применяемых во всех инструментах по просмотру. Итак, к таким обозначениям относятся разноцветные пиктограммы прямоугольного формата с определенной буквой внутри. Всего таких пиктограмм девять:

Просмотр классов

    При помощи инструмента для просмотра классов разработчик может изучить список созданных классов, список функций-членов каждого класса (если они есть) и список экземпляров каждого класса (также, если они есть). Доступ к этому инструменту осуществляется через пункт меню Browse | Classes.... Внешний вид этого инструмента можно видеть на рисунке 1.


Рис.1. Диалоговое окно просмотра классов

    В левом столбце представлен список созданных классов. При выделении какого-то определённого класса в правом поле появляется список функций-членов класса, а в нижнем поле — список экземпляров класса. В поле Superclasses появляются базовые классы для выделенного класса (если они есть).

    Это диалоговое окно предоставляет возможность автоматического перехода на описание выделенного класса или выделенного экземпляра класса для их редактирования (при использовании кнопок Edit class и Edit instance соответственно). Кроме того, можно перейти к просмотру иерархии классов (при помощи нажатия на кнопку Hierarchy).

Просмотр зарегистрированных имен объектов

    При помощи инструмента для просмотра зарегистрированных имён объектов программист может изучить список всех имён, встречающихся во всех загруженных модулях. К именам относят­ся имена функций, имена примитивов (тех функций, реализация которых зашита внутри интерпретатора), имена конструкторов данных и имена функций-членов классов. Доступ к этому инструменту осуществляется через пункт меню Browse | Names.... Внешний вид этого инструмента представлен на рисунке 2.


Рис.2. Диалоговое окно просмотра имён

    В верхнем поле представлен список всех имён с соответствующей пиктограммой, обозначающей природу имени. При помощи строки поиска можно осуществить инкрементный поиск по всему списку — при вводе очередной буквы курсор в списке перемещается на первое имя, которое начинается на введённую последовательность символов. В двух нижних полях предоставляется дополнительная информация о выделенном имени — его тип и комментарии (если они присутствуют в описании).

    Это диалоговое окно предоставляет разработчику возможность быстро перейти к редактированию выделенного имени при помощи нажатия на кнопку Edit name.

Просмотр конструкторов типов

    При помощи инструмента для просмотра конструкторов типов разработчик может изучить список всех конструкторов, которые встречаются во всех загруженных модулях. К конструкторам относятся конструкторы данных (служебное слово data), описания встроенных типов (служебное слово type) и конструкторы новых типов (служебное слово newtype). Доступ к этому инструменту осуществляется через пункт меню Browse | Type constructors.... Внешний вид этого инструмента представлен на рисунке 3.


Рис.3. Диалоговое окно просмотра конструкторов типов

    В верхнем поле представлен список всех имён конструкторов типов с соответствующей пиктограммой, обозначающей природу конструктора. При помощи строки поиска можно осуществить инкрементный поиск по всему списку — при вводе очередной буквы курсор в списке перемещается на первое имя, которое начинается на введённую последовательность символов. В поле Type приводится определение соответствующего типа. В двух нижних полях предоставляется информация о конструкторах и селекторах выделенного типа, а также об экземплярах типа (если они есть).

    При помощи этого диалогового окна разработчик может быстро перейти к редактированию выделенного конструктора (при нажатии на кнопку Edit type) или к редактированию выделенного экземпляра типа (при помощи нажатия на кнопку Edit instance).

Просмотр иерархии классов

    Просматривая иерархию классов, программист может увидеть отношения наследования между созданными классами. Необходимо отметить, что алгоритм прорисовки классов и отношений в HUGS 98 несколько неадекватен, поэтому для более полного понимания от программиста требуется либо чутьё, либо способность быстро разбросать все классы по диалоговому окну, создав планарный граф.

    Это диалоговое окно можно вызвать не только из главного меню приложения, воспользовавшись пунктом меню Browse | Hierarchy, но и из диалогового окна для просмотра списка классов.

    На рисунке 4 показана иерархия классов из файла Prelude.hs.


Рис.4. Иерархия классов из файла Prelude.hs

    Как видно из рисунка в этом файле определены классы эквивалентности (все, которые наследуют свойства класса Eq) и классы-монады (Monad, Functor, Read и Bounded).

    На следующем шаге мы приведем краткие биографические сведения математиков, чьи работы были положены в основу этого языка.




Предыдущий шаг Содержание Следующий шаг