|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Интерпретатор lisp на C# или F#
-
Москва
Регистрация: 24.07.2005
Сообщений: 1,335
|
||
Просмотров: 5282
|
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Я надеюсь это вообще не будет развиваться,
вместо этого используй атрибут LispFunction, регистрируй как положено в соответствии с версией Автокада и вперед Для интересу функция от TonyTanzillo: Код:
Последний раз редактировалось Олег (jr.), 09.03.2013 в 16:05. Причина: добавлен пример |
|||
![]() |
|
||||
2 Sleekka
Цитата:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Первой вопрос не такой. Как обычно первый вопрос - зачем? Заменить Autolisp/VisualLisp в AutoCAD? Или это отдельный интерпретатор, с AutoCAD не связанный?
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
Только Александр Ривилис усомнился. Конечно же я знаю как на Net написать пользовательскую функцию, Андрей я же публиковал видео как эти функцию портировать под брикс ![]() Тема называется Интерпретатор! следовательно задача состоит в том, чтобы написать свой .exe который может парсить лисп код и выполнять этот код, т.е. требуется реализация СТАНДАРТНЫХ lisp-функций + парсинг. Теперь отвечу на вопрос зачем все это нужно: 1) не секрет что наработок по реально рабочему софту на лисп намного больше чем на Net. Да в Net - существуют привлекательные библиотеки которые могут все по аналитической геометрии и векторной алгебре, но свое то оно роднее, та математика по определению например (пересечение плоскостей), которая работала в твоей программе и годами доказала свою отказоустойчивость и скорость работы (потому что не нужен общий случай а можно ускорить реализацией частного случая) я уж не говорю если эти алгоритмы не точные а итерационные (таких библиотек можно и не найти). И вот требуется допустим портировать свое приложение для Microstation, или еще что нибудь, да тот же Ревит. 2) Автодеск не улучшает и не развивает лисп реализацию, возможно, что некоторые лисп функции могли бы гипотетически работать чуть быстрее. Мне собственно не нужно объяснять как это все делается, я спросил может кто-то больше меня в этом крутится и видел подобные наработки в этом направлении. Есть как бы Автокад-консоле, но как там дела с лицензиями непонятно плюс отсутствие vl функций, а я использую не так много лисп функций, можно было бы и свой интерпретатор написать/заказать. Собственно я знаю C# на начальном уровне, а вот F# я не знаю совсем слышал только что это функциональный язык от мелкомягких. Родился вопрос если задаться целью отпарсить - ясен пень C#, потом после парсинга нужно выполнить функции. Для этого нужно сделать реализацию лисп функций. Возьмем например конструкцию вида: Код:
Последний раз редактировалось Sleekka, 09.03.2013 в 20:58. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Весело, уже что-то.
посмотрел их демонстрашку, но что-то я скептически отношусь к таким конвертациям, скорее всего она нормально разбирает только код опр. автора. Но ссылка все равно полезная бесспорно, хостятся только непойми где... на болоте по этому поводу ничего не проскакивало? |
|||
![]() |
|
||||
2 Sleekka
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 09.03.2013 в 23:40. |
||||
![]() |
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Цитата:
Цитата:
![]() |
|||
![]() |
|
||||
А я еще хуже. Достал меня автор этого "компилятора". Да и и Autodesk достал - требует чтобы срочно они у него этот "компилятор" купили. И это при том, что элементарных вещей в ObjectARX не знает и мысль свою выразить не может.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
А автор кто? Что-то не нашёл я информации об этом.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Я периодически копаю (но пока до версии 0.9 бета еще не готов) - задумка очень проста, но возращаюсь я к ней с большими интервалами (когда свободен и есть время "надолго" отвлечься), хотя "предверсию" уже практически использовал - есть мысль расширить функционал лиспа на вызов .Net Api как "своих" так и внешних, но не так "убого" как это сделанно с COM - а "по человечески", (типо автоматического преобразования (MessageBox:Show "Test") в (net-im "MessageBox" "Show" "Test") - но это самый простой пример) чтоб автоматически преобразовывались лисп функции в делегаты (там где это подразумевается), автоматически преобразовывал "символы" в вызов соответствующих функций, с подобием замыканий (пока, как сделать нормальные, не придумал), GC неиспользуемых объектов и там еще много задумок, пока они все ну очень сыро, но реализованны. Как "разражусь" до чего-то более-менее вменяемого опубликую, пока рано - ибо еще возможно "конструктивные" переделки. Смысл всего этого - лично для меня очень прост - весь рабочий код пишется на лиспе, а для новый версий Автокада понадобится только перекомпилировать NetLisp(рабочее название проекта), 2 момент - возможность динамической (REPL) работы c .Net Api - без перезагрузки автокада.
з.ы. пишу его на F# и AutoLisp.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Dragne Adrian из Румынии.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Применительно к AutoCAD - проще, надёжней и полезней изучить целевой язык и писать непосредственно на нём, вместо того, чтобы изобретать интерпретаторы (имхо). То, что уже написано на LISP и работает, вовсе не обязательно переписывать на др. языки, если в этом нет объективной необходимости.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу) | Red Nova | LISP | 5021 | 16.06.2025 17:50 |
Lisp. Не вставляет значения в базу access. | Zaghim | LISP | 2 | 11.07.2012 14:29 |
Умер разработчик языка программирования Lisp | andr_g | LISP | 1 | 27.10.2011 08:36 |
{Конкурс} Lisp. Задачки для студентов | gomer | LISP | 10 | 05.01.2011 16:33 |
загрузка DOS прог через LISP | Gaa | LISP | 15 | 12.08.2005 19:19 |