статически типизированный, встраиваемый, компилируемый язык сценариев - PullRequest
3 голосов
/ 06 мая 2011

Я ищу язык со следующими функциями:

  • SWIG-совместимый или аналогичный.Совместимость с C ++ должна быть простой:

C, C ++, AllegroCL, C # - Mono, C # - MS .NET, CFFI, CHICKEN, CLISP, D, Go, Guile, Java, Lua, MzScheme / Racket, Ocaml, Octave, Perl, PHP, Python, R, Ruby, Tcl / Tk

  • Статически типизировано: Нет myObject.CompletelyNewFieldWithUnknownSideEffects = GuessWhat () как в Lua.Нет isinstance () как в php.Нет newVariableOfUnknownType = foo () как в Python.Желательно также строго типизированный («Hello» + «0», а не «Hello» +0):

C, C ++, C #, D, Go, Java, Ocaml, PHP,Рубин ?Другое?

  • Может быть скомпилировано во время выполнения (и exec ("gcc plugin.cpp")! Не в счет!) В любой asm / промежуточный язык.

C: libCLang, Ch;C ++: Ch;Любой язык сценариев;Другое?

  • Может быть скомпилирован (автономно или во время выполнения) в x86 .dll / .so, ИЛИ .cpp

C:gcc, libClang и т.д .;C ++;C #;D;Python;Идти;OCaml;Lua: LuaJIT;Ruby: Ludicrous

  • Желательно с отладчиком:)

TL; DR

Я хотел бы использовать статически типизированный язык сценариев для встраивания, который можетБыть скомпилированным для перф.

Идеи?Комментарии ?Ввод любого рода?Спасибо!

РЕДАКТИРОВАТЬ Действительные предложения на данный момент:

Так что надежды гораздо больше, чем я думал :) Спасибо всем!Я продолжу расследование и приму ответ, когда у меня будет больше опыта по этому вопросу.

Ответы [ 4 ]

1 голос
/ 06 мая 2011

Взгляните на OpenCL, возможно?Он разработан для того, чтобы быть C-подобным языком, который компилируется во время выполнения, но последние SDK от AMD также позволяют выполнять автономную предварительную компиляцию.

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

1 голос
/ 06 мая 2011

Ruby есть в каждом из ваших списков, а компилятор Rubinius компилирует его в байт-код. Это соответствует вашим потребностям?

2-я попытка: Вы смотрели на Boo : «объектно-ориентированный статически типизированный язык программирования для инфраструктуры общего языка»

1 голос
/ 06 мая 2011

Это почти наверняка бесполезный ответ, но Java на самом деле подходит всем вашим пунктам.

  • Вы можете общаться с нативным кодом с помощью JNI, JNA или SWIG.
  • Статически типизированный, как он получает без необходимости PhD
  • Может быть скомпилирован во время выполнения через API компилятора
  • Скомпилирован в собственный код во время выполнения некоторыми отличными компиляторамии есть также автономные компиляторы)
  • Имеет несколько отладчиков

Проблема в том, что это не совсем язык сценариев;вам нужно написать достаточно много шаблонов, чтобы выполнить небольшую задачу, и API, как правило, довольно сложны.

0 голосов
/ 06 мая 2011

Я почти уверен, что D скомпилирован и может быть запущен как скрипт.

...