Каков наиболее эффективный метод преобразования устаревшего кода AutoLISP в C#?

Я участвую в проекте, который в основном работает в AutoCAD, по разработке и производству сборных строительных элементов, таких как кровельные фермы. Одна из наших целей - изменить программу, написанную на LISP, которая предназначена для проектирования кровельных ферм. Мы должны переписать код LISP на C# и постепенно внедрить его в текущие библиотеки, которые они создали.

Моя проблема в том, что мне было поручено создать элементарный конвертер LISP в C#. После некоторого исследования (поскольку результаты Google быстро показывают, что такого не существует под рукой), я пришел к вопросу о том, какой способ преобразования этого унаследованного кода был бы более эффективным. Было бы лучше взять куски кода LISP для анализа и переписать в C#, или мне следует продолжить разработку элементарного конвертера для кода AutoLISP?

2 ответа

Решение

Вы должны взять куски кода LISP и переписать на C#.

Даже если бы было проще написать интерпретатор LISP общего назначения на C#, чем переписать LISP на C# (что крайне маловероятно), LISP, вероятно, выполняет команды AutoCAD, как если бы вы вводили в командной строке AutoCAD, вместо этого выполняя ObjectARX. путь. Таким образом, вам также необходимо преобразовать команды для использования ObjectARX API.

C# - это скомпилированный объектно-ориентированный язык программирования, тогда как AutoLISP - это интерпретируемый язык, ориентированный на выражения. Поэтому никогда не будет действительно простого способа преобразования одного в другое без колоссальных усилий.

Стоит отметить, что AutoLISP обладает гибкостью, позволяющей быстро изменять его без необходимости перекомпиляции. Преимущество использования встроенного C# в процессе заключается в том, что он чрезвычайно быстр по сравнению с аналогичным подходом LISP. Я обнаружил, что есть хорошая середина для поддержания гибкости LISP со скоростью и мощью C#, которая использует флаг команды LispFunction и тип ResultBuffer в собственном API.NET.

Другие вопросы по тегам