Есть ли Haskell / ML-подобный компилятор для C? - PullRequest
17 голосов
/ 18 января 2011

Люди имеют написано игр для iPhone в схеме. Поскольку (некоторые) компиляторы Scheme компилируются до C, было легко смешивать их с Objective-C и интегрировать с XCode.

Я знаю из патчей для компиляторов Haskell и OCaml для включения ARM / iOS-бэкэндов. Но они кажутся неофициальными и экспериментальными / нестабильными.

Я предпочитаю статическую систему типов типа haskell / ML, а не динамическую типизацию Scheme. Есть ли стабильный компилятор ML / SML / Haskell, который генерирует C-код, чтобы его можно было использовать аналогично Scheme / Gambit-C?

Ответы [ 3 ]

15 голосов
/ 18 января 2011

Я не могу помочь с ML, но вы смотрели на JHC ? JHC - это оптимизирующий компилятор Haskell для целой программы, предназначенный для переносимого C, а поддержку iPhone можно добавить, поставив

[iphone]
cc=arm-apple-darwin-gcc
merge=le32

в ~ / .jhc / target.ini

Более подробную информацию о Haskell можно найти в Haskell wiki и в руководстве по JHC.

6 голосов
/ 18 января 2011

(Я не уверен, что этот набор инструментов уже был применен специально на IPhone.)

MLTon - это оптимизирующий целую программу стандартный компилятор ML. Вы можете обойти свой код C, передавая -keep g в MLTon при компиляции, например:

c:/Program Files (x86)/MLton/bin/mlton.bat" -verbose 1 -keep g test.sml

Он также может генерировать код ARM изначально .

4 голосов
/ 18 января 2011

nhc98: http://www.haskell.org/nhc98/

Full Haskell '98. Конечно, многие библиотеки теперь полагаются на более продвинутые функции только для ghc. Но Haskell '98 вполне достаточно для программирования общего назначения.

...