|
Автор канал по Лиспу
25 / 23 / 2
Регистрация: 10.08.2021
Сообщений: 357
|
|
Лисп в качестве встроенного языка01.02.2022, 23:09. Показов 2672. Ответов 32
Метки нет (Все метки)
Здравствуйте, уважаемые коллеги!
Все мы наверное слышали о встроенных в программу языках программирования. Лисп применяется в таких программах как ИМАКС, АвтоКАД, ещё вроде как в ГИМПе применяют Scheme. Программа на Лиспе -это ведь по сути полноценная реализация языка обвешанная пользовательскими функциями. Следовательно - теоретически мы можем легко встроить командную строку в программу, что сказочно облегчит написание макросов и плагинов. У меня появился ряд вопросов. 1) Делал ли так кто-нибудь из вас? 2) Как можно сделать это самому? 3) Как не дать пользователю поломать систему? 4) Известны ли вам примеры уже готовых решений? 5) Как подобное делают в других языках? Заранее спасибо!
0
|
|
| 01.02.2022, 23:09 | |
|
Ответы с готовыми решениями:
32
Лексический анализатор языка лисп Переполнение стека встроенного языка на сервере Можно ли где то скачать описание встроенного языка 1с 8.3 |
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 03.02.2022, 16:28 | |
|
В той ссылке, если что, написано, что CL - too large, т. е. не очень минималистичен для встраиваемого языка расширений. Это, конечно, так.
В мире Java имена пакетов тоже длинные, но их обычно не выписывают - импортируют, что требуется. В принципе, для лиспа это тоже хорошая идея. Если верить Кенту Питману, пакеты не проектировались с идеей часто использовать двоеточия. В принципе, пакеты по стандарту можно переименовывать, в том числе добавляя/убирая никнеймы. Впрочем, реализации широко поддерживают нестандартные локальные никнеймы. В лиспе приходится экспортировать больше символов, чем в языках с "вызовами через точку" - по очевидной причине. Поэтому символам приходится готовиться к тому, что им придётся жить вместе с многими другими символами, имён которых они не знают - поэтому глобальные имена приходится давать более длинные. Но при наличии автодополнения это не проблема.
0
|
|
|
Автор канал по Лиспу
25 / 23 / 2
Регистрация: 10.08.2021
Сообщений: 357
|
|
| 03.02.2022, 16:36 [ТС] | |
|
0
|
|
|
331 / 200 / 9
Регистрация: 12.05.2015
Сообщений: 334
|
||
| 03.02.2022, 21:07 | ||
|
Разные подходы можно увидеть в loop, format, квазитировании. Одновременно можно задуматься на тему уникальности изобретенного велосипеда в каждой из них. В scheme есть syntax-rule|syntax-case CL стандартизировался для переноса существующего коммерческого прикладного кода между изолироваными до него платформами. Поэтому встроенные навороты в нем сделали максимально контекстно-свободными чтобы избегать конфликтов c уникальных синтаксическим сахаром разных продуктов в разных предметных областях. С другой стороны теперь каждый разработчик проекта поменьше максимы сталкивается с дилеммой из крайностей - повторить привычный подход из стандартной библиотеки или написать и самостоятельно поддерживать еще один loop-like. В рамках полумер можно еще привести стрелки (arrow) характерные тем что проще повторить ставшее стандартом в clojure чем договорится внтури CL
0
|
||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
||
| 03.02.2022, 21:52 | ||
|
0
|
||
|
Заблокирован
|
||
| 04.02.2022, 09:10 | ||
|
0
|
||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|||
| 04.02.2022, 12:29 | |||
)
0
|
|||
|
Заблокирован
|
|||
| 04.02.2022, 13:16 | |||
|
Типы String и Vector реализуют метод push. Соответственно для того чтобы конфликтов не возникало нужно писать полный путь, либо импортировать модули и писать что-то типа Satring: ush() и Vector: ush()
0
|
|||
|
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
|
|
| 04.02.2022, 13:25 | |
|
Раста не знаю. Там что, чтобы написать myVector.push(0), необходимо отдельно явно импортировать push?
0
|
|
|
Заблокирован
|
||
| 04.02.2022, 13:41 | ||
|
0
|
||
|
Автор канал по Лиспу
25 / 23 / 2
Регистрация: 10.08.2021
Сообщений: 357
|
|
| 04.02.2022, 14:02 [ТС] | |
|
helter, Гай, Господа программисты, мы кажется немного отступаем от темы, думаю стоит обсудить этот вопрос отдельно.
0
|
|
|
Заблокирован
|
|||||||
| 04.02.2022, 14:26 | |||||||
0
|
|||||||
|
Автор канал по Лиспу
25 / 23 / 2
Регистрация: 10.08.2021
Сообщений: 357
|
|
| 04.02.2022, 14:34 [ТС] | |
|
Внимание! Для обсуждения громоздкости Лиспа создана отдельная тема: Почему говорят, что Common Lisp громоздкий?
Пожалуйста, давайте немного оглянёмся назад и кратко, тезисно повторим в новой теме всё сказанное тут, последовательно и с самых основ.
0
|
|
| 04.02.2022, 14:34 | |
|
Созданеи элементов справочника средствами встроенного языка. 1с 8.1 Как Заполнить Таб. Часть В 1с 8 При Помощи Встроенного Языка Имеются следующие описания: Язык= (Паскаль, Ява, Бейсик, Фортран, Лисп). По русскому названию языка вывести английский Сохранение встроенного Word документа в Excel в качестве нового документа javascript в качестве main языка? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка нескольких штампов электронной подписи в строго определенных местах файла docx
ВладимирСамохин 19.07.2026
(В!) Работа с Электронной подписью - это неотъемлемая часть современного документооборота. Но что делать, если нужно поставить несколько штампов электронной подписи в строго определенных местах. . .
|
сукцессия 35. Научная статья о проделанной работе
anaschu 19.07.2026
Написал в формате латекс и пдф
|
Вангую, что это не пройдёт модерацию, и на неделе я запущу свой сервер.
Hrethgir 19.07.2026
Эта публикация сейчас в песочнице и ждёт приглашения.
https:/ / habr. com/ ru/ sandbox/ 295048/
начало и оглавление
-
Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование. . .
|
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
|
|
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
|
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано
Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
|
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0)
Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона
Уважаемые коллеги!
В продолжение. . .
|
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии
Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
|