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 списки (и функции пользователя)



Информация о работе «ЛИСП»
Раздел: Информатика, программирование
Количество знаков с пробелами: 170298
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
14593
2
12

... цифр с требуемым числом разрядов и, таким образом, запомнить любое самое большое число данной разрядности. Целью данной курсовой работы является ЛИСП-реализация конечных автоматов.1. Постановка задачи Конечный автомат – автомат, проверяющий допустимость слова на ленте, и возвращающий True / False (в данном случае Correct / Incorrect). Конечный автомат может двигаться по ленте только в одном ...

Скачать
16057
6
13

... При работе пользователя с базой данных над ее содержимым выполняются следующие основные операции: выбор, добавление, модификация (замена) и удаление данных. Целью данной курсовой работы является ЛИСП – реализация основных операций над базами данных. 1 Постановка задачи Требуется разработать программу, реализующую основные операции над базами данных: выбор, добавление, модификация и удаление ...

Скачать
14282
0
14

... новых рынков, биржевой игре, оценки политических рейтингов, выборе оптимальной ценовой стратегии и т.п. Появились и коммерческие системы массового применения. Целью данной курсовой работы является ЛИСП – реализация основных операций над нечеткими множествами. 1.Постановка задачи Требуется реализовать основные операции над нечеткими множествами: 1)   содержание; 2)   равенство; 3)   ...

Скачать
11806
0
10

... метода Ньютона на случай мнимых корней полиномов степени выше второй и комплексных начальных приближений. Эта работа открыла путь к изучению теории фракталов. Целью данной курсовой работы является Лисп – реализация нахождения корней уравнения методом Ньютона. 1. Постановка задачи Дано уравнение: . Требуется решить это уравнение, точнее, найти один из его корней (предполагается, что ...

0 комментариев


Наверх