UkrReferat.com
найбільша колекція україномовних рефератів

Всього в базі: 75855
останнє поновлення: 2016-12-09
за 7 днів додано 22

Реферати на українській
Реферати на російській
Українські підручники

$ Робота на замовлення
Реклама на сайті
Зворотній зв'язок

 

ПОШУК:   

реферати, курсові, дипломні:

Українські рефератиРусские рефератыКниги
НазваЗасоби та принципи програмування на Ліспі (реферат)
Авторdimich
РозділІнформатика, компютерні науки
ФорматWord Doc
Тип документуРеферат
Продивилось1404
Скачало304
Опис
ЗАКАЧКА
Замовити оригінальну роботу

Реферат на тему:

 

Засоби та принципи програмування на Ліспі

 

1. Контрольні конструкції

 

MuLisp використовує неявну форму PROGN для обчислення форм, які

складають тіло функції. Окрім того, інтерпретатор muLіsp розпізнає в

тілі функції неявні COND конструкції. Неявні COND-и роблять визначення

функцій читабельними, короткими та ефективними. Спеціальні форми

забезпечують контроль за обчисленням форм в процесі виконання програм.

Розглянемо деякі контрольні інструкції.

 

1. QUOTE <об’єкт> повертає об’єкт без його обчислення. QUOTE може

використовуватися для запобігання обчислення значень констант, які

передаються як аргумент функції, що обчислюється.

 

$ (SETQ a 125)

 

$ a $ (QUOTE a) $ (CAR (CONS 4 7)) $ (CAR ‘(CONS 4 7))

 

125 a 4 CONS

 

2. LOOP <форма1> <форма2> ... <формаN> Повторно обчислює форми у

послідовному порядку доти, поки не зустрінеться неявний COND з

предикатом, не рівним NIL. Розглянемо функцію LENGTH обчислення довжини

списку. В першому стовпчику запропоновано рекурсивний, в лівому —

нерекурсивний варіант програми.

 

(DEFUN LENGTHr (lst) (DEFUN LENGTH (lst)

 

((NULL lst) 0) (SETQ ct 0)

 

(+ 1 (LENGTHr (CDR lst))) ) (LOOP

 

((NULL lst) ct)

 

(SETQ lst (CDR lst) ct (+ 1 ct)) ) )

 

3. IF <предикат> [THEN] <форма1> [ELSE] <форма2> Якщо значення предиката

не дорівнює NIL, то видається [THEN] форма, інакше видається [ELSE]

форма.

 

$ (IF (EQL ‘r ‘r) (CAR ‘(q w e r t y)) (CDR ‘(q w e r t y))) — q

 

$ (IF (EQL ‘r ‘w) (CAR ‘(q w e r t y)) (CDR ‘(q w e r t y))) — (w e r t

y)

 

4. IDENTITY <об’єкт> Повертає об’єкт без жодних змін. Ця функція

застосовується для використання змінних як предикатів в умовних виразах.

 

5. PROGN <форма1> <форма2> ... <формаN> Послідовно обчислює форми та

повертає результат обчислення формиN.

 

6. PROG1 <форма1> <форма2> ... <формаN> Послідовно обчислює форми та

повертає результат обчислення форми1. Функцію використовують для того,

щоб вводити допоміжні змінні для збереження результатів в процесі

обчислення інших виразів.

 

$ (SETQ a ‘(q w e r t y))

 

$ (PROG1 (CAR a) (SETQ a (CDR a)))

 

q

 

$ a

 

(w e r t y)

 

7. COND ... Обчислює CAR кожної COND форми доти,

доки не зустрінеться деяке значення, відмінне від NIL, або доки всі

предикати не будуть обчислені. В першому випадку COND обчислює CDR

елемент cons - форми з предикатом, який не дорівнює NIL, як тіло

функції, використовуючи неявну функцію PROGN. Якщо CDR - елемент COND

форми, яка не дорівнює NIL, є порожнім, то повертається значення

предиката. Якщо обчислені всі предикати та всі вони повернули NIL, то

COND повертає NIL.

 

8. COMMENT <коментар> Ігнорує свої аргументи та повертає NIL. Визначає

засіб включення коментарів безпосередньо у визначені функції.

 

9. RETURN <об’єкт> Зупиняє виконання функції, яка містить RETURN,

звільняє стек та повертає об’єкт в ролі свого значення.

 

10. RESTART Закриває всі відкриті файли, відмовляється від поточного

середовища та ініціює нову систему muLisp. Всі зв’язки між змінними,

функції користувача та значення властивостей поточного середовища

-----> Page:

0 [1] [2] [3] [4]

ЗАМОВИТИ ОРИГІНАЛЬНУ РОБОТУ