WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Інтерпретатор muLisp - Реферат

Інтерпретатор muLisp - Реферат

присвоює початкові значення формальним параметрам, розташованим в стеку змінних, висвічує на консоль поточні вхідні й вихідні дані (CIS та COS) й повертає керування верхньому рівневі циклу "read-eval-print". Визначення функцій, значення властивостей та глобальних змінних залишаються незмінними;
- Restart (повторний старт): закриває всі відкриті файли, відмовляється від поточного середовища muLISP та ініціює нову систему muLISP. Всі зв'язки між змінними, функції та значення властивостей в поточному середовищі muLISP руйнуються;
- Sуstem (система): закриває всівідкриті файли, завершує виконання muLISP та повертає керування керівній ОС.
6. Система переривань з консолі
У будь-який час у ході виконання програми ініційована користувачем система переривань з консолі може зупинити виконання програми й поверне керування на консоль.
Переривання з консолі ініціюється шляхом натиснення клавіші на клавіатурі консолі. Якщо на клавіатурі немає клавіші , то символ переривання може бути зґенеровано шляхом натиснення клавіші лівої дужки ([) з одночасним натисненням клавіші .
Якщо ж і так не виходить, то символ для генерації переривань з консолі може бути змінений шляхом модифікації Default Readtable основної сторінки muLISP.
При виникненні переривання з консолі на екрані консолі висвічується повідомлення:
Console Interrupt Break: NIL
За ним на наступному рядку з'являється підказка у вигляді опцій переривання. Користувач може потім вирішити, як продовжити роботу.
Якщо з деяких причин немає відповіді на переривання з клавіатури, можливо здійснити переривання в системі шляхом переключення ЕОМ (хоча це завжди небажано).
7. Повідомлення про помилки
В даному розділі приводяться повідомлення про помилки в системі muLISP,а також опції, що є в розпорядженні користувача при появі помилок.
Коли muLISP виявляє помилковий стан, викликається функція BREAK. BREAK видає відповідне повідомлення про помилку, призупиняє виконання програми та забезпечує користувачеві опції продовження роботи на вибір.
Нижче в алфавітному порядку наведено повідомлення про помилки muLISP:
- DISK FULL (диск повний) : означає, що пам'яті для розміщення даних, записаних на дисковому файлі, бракує. Виконання програми припиняється, й виникає переривання за помилкою. Оскільки файл залишається відкритим, є можливість стерти й інші файли на всій дискеті (за допомогою функції EXETUTE ) та продовжити запис до файлу;
- END-OF-FILE (кінець файлу): означає, що здійснена спроба зчитати дані за межами кінця вхідного файлу ( CIF ) або з його порожніх місць.
Відразу за повідомленням "end-of-file" висвічується ім'я CIF у вигляді списку типу: "drive:name.type";
- FILE NOT FOUND (файл не знайдено) : означає, що вихідний та (або) SYS-файл, вказаний у командах ОС, що ініціюють muLISP, не знайдено, або SYS-файл невірної версії. SYS-файл може бути завантажений тільки під керуванням тієї версії muLISP, що використовується для зберігання файлу.
Вихідні та SYS-файли, крім того, можуть бути завантажені в muLISP з використанням команд RDS та LOAD відповідно. Коли одна з цих команд завершується, а файл не знайдено, замість повідомлення "file not found" команда повертає ознаку NIL;
- INSUFFICIENT ARGUMENTS (брак аргументів) : означає, що функція, яка потребує щонайменше один аргумент, викликається без аргументів. Функціями, які можуть викликати цей тип помилки, є: MAX, MIN, -, /, ADD1, SUB1, LCM, ABS, SIGNUM, NUMERATOR, DENOMINATOR, FLOOR, CEILING, TRUNCATE, ROUND, MJD, REM, DIVIDE, LOGNOT, BITLENGTH та SHIFT;
- INSUFFICIENT MEMORY, ABORTING (брак пам'яті, переривання): означає, що має місце нестача пам'яті для завантаження й функціонування середовища muLISP. Робота muLISP призупиняється, керування повертається до керівної ОС.
Відзначимо, що середовище muLISP, що зберігається в SYS-файлі, може бути завантажене до ЕОМ, що має менший об'єм пам'яті, ніж ЕОМ, на якій це середовище було створене. Помилка за браком пам'яті виникає тільки тоді, коли ЕОМ, на якій SYS-файл був завантажений, не володіє достатнім об'ємом пам'яті для розміщення середосища muLISP. Єдиний шлях завантаження SYS-файлів - це отримання більшого об'єму пам'яті для ЕОМ.
- MEMORY FULL (пам'ять заповнена) : означає, що пам'яті для продовження виконання програм muLISP не вистачає. Виконання програм призупиняється, виникає переривання за помилкою.
Дійсно, система керування пам'яттю забезпечує достатньою кількістю пам'яті кожну область даних для повного задоволення потреб програм muLISP. Якщо потреба в об'ємі пам'яті для розміщення об'єктів даних перевищує всі наявні ресурси, виникає ця помилка. Разом з повідомленням про помилку висвічується статистика в наступній формі:
GC: nnnn aaaa/aaaa vvvv/vvvv pppp/pppp ssss/ssss tttt/tttt
Шістнадцяткові цифри, що йдуть за "GC:", показують розмір пам'яті, що залищилася в кожній з основних 4-х областей даних. Отже, може бути визначена область даних, пов'язана з помилкою;
- NONINTEGER ARGUMENT (нецілий аргумент) : означає, що функція, яка потребує цілі аргументи, викликана з нецілим аргументом. Функції, для яких ця помилка може зустрітися, це: LOGAND, LOGIOR, LOGXOR, LOGNOT, SHIFT та BITLENGTH;
- NONINTEGER ARGUMENT (нечисловий аргумент) : означає, що функція, яка потребує числові аргументи, викликана з нечисловим аргументом. Така помилка може виникнути для наступних функцій: =, /=, , =, MAX, MIN, +, -, *, /, ADD1, SUB1, INCQ, DECQ, GCD, LCM, ABC, SIGNUM, NUMERATOR, DENOMINATOR, FLOOR, CEILING, TRUNCATE, ROUND, MOD, REM та DIVIDE;
- NONSYMBOLIC ARGUMЕNT (несимвольний аргумент) : означає, що функція, яка потребує символьні аргументи, викликана з несимвольним аргументом. До таких функцій відносяться: SET, SETQ, PSETQ, POP, PUSH, INCQ та DECQ;
- SYNTAX ERROR (синтаксична помилка) : означає, що функція READ зустріла або зайві праві дужки, або неточність у точковому зображенні, наприклад, (A.) чи (AB.CD). Оскільки переривання за даною помилкою ґенерується макросом правих дужок або ком, воно може бути модифіковане користувачем-проектувальником;
- UNDEFINED FUNCTION (невизначена функція) : означає, що здійснено спробу використання символа, що не має означення функції. Загальними діями при появі цієї помилки є: вибір опції BREAK, означення невизначеного символа та продовження вихідної програми за допомогою команди: ( RETURN ( EVAL BREAK ))
- ZERO DIVIDE (ділення на 0) : означає, що була викликана функція ділення з нульовим дільником. Такими функціями можуть бути: /, FLOOR, CEILING, TRUNCATE, ROUND, MOD, REM та DIVIDE.
Loading...

 
 

Цікаве