bugmaker писал(а):
Удивительно странное средство разработки выбрано для такой задачи. Что нужно от него:
поддержка списков и деревьев на уровне языка. Для парсинга.
вычисления с произвольной точностью. Понятно зачем.
динамическая компиляция. Для большей скорости вычисления оттранслированных формул.
максимальная производительность. Иначе быстрее будет на бамашке посчитать
Ни то ни другое выбранным инструментарием не поддерживается. Особенно порадовало, что тянете с собой такого слонопотама, а существующие характеризуете как
Цитата:
несколько "громоздкие"
Хм. Я, конечно, прошу прощения, если написал свой первый пост несколько непонятно. Цитата в начале поста не моя, я же на нее ниже ссылку привел ((С)
http://www.delphikingdom.com/asp/viewit ... logid=1019). Там проект создавался на Delphi, я же взял оттуда только идею создания анализатора с использованием компиляции. Я ничего не имею против MatLab и MatCad, просто задачу я себе поставил такую - создать анализатор под .Net, так как я планирую его потом использовать в программном комплексе, который пишется тоже под .NET. Что же до остального, то я думаю, что будет лучше, если я подробней опишу работу программы. Сделаю это в следующем посте.
bugmaker писал(а):
Советую пересмотреть, в сторону например CMUCL или SBCL. Полистайте также готовые проекты, там есть чему поучиться.
http://sourceforge.net/projects/maxima http://sourceforge.net/projects/octaveСпасибо, посмотрю.
VLarin писал(а):
А что мешает написать свой интерпретатор, используя готовые - на том же
www.codeproject.com их куча.
Спасибо за ссыку. Правда, я про этот сайт и раньше знал, но все равно спасибо. Я на нем действительно находил анализаторы формул на C#(где-то 5 штук), но ни один меня не устроил. Надо было поискать на других языках, это мой недочет. К тому же я написал не интерпретатор, а компилятор. Об этом в следующем посте.
VLarin писал(а):
Если нужны пользовательские функции - то это уже больше, чем простой парсер мат. выражений.
Так и есть.
VLarin писал(а):
Цитата:
Имена переменных не могут включать в себя имена функций
Это результат неправильного разбора строки - после имени функции идут скобки, после переменной нет, и по наличию скобок после символов [a-z A-Z _] обычно и выявлется, что в строке идет вызов функции.
Я уже говорил, что приведенные недостатки будут устранены.
VLarin писал(а):
И такой вопрос - зачем Вам вообще понадобился .NET Framework 2.0?
В уже упоминаемом мной разрабатываемом проргаммном комплексе по методам оптимизации необходимо было предусмотреть расширяемость проекта новыми методами оптимизации без изменения основного модуля и пользовательского интерфейса. Для этого было решено
классы всех методов реализовывать в качестве DLL-библиотек (не путать dll-библиотеки .NET с обычными), которые будут читаться из определенного места на жестком диске и динамически подключаться к проекту.
Да и вообще просто было интересно изучить новую технологию.
А именно 2.0 был выбран без особого умысла, просто если есть 2.0, то зачем использовать более ранние .NET Framework.
VLarin писал(а):
Парсер я бы вообще вынес в отдельную DLL для удобства его дальнейшего использования. И ему самому интерфейсные фичи не нужны, голая расчетная ДЛЛ.
Так и сделано, об этом в следующем посте.
VLarin писал(а):
По компиляторам и интерпретаторам лучше книги Ахо и Сети ничего не видел - книга есть
здесь.
Спасибо, скачал, буду читать.