Проект Феликса предоставляет интерпретатор C ++ в Javascript, хотя и с некоторыми ограничениями.
https://github.com/felixhao28/JSCPP
Таким образом, пример программы может выглядеть следующим образом:
var JSCPP = require('JSCPP');
var launcher = JSCPP.launcher;
var code = 'int main(){int a;cin>>a;cout<
По состоянию на март 2015 года это в процессе активной разработки, поэтому, пока он пригоден для использования, все еще существуют области, в которых он может продолжать расширяться. Проверьте документацию на наличие ограничений. Похоже, вы можете использовать его как прямой интерпретатор C с ограниченной библиотечной поддержкой, без каких-либо проблем.
Я должен не согласиться со всеми здесь и предложить вам использовать Wine. Google поставляет Picassa с установкой Wine, и вы можете сделать то же самое. Вместо того, чтобы полагаться на версию, установленную дистрибутивом, у них есть копия в каталоге программы, которая предварительно сконфигурирована и имеет известную версию, с которой вы можете протестировать.
В основном вам просто нужно спросить, что собственный порт предоставит такую оболочку Wine не стал бы. Для большинства приложений Delphi ответ, вероятно, заключается в создании тем и совсем немногое. Мы сделали собственный порт, чтобы иметь доступ к файловой системе на более низком уровне, но до этого наш продукт работал с Wine почти идеально в течение многих лет.
И, судя по опыту, родные порты - это не прогулка в парке:
Я бы сказал, что здесь нет золотого правила. На самом деле это будет зависеть от того, сколько компонентов, которые вы используете, поддерживаются Lazarus.
Я бы начал тестирование с lazarus и сохранил Wine в качестве резервной копии на случай, если вы отчаяетесь.
Планы Codegear все еще очень расплывчаты ( они только «смотрят на это», но в то же время они размазывают 64-битное развертывание на две полные версии, так что даже если это будет прогрессировать, это может занять довольно много времени)
Краткий график заставляет меня думать, что Версия для Apple будет использовать QT, а не собственный API.
Обновление: почти 4 года, но поддержка Linux по-прежнему отсутствует. Деревья растут быстрее.
Я бы обычно рекомендовал использовать Lazarus. Если вы зависите от WINE, вы также попадаете во власть ошибок WINE, которые могут повлиять на качество вашего продукта. Может быть даже полезно использовать Lazarus + FPC в среде Windows.
Альтернативой может быть использование виртуализации, но это зависит от типа приложения, которое вы пишете.
Глядя на планы Codegear - поищите некоторые подсказки в плане развития на DelphiLive 2009 - чтобы обеспечить родную версию Delphi для Linux и Mac, я бы сейчас выбрал Lazarus. Вы избавляетесь от администрирования Wine и позже можете перенести свое приложение на нативное. (Как кто-то выразился: Delphi будет похож на большой зоопарк с пингвинами, тиграми, леопардами и снежными барсами.)
Конечно, портирование приведет к некоторой работе. Но если вы внимательно посмотрите на такие проблемы, как Unicode, и предотвратите наиболее распространенные ошибки, это должно быть довольно легко.
Поищите на delphifeeds Unicode и дорожную карту для дальнейших советов.
I think either Wine or Lazarus would probably work for you. I've tested some of our quite large Delphi Apps (Many 3rd party controls) with wine, and they have worked pretty well. There were a few annoying font issues. The two thing that really failed majorly was where I used TWebBrowser (which looked like it almost worked, I think it was using the gecko rendering engine instead of IE). The other was a muli-tier (Datasnap) server, which ran but, I couldn't work out how to connect to.
I think holding out for Mac/Linux support for Delphi would be a mistake, the fact that they can compile a console "hello world" application for OS/X is impressive - but I think porting the VCL is a different story (unless you've written a console app).
If you already have a working application, then give wine a go - testing can't hurt.
The other thing to consider is who your users are (and how many)? If they are Linux geeks then they are going to have no problems configuring and tweaking wine (although they might find it offensive to use a native windows app). If it's a bunch of grandmothers then that's a different story.
Free Pascal Compiler / Lazarus не близок к последним функциям Delphi, но он довольно стабилен, несмотря на то, что все еще есть ошибки, которые необходимо выяснить.
Кроме того, созданные исполняемые файлы кажутся больше, но он определенно меньше, чем использование виртуальной машины или развертывание с помощью самого Wine.
Но он делает то, что однажды попробовал Delphi / Kylix. Кросс-сборка ! Используя его, вы можете компилировать с одной платформы на другую.
На самом деле мы используем Wine для нашего продукта ShareTeam ... У нас есть тестируемая версия на Lazarus, которая является хорошим инструментом и имеет много преимуществ, но на данный момент не совсем завершена. Я думаю, что на данный момент лучше использовать вино, если работа не простая, конвертировать приложение Delphi в Lazarus / FreePascal непросто. Лично я надеюсь, что Embarcadero создаст кроссплатформенную версию Delphi, а не Prism, которая сильно отличается от Delphi.