![]() |
|
сделать стартовой | добавить в избранное |
![]() |
АвтоЛИСП - реализация языка программирования |
Глава 1 Введение АвтоЛИСП - реализация языка программирования ЛИСП, вложенного в пределах системы АвтоКАД. АвтоЛИСП позволяет пользователям и разработчикам АвтоКАДА писать макропрограммы и функции на очень высоком, находящем графическое применение, уровне языка. ЛИСП очень гибок, легок в изучении и применении. Замечание Для более эффективного применения АвтоКАДА нет необходимости изучать АвтоЛИСП; если у вас нет опыта компьютерного программирования, прочтите тольно установочные требования в главе 2 - это позволит вам увидеть применяемые АвтоЛИСПом преимущества многочисленных меню АвтоКАДА. Однако, если вам нравится программировать, прочтите это руководство до конца, чтобы узнать как применять АвтоЛИСП для преобразования основного назначения пакета изготовления чертежей АвтоКАДА в более мощный инструмент программиста. Данная книга - справочник, а не учебник по программированию. Хотя в главе 3 мы и приводим пример практического применения АвтоЛИСПа, мы все же рекомендуем достать различные тексты на ЛИСПе для изучения этого языка программирования: Винстон и Хорн &quo ;LISP&quo ; (второе издание), &quo ;Looki g a LISP&quo ; Тони Хасемера (обе книги опубликованы Эддисоном Веслей). ЛИСП - язык, содержащий много диалектов: МакЛИСП, ИнтерЛИСП, ЗетаЛИСП и КоммонЛИСП. АвтоЛИСП по синтаксису и условным обозначениям наиболее близок к КоммонЛИСПу, но он с меньшим подмножеством и имеет больше специфических для АвтоКАДа дополнительных функций. Этот справочник содержит все функции автоЛИСПа и способы их применения. 1.1 Типы данных в АвтоЛИСПе АвтоЛИСП содержит несколько различных типов данных: - lis s - списки - symbols - символы - s ri gs - строчки - real umbers - действительные числа - i egers - целые числа - file descrip ors -дескрипторы файла - Au oCAD e i y &quo ; ames&quo ; - &quo ;имена&quo ; объектов АвтоКАДа - Au oCAD selec io -se s - секции установок АвтоКАДа - subrs (build-i fu c io s) - (встроенные функции) Целые числа - 16-битные числа со знаком с диапазоном от -32768 до 32767. Действительные числа представлены как плавающая точка с двойной точностью. Строчки могут быть любой длины, их память динамически распределяется. АвтоЛИСП содержит несколько встроенных функций по обеспечению базиса для программирования чертежей в двух и трех измерениях. При работе с графическими координатами, рассматриваются следующие условные обозначения: 2D poi s - выражены как перечни двух действительных чисел (X Y): (3.400000 7.520000 ) Первое значение - координата X, второе - Y. 3D poi s - выражены как перечни трех действительных чисел (X Y Z ): (3.400000 7.520000 1.000000) Первое значение - координата X,второе -Y, третье -Z. Всякий раз при требовании АвтоКАДа ввести определенный тип (например, точку или масштабный коэффициент) может применяться выражение этого типа или функция АвтоЛИСПа, вводящая в результате этот тип. 1.2 Вычислитель языка АвтоЛИСП Вычислитель является основой интерпретатора каждого варианта ЛИСПа. Он берет строчку входных данных пользователя, вычисляет ее и выдает результат. В процессе вычисления АвтоЛИСПа участвуют: - целые, действительные числа; строчки; дескрипторы файла; встроенные функции - вычисляются по отношению сами к себе; - символы - вычисляются к значению их текущей компоновки; - списки - вычисляются согласно их первого элемента, если они вычисляются в: список (или пустой список); список предполагает быть определением функции, а функция вычисляется с применением значений остальных элементов списка в качестве параметров.
название внутренней функции (subrs); оставшиеся элементы списка проходят в subr как формальные параметры и вычисляются с помощью subr. Если в ответ на подсказку АвтоКАДа &quo ;Comma d:&quo ; вы вводите выражение на языке АвтоЛИСП, АвтоЛИСП вычислит выражение и напишет результат. Подсказка АвтоКАДа &quo ;Comma d:&quo ; вновь появится на экране. Если напечатано или прочитано из файла неправильное выражение, АвтоЛИСП выдаст следующую подсказку: > где - целое число, обозначающее сколько уровней левых скобок осталось незакрытыми. Если появилась эта подсказка, вы должны напечатать правых скобок для того, чтобы выйти из этого состояния. Общая ошибка - игнорирование заключенного в круглых скобках значка (&quo ;) в строке текста; в этом случае правые скобки будут интерпритированы как уже процитированные и не будут учитываться при изменении . Для того, чтобы исправить это положение, напечатайте перед правыми скобками кавычки. 1.3 Лексические условные обозначения Процедура ввода АвтоЛИСПа имеет несколько форм. Ее можно проделать следующим образом: находясь в АвтоКАДе напечатать вызов с клавиатуры; прочитать из ASCII файла или из строчечной переменной. В любом случае необходимо следующее: - имена символов могут состоять из любого сочетания печатных характеристик,кроме следующих: ( ) . ' &quo ; ; - имя символа или числовой константы будут завершаться следующими знаками: ( ) ' &quo ; ; (промежуток) (конец линии) - выражения могут состоять из многочисленных линий; - многочисленные промежутки между символами эквивалентны единичному промежутку. Пока не требуется смещение, вы можете применять их для придания ясности структуре ваших функций; - символы и имена функций (subrs) не чувствительны к регистрам в АвтоЛИСПе. Имена символов могут и не начинаться с цифры; - константы целых чисел могут начинаться с необязательных знаков &quo ; &quo ; или &quo ;-&quo ;. Как упоминалось ранее, они находятся в диапазоне от -32768 до 32767; - константы действительных чисел содержат один или более цифровых разрядов, сопровождаемые точкой десятичной дроби, после которой следуют один или несколько цифровых знаков, например &quo ;.4&quo ; не рассматривается как действительное число, правильно будет &quo ;0.4&quo ;. Аналогично,&quo ;5.&quo ; недействительно, правильно - &quo ;5.0&quo ;. Действительные числа могут применяться в научных записях т.е. могут встретиться необязательное &quo ;е&quo ; или &quo ;Е&quo ;, сопровождаемое цифровым показателем; - буквенные строчки - последовательность символов, заключенная в кавычки. Внутри строки, взятой в кавычки, символ ( ) означает возможность включения контрольных символов. Рассмотрим следующие текущие коды: означает символ &quo ; &quo ; e означает выход означает новая строка r означает ввод означает табуляцию означает символ, чей восьмиричный код - Например, на новой линии появится следующая подсказка: (promp &quo ; E er firs poi : &quo ;) - единичный цитируемый символ может применяться как сокращение функции QUO E. Так, 'foo эквивалентно (quo e foo) - комментарии, взятые из дисковых файлов, могут быть включены в программы АвтоЛИСПа.
Комментарии начинаются с двоеточия и продолжаются до конца строки. Например, : his e ire li e is a comme :Эта полная строка - комментарий (se q area ( pi r r )) :Compu e area of circle :Рассчитайте площадь круга 1.4 Условные обозначения примечаний Это справочное пособие применяет определенные условные обозначения для документирования режима функций. Например, (moo .) строка цифра Имя функции показано таким, каким вы должны его ввести. Заключенные в кавычки элементы данных, следующие за именем функции, определяют количество и тип параметров, предполагаемых функцией. В этом промере функция &quo ;moo&quo ; имеет два необходимых параметра: строка и цифра. Эллипсис (&quo ;.&quo ;) определяет, что к функции могут быть присоединены дополнительные цифровые параметры. Не включайте в строку скобки или эллипсисы, если вы снабжаете функцию ссылками. Вызов данного формата функции &quo ;moo&quo ; показан выше; для функции &quo ;moo&quo ; будут действительными следующие ссылки: (moo &quo ;Hello&quo ; 5) (moo &quo ;Hi&quo ; 1 2 3 ) Следующие примеры не соответствуют требуемому формату и приведут к ошибкам: (moo 1 2 3 ) (первый параметр должен быть строкой) (moo &quo ;Hello&quo ;) (должен быть хотя бы один цифровой параметр) (moo &quo ;do&quo ; '(1 2)) (второй параметр должен быть строкой,а не перечнем) Когда необязательный параметр может возникнуть один раз, без повторений, он заключается в квадратные скобки (&quo ;) Здесь функция &quo ;foo&quo ; предполагает один строчечный параметр и принимает один необязательный цифровой параметр. Например, для функции &quo ;foo&quo ; будут действительны следующие вызовы: (foo &quo ;ca ch&quo ;) (foo &quo ;ca ch&quo ; 22) В этом примере показаны неправильные вызовы: (foo 44 13) (первый параметр должен быть строчечным) (foo &quo ;foe&quo ; 44 13) (слишком много параметров) 1.5 Изменения и расширения Обработка ошибки Если АвтоЛИСП сталкивается с ошибкой во время вычисления, он выдает сообщение следующей формы: error: ex где ex - описание ошибки. Если установлена функция &quo ;ERROR&quo ; (не ноль), АвтоЛИСП,вместо выдачи сообщения, выполняет эту функцию (&quo ; ex &quo ;- ее единственный параметр). Если&quo ;ERROR&quo ; не установлена, или граничит с нулем, вычисление АвтоЛИСПа останавливается, а на экране появится обратный ход вызова функции и ее вызывающей программы до 100 уровней вглубь. Глава 2 Установка АвтоЛИСПа 2.1 Требования Выпуск формата АвтоЛИСП снабжается любой копией Автокада. Никаких специальных установок не требуется. Файл &quo ;acadl.ovl&quo ; на рабочей дискете является оверлеем АвтоЛИСПа в АвтоКАДе. Одна из рабочих дискет АвтоКАДа содержит файл &quo ;readme.doc&quo ;. Просмотрите этот файл; он содержит самые последние изменения и корректировки в документации АвтоКАДа и АвтоЛИСПа. 2.2 Автоматические функции - файл &quo ;acad.lsp&quo ; Начиная сеанс работы графического редактора АвтоКАДа, АвтоЛИСП загружает файл &quo ;acad.lsp&quo ; (если такой существует). На этом файле вы можете задать определения наиболее часто используемых функций и они будут автоматически высчитываться при редактировании чертежа.
Скобочные конструкции могут быть вложенными. 1.10 Элементы программирования оболочки В предыдущих главах мы рассматривали язык оболочки с точки зрения, в основном, непосредственного исполнения вводимых команд. Теперь взглянем на него под другим углом: как на универсальный язык программирования, а на оболочку — как на интерпретирующую реализацию этого языка. От универсального языка программирования ожидаются: средства описания структур данных (переменные), средства вычисления выражений и присвоения их значений переменным, средства организации последовательного, условного и циклического исполнения, средства декомпозиции программы на подпрограммы. Все эти средства присутствуют в стандартном языке оболочки[61]. Его особенностью явяется возможность использовать команды (стандартные и нестандартные) ОС в качестве своего рода «вызовов функций» (хотя и определение, и вызов функции также присутствуют в языке как отдельный механизм). При попытках реализовать «простые программы из учебников» на языке оболочки результат часто оказывается не самым изящным
1. Применение языков программирования высокого уровня для реализации численных методов
2. Математические методы и языки программирования: симплекс метод
3. Язык программирования Паскаль и ветвление
4. Разработка игровой программы на языке программирования Turbo Pascal
9. Контроль, как функция управления
10. Особенности программированного обучения
11. Государственное регулирование как функция управления
12. Методические перспективы реализации новых технологий обучения движениям и овершенствования в них
13. Маркетинг - специфическая функция управления
14. Контроль как функция управления
15. Языки программирования, их классификация и развитие
16. Общие сведения о языке программирования Qbasic
18. Технологии и языки программирования
19. Использование языка программирования Visual Basic для решения математических задач
20. Выбор и анализ функций управления
21. Конструирование программ и языки программирования
25. Проектирование и разработка классов средствами языка программирования С++Builder6/0
28. Создание 3D-графики средствами языка программирования Visual Basic
30. Функции управления реестром Windows
33. Функции управления производством
34. Мотивация - функция управления
35. Мотивация – как функция управления
36. Планирование как функция управления
37. Принципы и функции управления персоналом
42. Функции управления применительно к таможенным органам
43. Анализ прибыли как одной из основных функций управления
44. Реализация функций языка в ФЗ "О прокуратуре РФ"
45. Реализация идей поликультурного образования при обучении английскому языку в начальной школе
47. Цикл-метод обучения. (Методика преподавания эстонского языка)
48. Роль поэзии в обучении немецкому языку
49. Билеты по методике обучения иностранным языкам
50. Контроль в обучении поисковому чтению на среднем этапе обучения иностранного языка в школе
51. Глагольное управление в селькупском языке
52. Языки и технология программирования. Начальный курс /Pascal/
53. Аналитический обзор книги "Программирование на языке ассемблера..."
57. Учебное сотрудничество как средство оптимизации обучения иностранному языку
59. Интернет в обучении иностранному языку
60. Обучение письменной речи на французском языке в старших классах
61. Ролевые игры на уроках английского языка на основной ступени обучения в средней школе
62. Билеты по методике обучения иностранным языкам
63. Организационно-педагогические условия реализации эвристического обучения на уроках математики
64. ВЕДУЩИЕ ФУНКЦИИ И СТРУКТУРА ПРОЦЕССА ОБУЧЕНИЯ
66. Математическое программирование и моделирование в экономике и управлении
67. Экономические функции государства в экономике и инструменты их реализации
69. Е. Д. Поливанов и обучение русскому языку в национальной школе
74. Функция и поле речи и языка в психоанализе
75. Управление профессиональным обучением кадров
76. Виды формы и функции контроля в обучении
77. Использование новых информационных технологий в обучении языку и культуре
78. Коллективная форма организации начального обучения русскому языку
79. Обучение детей английскому языку с 1 класса средней школы
80. Педагогическая система обучения иностранных языков А. А. Деркача
82. О конструктивной функции методов обучения
84. К вопросу о раннем обучении иностранному языку
85. Функции государства и формы их реализации
89. Игра, ее назначение в обучении иностранному языку детей младшего возраста
90. Методика обучения монологической и диалогической речи на начальном этапе изучения английского языка
91. Новые технологии в обучении иностранному языку
92. Тестовый контроль в процессе обучения иностранному языку в средней общеобразовательной школе
93. Ознакомление с основами программирования на языке Си
94. Программирование на языках высокого уровня
95. Дистанционное обучение иностранному языку
96. Языки и технологии программирования
98. Процедуры и функции в языке Паскаль. Сфера действия описаний
99. Современные подходы к управлению продажами и их реализация на практике