Re: Обработка введенного кода C++ во время выполнения прилож
От: Serg27  
Дата: 15.10.10 12:50
Оценка: 7 (3) +1
Здравствуйте, hochucho, Вы писали:

H>Задача следующая: в приложении есть текстовое поле, во время выполнения приложения хотелось бы вводить в это поле код C++ (новые функции, объявлять переменные), чтобы потом, эти функции обрабатывались численными методами.

H>С чего начать, где почитать?
Посмотрите как устроена ЦЕРНовская система обработки данных ROOT (http://root.cern.ch). В ней используется интерпретатор C++.
Может Вам ее и использовать — поимеете неплохие возможности по научной графике?
Re: Обработка введенного кода C++ во время выполнения прилож
От: FR  
Дата: 15.10.10 15:00
Оценка: 6 (2)
Здравствуйте, hochucho, Вы писали:

H>Задача следующая: в приложении есть текстовое поле, во время выполнения приложения хотелось бы вводить в это поле код C++ (новые функции, объявлять переменные), чтобы потом, эти функции обрабатывались численными методами.

H>С чего начать, где почитать?

Кроме питона можно еще взять lua будет проще если только для небольших строчных скриптов, и быстрее работать (http://luajit.org/).
Еще как вариант взять LLVM (http://llvm.org/) и компилировать уже самому под него.
Re[2]: Обработка введенного кода C++ во время выполнения при
От: std.denis Россия  
Дата: 15.10.10 12:58
Оценка: 4 (1)
SEV>но как его подлинковать к запущенной программе человечеству неизвестно
ну зачем же так категорично "человечество" придумало libtcc

SEV>PS. Забыл, можно воспользоваться динамическими библиотеками (подгружать их во время исполнения).

SEV>Но компилировать во время исполнения — такого ни разу не видел.
http://bellard.org/tcc/tcc-doc.html#SEC22
Re: Обработка введенного кода C++ во время выполнения прилож
От: ShubinEV Россия http://erladvisor.blogspot.de/
Дата: 15.10.10 11:57
Оценка: 2 (1)
Здравствуйте, hochucho, Вы писали:

H>Задача следующая: в приложении есть текстовое поле, во время выполнения приложения хотелось бы вводить в это поле код C++ (новые функции, объявлять переменные), чтобы потом, эти функции обрабатывались численными методами.

H>С чего начать, где почитать?

В программу можно встроить интерпретатор скриптового языка. Можно вызывать shell функцией system.
Если нужны функции и т.д. лучше Python. Есть библиотек Boost.Python, но можно и без нее обойтись.
С C++ сложнее — это компилируемый язык. Возможность в runtime компилировать новый код есть, но как его подлинковать к запущенной программе
человечеству неизвестно. Можно даже перелинковать приложение и перезапуститься, но
1) это врядли то, что вам требуется;
2) это жуткий изврат.

PS. Забыл, можно воспользоваться динамическими библиотеками (подгружать их во время исполнения).
Но компилировать во время исполнения — такого ни разу не видел.
Обработка введенного кода C++ во время выполнения приложения
От: hochucho  
Дата: 15.10.10 11:46
Оценка:
Задача следующая: в приложении есть текстовое поле, во время выполнения приложения хотелось бы вводить в это поле код C++ (новые функции, объявлять переменные), чтобы потом, эти функции обрабатывались численными методами.
С чего начать, где почитать?
Re[2]: Обработка введенного кода C++ во время выполнения при
От: hochucho  
Дата: 15.10.10 12:39
Оценка:
Здравствуйте, ShubinEV, Вы писали:

SEV>Здравствуйте, hochucho, Вы писали:


H>>Задача следующая: в приложении есть текстовое поле, во время выполнения приложения хотелось бы вводить в это поле код C++ (новые функции, объявлять переменные), чтобы потом, эти функции обрабатывались численными методами.

H>>С чего начать, где почитать?

SEV>В программу можно встроить интерпретатор скриптового языка. Можно вызывать shell функцией system.

SEV>Если нужны функции и т.д. лучше Python. Есть библиотек Boost.Python, но можно и без нее обойтись.
SEV>С C++ сложнее — это компилируемый язык. Возможность в runtime компилировать новый код есть, но как его подлинковать к запущенной программе
SEV>человечеству неизвестно. Можно даже перелинковать приложение и перезапуститься, но
SEV>1) это врядли то, что вам требуется;
SEV>2) это жуткий изврат.

SEV>PS. Забыл, можно воспользоваться динамическими библиотеками (подгружать их во время исполнения).

SEV>Но компилировать во время исполнения — такого ни разу не видел.

Спасибо.
С Python до сих пор не сталкивался.
Скажу пару слов, что в идеале должно получиться, чтобы понять, Python — это то, что нужно, или не стоит тратить время на его изучение, а для решения задачи выбрать другой путь.
В приложении создаются объекты, в которых создаются свои переменные (поддержка всех стандартных типов + векторы, матрицы), функции от этих переменных, в терминах этих переменных пишутся системы уравнений (как алгебраические, так и дифференциальные). Далее из этих объектов строим систему и решаем численные методы.
В принципе синтаксис написания функций может быть любой.

До сих пор не имел никакого понятия, как это все реализовать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.