HUGS 98: различия между версиями

341 байт убрано ,  13 лет назад
м (ссылки на лаб.работы поправлены, + Категория:Среды разработки программ)
== Основные принципы HUGS 98 ==
 
После запуска ИС HUGS 98 на экране появляется диалоговое ок¬ноокно среды разработчика, автоматически загружается спе¬ци¬аль¬ныйспециальный файл предопределений типов и определений стандартных функ¬цийфункций на языке Haskell (Prelude.hs) и выводится стандартное при¬глашениеприглашение к работе.
Диалоговое окно среды разработчика состоит из главного ме¬нюменю, набора кнопок для быстрого доступа к наиболее часто ис¬поль¬зуемымиспользуемым командам и консоли, где происходит работа с ин¬тер¬претатороминтерпретатором. Необходимо особо отметить, что ИС не поз¬во¬ля¬етпозволяет создавать и редактировать файлы с кодами программ, для это¬гоэтого требуется использование любого текстового редактора, под¬дер¬живающегоподдерживающего обычный стандарт TXT (этим редактором, нап¬ри¬мернапример, может быть стандартный блокнот Windows).
Рис. 1. Главное окно ИС HUGS 98
Главное окно HUGS 98 (рис. 1) обеспечивает доступ ко всем ко¬мандамкомандам ИС, используемым для интерпретации и отладки про-г¬раммпрограмм. Кроме того, ИС позволяет вызвать на редактирование от¬крытыеоткрытые модули в стандартном окне Notepad, встроенном в опе¬рационнуюоперационную систему Windows любой версии.
2.1. Панель инструментов HUGS 98
На панели инструментов, находящейся слева на главном ди¬а¬ло¬говомдиалоговом окне, предоставлены кнопки, при помощи которых мож¬номожно вызвать наиболее часто используемые в процессе раз¬ра¬бот¬киразработки команды (конечно, с точки зрения разработчиков ИС HUGS 98, а не с точки зрения конечного пользователя). Ниже пред¬ставленыпредставлены краткие описания всех четырнадцати кнопок, ко¬то¬рыекоторые можно найти на панели инструментов.
 
Загрузка модулей из внешних файлов. Позволяет выб¬ратьвыбрать и открыть файл, из которого загружаются все мо¬ду¬лимодули, обнаруживаемые интерпретатором в этом файле.
 
Вызов менеджера модулей. Менеджер модулей поз¬во¬ля¬етпозволяет добавлять, удалять и редактировать загруженные в па¬мятьпамять ИС программные модули.
 
Вырезать выделенный текст. Стандартная функция ре¬дак¬тированияредактирования текстов. Удаляет из редактора выделенный текст и помещает его в буфер обмена операционной сис¬те¬мысистемы.
 
Скопировать выделенный текст в буфер обмена. Стан¬дартнаяСтандартная функция редактирования текстов. Копирует вы¬деленныйвыделенный текст в буфер обмена операционной сис¬те¬мысистемы.
 
Вставить текст из буфера обмена. Стандартная функ¬цияфункция редактирования текстов. Вставляет в редактируемый тест содержимое буфера обмена операционной системы.
 
Очистить выбранный текст. Стандартная функция ре¬дак¬тированияредактирования текстов. Удаляет из редактора выделенный текст, не помещая его в буфер обмена операционной сис¬темысистемы.
 
Запустить внешний редактор текста. Запускает внеш¬нийвнешний тектовый редактор, зарегистрированный в опе¬ра¬ци¬он¬нойоперационной системе. Для семейства Windows при нажатии на эту кнопку запускается стандартная программа Notepad.
 
Запуск на выполнение выражения «main». Исполняет функ¬циюфункцию main в загруженных модулях (конечно, если та¬каятакая функция обнаружена в модулях). Если функция main не обнаружена ни в одном из загруженных мдулей, то выдаётся ошибка: ERROR — Undefined variable "main".
 
Остановка исполнения программы. Остановка вы¬пол¬не¬ниявыполнения любой запущенной функции. Используется, на¬при¬мернапример, для прекращения вычисления бесконечного спи¬скасписка.
 
Перезагрузка всех файлов текущего проекта. Осу¬щес¬т¬вляетОсуществляет перезагрузку всех файлов с целью загрузить в па¬мятьпамять интерпретатора все сделанные изменения в коде про¬ектапроекта.
 
Установка параметров интерпретатора. Вывод на эк¬ранэкран диалогового окна установки набора параметров ин¬тер¬претатораинтерпретатора языка Haskell. О параметрах ин¬тер¬пре¬та¬то¬раинтерпретатора подробно описано в приложении В.
 
Вывод на экран иерархии классов. На экране по¬яв¬ля¬ет¬сяпоявляется иерархия классов текущего проекта, показанная в ви¬девиде множества прямоугольников с названиями (классы) и связей между ними (отношения наследования).
 
Вызов справки. Вызывает на экран стандартное ди¬а¬ло¬го¬воедиалоговое окно справочной информации. Предполагается, что все справочные файлы присутствуют в каталоге, где ус¬тановленоустановлено ИС (эти файлы не входят в стандартную по-с¬тавкуставку HUGS 98).
 
Выход из программы. Осуществляет выход из ИС HUGS 98 в операционную систему.
2.2. Команды консоли HUGS 98
Консоль ИС HUGS 98 предоставляет небольшой набор слу¬жеб¬ныхслужебных конструкций, позволяющих управлять работой ИС. Мно¬гиеМногие из этих команд дублируют действия кнопок на панели ин¬струментовинструментов и некоторые пункты главного меню приложения. Од¬накоОднако в любом случае эти команды могут позволить про¬фес¬си¬о¬нальнымпрофессиональным пользователям значительно ускорить процесс раз¬ра¬бот¬киразработки.
Каждая команда начинается с символа «двоеточие» — «:». Это сделано для того, чтобы отличить встроенные команды от на¬писанныхнаписанных разработчиками функций. Кроме того, ИС поз¬во¬ля¬етпозволяет сокращать каждую команду вплоть до одной буквы, набрав толь¬котолько символ «двоеточие» и собственно первую букву ко¬ман¬дыкоманды.
Всего существует девятнадцать команд, ниже представлено подробное описание каждой из них.
:load [<filenames>]
Загружает программные модули из заданных файлов (имена фай¬ловфайлов можно разделить пробелом). Дублирует кнопку загрузки мо¬дулеймодулей на панели инструментов. Если имена файлов от¬сут¬с¬т¬ву¬ютотсутствуют, то происходит выгрузка всех модулей, кроме стандартного (Prelude.hs). При повторном использовании команды все ранее заг¬руженныезагруженные модули выгружаются из памяти интерпретатора.
:also <filenames>
Подгружает дополнительные модули в текущий проект. Име¬наИмена файлов должны быть разделены пробелами (если указывается бо¬лееболее чем один файл).
:reload
Повторяет последнюю выполненную команду загрузки (:load). Позволяет быстро выполнить перезагрузку модуля в слу¬чаеслучае, если он редактируется во внешнем текстовом редакторе.
:project <filename>
Загружает и использует файл проекта. Загрузить можно толь¬котолько один файл. Файлы проекта используются для объединения раз¬розненныхразрозненных файлов с кодом. При повторном использовании ко¬мандыкоманды происходит выгрузка всех файлов (как проектных, так и обычных) из памяти интерпретатора.
:edit [<filename>]
Вызывает внешний текстовый редактор для исправления ука¬зан¬ногоуказанного файла. Если имя файла не указано, то на ре¬дак¬ти¬ро¬ва¬ниередактирование вызывается последний файл (загруженный или ре¬дак¬ти¬ро¬ван¬ныйредактированный). Данная команда дублирует кнопку вызова внешнего тек¬стовоготекстового редактора на панели инструментов.
:module <module>
Устанавливает заданный модуль в качестве текущего для вы¬пол¬нениявыполнения функций. Эта команда предназначена, в первую, оче¬редьочередь для разрешения коллизий имён.
<expr>
Запуск заданного выражения на выполнение. Например, ко¬ман¬дакоманда main запустит на выполнение соответствующую функцию — main, что произведёт дублирование кнопки с панели ин¬с¬т¬ру¬мен¬товинструментов.
:type <expr>
Выводит на экран тип заданного выражения. Эта команда ис¬поль¬зуетсяиспользуется главным образов в отладочных целях для быстрого по¬лученияполучения типа создаваемого выражения (переменной, функции, слож¬ногосложного объекта).
:?
Выводит на экран список команд с кратким описанием.
:set [<options>]
Позволяет задать параметры ИС с командной строки. Дуб¬ли¬ру¬етДублирует действие диалогового окна настройки HUGS 98 (описание ко¬торогокоторого приведено в приложении В). Все возможные па¬ра¬мет¬рыпараметры этой команды (<options>) выводятся на экран при вы¬пол¬не¬ниивыполнении этой команды без каких-либо параметров.
:names [pat]
Выводит на экран список всех имён объектов, которые на¬хо¬дят¬сянаходятся в текущем (если не задано иное) пространстве имён.
:info <names>
Выводит на экран описание заданных имён объектов. На¬при¬мерНапример, для функций выводит их тип вместе с именем заданной фун¬кциифункции.
:browse <modules>
Выводит на экран список всех объектов (функций, пе¬ре¬мен¬ныхпеременных, типов), определённых в заданных модулях. Имена модулей дол¬жныдолжны быть разделены пробелом (в случае, если указано более од¬ногоодного имени модуля).
:find <name>
Вызывает на редактирование модуль, содержащий заданное имя. Если заданного имени нет ни в одном из текущих модулей, то выдаётся собщение об ошибке: ERROR — No current de¬fi¬ni¬ti¬on for name "<name>".
Анонимный участник