2014-03-24 2 views
1

Я хочу иметь DSL (доменный язык) в проекте C#.Может ли C# вызывать код ракеты?

Я хотел бы создать DSL в Racket (язык программирования, подобный lisp), поскольку я считаю, что он хорошо подходит для создания доменных языков.

И важная часть всего этого заключается в том, что C# может вызывать код Racket.

Может ли ракета скомпилироваться в .DLL, который затем может быть вызван C#?

В целом, насколько хороша совместимость с C# и Racket?

+4

Считаете ли вы, что используете Lisp на основе .NET, например IronScheme (http://ironscheme.codeplex.com/) или Clojure-CLR (https://github.com/clojure/clojure-clr)? – Ferruccio

+2

Мы на самом деле создаем компилятор Racket -> NET с использованием динамического языка Runtime. В настоящее время мы вызываем код C# из racket, хотя мы не пробовали C# -> racket, хотя это должно быть возможно, поскольку мы собираем .NET. Мы делаем это для нашего старшего проекта, так что, если он окажется достаточным для использования в отрасли, еще предстоит увидеть. К концу апреля мы надеемся, что большая часть Racket/Base будет завершена. Будем ли мы продолжать развиваться после апреля, пока мы не увидим, что один из них отправится в индустрию, а остальные отправятся в школу градации. github.com/hiigaran/IronPlot –

ответ

3

Racket требует существенной системы времени выполнения, включая собственную кучу. У Racket есть определенная поддержка для встраивания, но это очень много работы. Говоря лично, я бы посоветовал вам искать другие способы сделать эту работу.

Смежные вопросы