Подтвердить что ты не робот

Язык сценариев для C/С++?

Есть ли язык сценариев для С++ (например, perl), который можно использовать для быстрой разработки и использовать какой-либо инструмент, который может конвертировать в программу C/С++ для повышения производительности для развертывания?

EDIT:
Основываясь на некоторых комментариях, позвольте мне уточнить вопрос. Я должен был бы преобразовать script в C/С++ программу или двоичный код без изменения моего script.

4b9b3361

Ответ 1

С помощью интерпретатора C/С++ вы можете использовать C/С++ в качестве языка сценариев

  • Ch: http://www.softintegration.com/

    Commmercial C/С++-переводчик со свободной стандартной версией. Поддерживает различные популярные библиотеки и инструментальные средства для окон.

  • CINT: http://root.cern.ch/drupal/content/cint

    Активно разработанный интерпретатор C/С++ с открытым исходным кодом (MIT). Разработано как часть среды ROOT на CERN, Используется многими физиками.

  • ccons: http://code.google.com/p/ccons/

    Интерактивная консоль C, в которой используется LLVM и ее новый C-интерфейс (clang). При активной разработке

  • UnderC: http://home.mweb.co.za/sd/sdonovan/underc.html

    Переводчик с открытым исходным кодом (LGPL) С++. Кажется, немного устарел (2002).


Примечание. До сих пор я пробовал только Ch и CINT. Я добавил ccons и UnderC, чтобы сделать список более полным.

Ответ 2

Вы можете попробовать Lua, довольно часто используемый с С++ в игровой индустрии. Он имеет небольшой объем памяти и довольно зрелый, имеет отличную библиотеку... просто попробуйте.

hm... Я не понимаю, чего вы хотите достичь: хотите ли вы найти язык сценариев, который каким-то образом волшебным образом преобразуется в источник С++? Или что вы действительно хотите - это просто вариант создания исполняемого файла из script? Если последнее - тогда вы можете попробовать py2Exe.

Ответ 3

Любой, кто интересуется языком сценариев, который (в основном) очень похож на С++, может захотеть взглянуть на angelscript ( ZLIB):

Библиотека скриптов AngelCode или AngelScript, как она известна, представляет собой чрезвычайно гибкую библиотеку межплатформенных сценариев, предназначенную для расширения возможностей приложений через внешние скрипты. Он был разработан с самого начала, чтобы быть простым в использовании компонентом, как для программиста приложений, так и для писателя script.

Были предприняты попытки разрешить стандартные функции C и методы С++ без необходимости использования прокси-функций. Приложение просто регистрирует функции, объекты и методы, с которыми скрипты должны работать, и ничего не нужно делать с вашим кодом. Те же функции, которые используются внутри приложения, также могут использоваться механизмом сценариев, что устраняет необходимость дублирования функций.

Для писателя script язык сценариев следует широко известному синтаксису C/С++ (с незначительными изменениями), но без необходимости беспокоиться о указателях и утечках памяти. Вопреки большинству языков сценариев, AngelScript использует общие типы данных C/С++ для более эффективной связи с хост-приложением.

Для получения дополнительной информации посетите: http://www.angelcode.com/angelscript/sdk/docs/manual/index.html

Ответ 4

Многие проекты объединяются, например. С++ и Python - см., Например, boost.python.

Я предпочитаю R и используйте Rcpp от R до С++.

В любом случае вы даете свой язык сценариев для прототипирования и легкий "клей" для С++ для производительности.

Ответ 5

pawn

pawn - простой, не имеющий языка 32-разрядный язык расширения с синтаксисом типа C. Пешечная "исходная" программа скомпилирована в двоичный файл для оптимальной скорости выполнения. Компилятор пешки выводит P-код (или байт-код), который впоследствии запускается на абстрактной машине. Скорость выполнения, стабильность, простота и малая занимаемая площадь были важными критериями дизайна как для языка, так и для абстрактной машины.

Этот язык очень симулятивный к синтаксису, поэтому любой, кто сделал какие-либо С++, c, С#, java, сможет прочитать его и просто попросить, чтобы ни один кодер не мог его прочитать. Этот язык в настоящее время используется повсюду, среди других сценариев, связанных с halflife 1 и halflife2.

Ответ 6

Существует новый пакет Chaiscript, который предназначен для С++. Это относительно новое и еще не полностью стабильное.

Ответ 7

Для Python я иногда нахожу psyco полезным. Не уверен, есть ли какой-либо эквивалент для perl, хотя.

При выборе языка для задачи я считаю более полезным выбрать язык, наиболее подходящий для задания. Если задание запрашивает больше производительности, чем язык сценариев может обеспечить в нормальных условиях, обычно лучше просто переключаться, чем наклоняться назад, чтобы попытаться быстро сделать код.

Ответ 8

GML: www.yoyogames.com

Ответ 9

Вопрос может быть истолкован разными способами...

Если вы уже закодировали часть своего приложения на С++ и вам нужно добавить модули или скрипты, которые вы хотите добавить в код на С++ в конечном итоге для повышения производительности, вы можете использовать Qt, который представляет собой прочную, очень полную многоплатформенную структуру.

Он включает поддержку скриптов (ECMAScript, стандартизованная версия Javascript), из которой вы можете получить доступ к своим С++-объектам, если вам нужно, Он также обеспечивает поддержку плагинов.

При таком подходе вы можете даже выполнить три шага,

  • сначала выполните некоторые тесты в Javascript,
  • затем закодировать базу вашего приложения на С++ и все еще использовать часть в скриптах (например, если вам нужно попробовать разные алгоритмы),
  • и, наконец, портировать все или, по крайней мере, критические части, на С++.

Другой вариант - внедрить интерпретатор Python в ваш код, хотя это, вероятно, потребует больше работы.

Ответ 10

Я не уверен, что понимаю ваш вопрос, но если вы хотите реализовать свой собственный язык сценариев, который может взаимодействовать с вашим кодом на С++, вы можете взглянуть на boost:: spirit. Вы просто должны сказать это своей грамматике, и у вас есть язык написания сценариев, делающий все, что вы говорите, на С++. Вы указываете свою грамматику с помощью операторов С++, что делает ее очень простой и интуитивно понятной.

То, что я в настоящее время использовал для моих последних потребностей, и похоже, что это будет прекрасно работать. У вас есть полный доступ к вашим объектам С++, когда вы указываете свою грамматику, и ваш пользователь может иметь очень простой язык для изучения (по сравнению с CINT, где язык будет сам С++).

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

Ответ 11

Вы можете кодировать, используя язык программирования D, как как script, так и быстрый скомпилированный вывод.

вот статья, в которой подробно обсуждается D и ее преимущества "Случай для D"

Ответ 12

Cling - интерпретатор для С++ cling