1. Интерфейс пользователя.
Запуск системы осуществляется командой:
DLISP.EXE
При загрузке системы начинает работать редактор, он чистит экран, рисует рамку и выдает на экран главное меню:
Файл. Имеет следующие опции: новый, открыть, сохранить, сохранить как, выход.
Просмотр: экран вывода, экран интерпретатора.
Редактор.
Поиск: поиск, повторить поиск, замена.
Запуск: выполнить, перезапустить, продолжить.
Отладка: шаг, трассировка, контрольная точка, очистить все.
Параметры: режим экрана, проверка синтаксиса.
Справка.
Затем система ждет, пока пользователь не выберет одну из опций.
Редактор работает с файлами, имеющими расширение LSP и находящимися в той же директории, что и файл DLISP.EXE
Результаты вычислений выводятся на специальный экран. Для просмотра этих результатов необходимо выбрать опцию «Просмотр» главного меню, а в ней - «экран вывода». Чтобы вернуться назад необходимо нажать любую клавишу.
Для переключения в режим диалога используют клавиши SHIFT+TAB.
Для повтора предыдущей команды используют клавишу F3.
2. Функции, поддерживаемые dlisp.
Dlisp поддерживает несколько различных типов данных:
* списки
* символы
* строковые константы
* действительные числа
* целые числа
По синтаксису и соглашениям Dlisp близок к MuLispу, более того, он является небольшой его частью.
Dlisp содержит некоторое число заранее определенных функций. Каждая функция вызывается как список, первым элементом которого является имя функции, а остальными - аргументы этой функции (если они есть). Многие из функций - стандартные функции LISP, их можно найти в каждом руководстве по языку.
Функции MuLispа поддерживаемые dlispом и определенные нами в предыдущих лабораторных работах.
(+ ...)
(- ...)
(* ...)
(/ ...)
(= ...)
(/= )
(< ...)
( ...)
(>= ...)
(and ...)
(atom )
(boundp )
(car )
(cdr )
(cond ( ...)...)
(cons )
(defun ...)
(eq )
(if [])
(lambda ...)
(list ...)
(listp )
(mapcar ...)
(not )
(null )
(numberp )
(or ...)
(princ [])
(print [])
(progn ...)
(quote )
(read )
(set )
(setq [ ]...)
(while ...)
(zerop )
Функции dlispа не используемые MuLispом.
(cos )
Эта функция возвращает косинус , где - выражается в радианах. Например:
(cos 0.0) возвращает 1.000000
(cos pi) возвращает -1.000000
(sin )
Эта функция возвращает синус как действительное число, где выражен в радианах. Например:
(sin 1.0) возвращает 0.841471
(sin 0.0) возвращает 0.000000
(min ...)
Эта функция возвращает наименьшее из заданных . Каждое может быть действительным или целым.
(nth )
Эта функция возвращает "энный" элемент , где - номер элемента (ноль - первый элемент). Если больше, чем номер последнего элемента , возвращается nil. Например:
(nth 3 '(a b c d e)) возвращает D
(nth 0 '(a b c d e)) возвращает A
(nth 5 '(a b c d e)) возвращает nil
(strcat ...)
Эта функция возвращает строку, которая является результатом сцепления строки1>, и т.д. Например:
(strcat "a" "bout") возвращает "about"
(strcat "a" "b" "c") возвращает "abc"
(strcat "a" "" "c") возвращает "ac"
(strlen )
Эта функция возвращает длину в символах строковой константы как целую величину. Например:
(stalen "abcd") возвращает 4
(stalen "ab") возвращает 2
(stalen "") возвращает 0
(subst )
Эта функция просматривает в поиске и возвращает копию с заменой каждого встречного на . Если не найден в , SUBST возвращает неизменным. Например, дано:
(setq sample '(a b (c d) b))
тогда:
(subst 'qq 'b sample) возвращает (A QQ (C D) QQ)
(subst 'qq 'z sample) возвращает (A B (C D) B)
(subst 'qq '(c d) sample) возвращает (A B QQ B)
(subst '(qq 'rr) '(c d) sample) возвращает (A B (QQ RR) B)
(subst '(qq 'rr) 'z sample) возвращает (A B (C D) B)
В сочетании с функцией ASSOC, SUBST обеспечивает удобный способ замены величины, найденной по ключу в структурированном списке. Например, дано:
(stq who '((ferst john) (mid q) (last public)))
тогда:
(setq old (assoc 'first who)) возвращает (FIRST JOHN)
(setq new '(first j)) возвращает (FIRST J)
(setq new old who) возвращает ((FIRST J) (MID Q) (LAST PUBLIC))
(type )
Эта функция возвращает TYPE (тип) , где TYPE - одно из следующих значений (как атом):
REAL числа с плавающей запятой
STR строковые константы
INT целые величины
SYM символы
LIST списки (и функции пользователя)
... цифр с требуемым числом разрядов и, таким образом, запомнить любое самое большое число данной разрядности. Целью данной курсовой работы является ЛИСП-реализация конечных автоматов.1. Постановка задачи Конечный автомат – автомат, проверяющий допустимость слова на ленте, и возвращающий True / False (в данном случае Correct / Incorrect). Конечный автомат может двигаться по ленте только в одном ...
... При работе пользователя с базой данных над ее содержимым выполняются следующие основные операции: выбор, добавление, модификация (замена) и удаление данных. Целью данной курсовой работы является ЛИСП – реализация основных операций над базами данных. 1 Постановка задачи Требуется разработать программу, реализующую основные операции над базами данных: выбор, добавление, модификация и удаление ...
... новых рынков, биржевой игре, оценки политических рейтингов, выборе оптимальной ценовой стратегии и т.п. Появились и коммерческие системы массового применения. Целью данной курсовой работы является ЛИСП – реализация основных операций над нечеткими множествами. 1.Постановка задачи Требуется реализовать основные операции над нечеткими множествами: 1) содержание; 2) равенство; 3) ...
... метода Ньютона на случай мнимых корней полиномов степени выше второй и комплексных начальных приближений. Эта работа открыла путь к изучению теории фракталов. Целью данной курсовой работы является Лисп – реализация нахождения корней уравнения методом Ньютона. 1. Постановка задачи Дано уравнение: . Требуется решить это уравнение, точнее, найти один из его корней (предполагается, что ...
0 комментариев