Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Вниз

Статья "Программирование математических приложений"   Найти похожие ветки 

 
bizonwar   (2004-11-04 11:10) [0]

Набрел случайно на сабж в статьях этого сайта. Хотелось бы услышать ваше мнение по содержанию статьи. Конкретно, насколько оправдано написание различных распознавателей и анализаторов синтаксиса для динамического вычисления формул.


 
pasha_golub ©   (2004-11-04 11:29) [1]

Оправдано настолько насколько это необходимо. Вопрос конкретней поставь.


 
Jeer ©   (2004-11-04 11:31) [2]

Об интерпретаторах слышал что-нибуль ?


 
bizonwar   (2004-11-04 11:32) [3]

Попробую сформулировать более четко на примере. В БД хранятся формулы, по которым приложение должно выполнять расчет. Нужно ли, по вашему мнению, пользоваться методами, описанными в статье.


 
Jeer ©   (2004-11-04 11:34) [4]

Придумай свои методы.

А зачем в БД формулы ?
Пользователи придумывают все новые и новые ф-лы, а приложение должно их выполнять ?


 
bizonwar ©   (2004-11-04 11:36) [5]

> Jeer ©   (04.11.04 11:34) [4]
В принципе, пример взят с потолка. Хотя, скорее всего, такая ситуация может возникнуть где-то в бухгалтерии, т.к. наши расчет налогов может (часто) меняться законодательно.


 
Григорьев Антон ©   (2004-11-04 11:44) [6]

Нет, не нужно. Когда-то тут была ветка "Калькулятор", в которой осуждался такой подход к написанию парсеров - без теории. Юрий Зотов тогда хорошо высказался. В т.ч. и по поводу этой статьи. Автор статьи сам пишет по поводу возможных проблем. А вот если бы парсер писался по-человечески, таких проблем не было бы.


 
bizonwar ©   (2004-11-04 11:48) [7]

> [6]
Т.е., Вы считаете, что парсер нужен в любом случае?


 
Григорьев Антон ©   (2004-11-04 11:50) [8]


> bizonwar ©   (04.11.04 11:48) [7]
> > [6]
> Т.е., Вы считаете, что парсер нужен в любом случае?


Что значит "в любом случае"? Например, при реализации пинга на базе ICMP парсер не нужен.


 
bizonwar ©   (2004-11-04 11:52) [9]

Антон, я прошу прощения, но это буквоедство. Очевидно, что "в любом случае" для решения подобного рода задач.


 
Jeer ©   (2004-11-04 12:09) [10]

Почему - нет ?
Вполне нормальное решение.


 
Григорьев Антон ©   (2004-11-04 12:11) [11]


> bizonwar ©   (04.11.04 11:52) [9]

Ну пропустил я [3], прошу прощения.

А как вы предполагаете вычислять формцлы без парсера? Я такого способа не знаю. Тут вопрос может стоять только так: самому писать парсер или искать готовый. Или вообще отказаться от вычисления формул.

Вообще, вопрос выглядит примерно так: "Мне нужно сложить два числа. Обязательно ли мне пользоваться операцией сложения?"


 
Игорь Шевченко ©   (2004-11-04 12:13) [12]

Jeer ©   (04.11.04 11:34) [4]


> А зачем в БД формулы ?
> Пользователи придумывают все новые и новые ф-лы, а приложение
> должно их выполнять ?


Примерно так. Как в Excel


 
Jeer ©   (2004-11-04 12:14) [13]

Игорь Шевченко ©   (04.11.04 12:13) [12]

:))


 
bizonwar ©   (2004-11-04 12:18) [14]

>[11]
Вы совершенно правы.
Вопрос стоит так: самому писать парсер или искать готовый.
От вычисления формул отказаться нельзя.
Можно даже расширить задачу. Как быть, если требуется снабдить приложение неким внутренним языком.
Если пойти по пути написания своего транслятора (в общем случае), то мы упремся в проблему расширения грамматики. Например, в книге "применение шаблонов JAVA" С.Стелинга есть совет реализовывать в классах все терминальные и нетерминальные грамматические узлы. Но это приемлимо только для языка с небольшим количеством грамматических правил.


 
Danilka ©   (2004-11-04 12:21) [15]

[14] bizonwar ©   (04.11.04 12:18)
Кстати, для СУБД которые позволяют работать с динамическими запросами (Орокол, Фиребирд1.5, про другие точно не знаю), вобщем-то, в ряде случаев можно и без самописных парсеров обойтись. :))


 
bizonwar ©   (2004-11-04 12:24) [16]

> Danilka ©   (04.11.04 12:21) [15]
Это одно из решений. Оно,в принципе, подходит для расчета формул. Но для реализации некоторых внутренних скриптов средств СУБД явно не хватит.


 
Danilka ©   (2004-11-04 12:39) [17]

[16] bizonwar ©   (04.11.04 12:24)
Не знаю что подразумевается под реализацией внутренних скриптов, но у меня формы баланса и налоговые регистры прекрасно в Орокле рассчитаются, по формулам, которые юзеры вводят. :))


 
Jeer ©   (2004-11-04 12:41) [18]

Так возьми (купи) FastScript.


 
bizonwar ©   (2004-11-04 12:43) [19]

>Danilka ©   (04.11.04 12:39) [17]
Честно говоря, не знаком с 1С, но вроде там есть, какой-то свой встроенный язык?
Я имел ввиду нечто подобное, по смысу, а не по реализации.


 
Danilka ©   (2004-11-04 12:44) [20]

[19] bizonwar ©   (04.11.04 12:43)
Это не на 1С. Своя бухгалтерия в составе КИС. Дельфи+Орокол.


 
Danilka ©   (2004-11-04 12:48) [21]

[19] bizonwar ©   (04.11.04 12:43)
Если нужен встроенный язык, то, либо [18] Jeer ©   (04.11.04 12:41)
либо:
http://www.delphikingdom.com/helloworld/activescript.htm
Второй вариант мне более симпатичен. :))


 
bizonwar ©   (2004-11-04 12:49) [22]

>Jeer ©   (04.11.04 12:41) [18]
FastScript - замечаельно средство. Но оно стоит денег.

Есть другой вариант. Я хотел описать его в комментарии к статье, но, к сожалению, не нашел, где можно добавить комментарии к статьям.

В Windows, (я проверял в Win2k, про более ранние версии сказать не могу), в папке System32 лежит файл MSScript.ocx
На него можно добавить референс и юзать сколько угодно.
Он выполянет скрипты на VB и JScript.
По сравнению с FastScipt имеется недостаток - ни о какой многоплатформенности речи быть не может.


 
bizonwar ©   (2004-11-04 12:50) [23]

Ок. Не заметил [22]


 
bizonwar ©   (2004-11-04 12:51) [24]

:-)))
Точнее, не заметил [21], когда писал [22]


 
Jeer ©   (2004-11-04 13:19) [25]

Если просто вычислитель формул, то их много с открытыми кодами
CalxExpress AidAim Software
Martin Lafferty PrExpress
TFatExpression by Gasper Kozak
CajScript InnerFuse (интерпретатор Паскаля, кстати)


 
bizonwar ©   (2004-11-04 13:36) [26]

Jeer ©   (04.11.04 13:19) [25]
Спасибо. Это я учту на будущее.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.033 c
14-1099494164
yanker
2004-11-03 18:02
2004.11.21
Удаление версии файла dll


1-1099675963
Ty3uk
2004-11-05 20:32
2004.11.21
любой файл в звук и обратно


1-1099926870
Shadow-st
2004-11-08 18:14
2004.11.21
Процедуры


3-1098641955
Robin Hood
2004-10-24 22:19
2004.11.21
Обновление базы данных с помощью UpdateSQL


4-1097339762
Clip
2004-10-09 20:36
2004.11.21
Clipboard (Unicode) -> Clipboard/File (Win-1252)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский