Güzel OCaml kodum var (50000 satır). Ben C'ye taşımak istiyorum. Yani C çevirmene herhangi bir ücretsiz OCaml var mı?C çevirmene ait herhangi bir ücretsiz OCaml var mı?
cevap
Bu muhtemelen ne istediğinizi değil, ancak OCaml derleyici C çalışma zamanı kodunu dökümü alabilirsiniz: Ne elde temelde baytkoduna statik çöplük
ocamlc -output-obj -o foo.c foo.ml
. Sen the OCaml manual Daha fazla bilgi için,
gcc -L/usr/lib/ocaml foo.c -lcamlrun -lm -lncurses
ile derlemek olabilir
#include <caml/mlvalues.h>
CAMLextern void caml_startup_code(
code_t code, asize_t code_size,
char *data, asize_t data_size,
char *section_table, asize_t section_table_size,
char **argv);
static int caml_code[] = {
0x00000054, 0x000003df, 0x00000029, 0x0000002a, 0x00000001, 0x00000000,
/* ... */
}
static char caml_data[] = {
132, 149, 166, 190, 0, 0, 3, 153, 0, 0, 0, 118,
/* ... */
};
static char caml_sections[] = {
132, 149, 166, 190, 0, 0, 21, 203, 0, 0, 0, 117,
/* ... */
};
/* ... */
void caml_startup(char ** argv)
{
caml_startup_code(caml_code, sizeof(caml_code),
caml_data, sizeof(caml_data),
caml_sections, sizeof(caml_sections),
argv);
}
: benzer bir sonuç elde edecektir.
ve bu kodu C derleyicisi (gcc) kullanarak derleyebilirsiniz ex) için? – Rella
Elbette, neden olmasın? Bilgi eklendi. –
Grate, ancak şimdi, örneğin, OCaml kitaplığımdan C işlevlerini nasıl çağırırım?(OCaml kütüphanesini C'den çağırmak için tedavi yöntemini biliyorum fakat portu kullanabilmem için sadece OCaml lib'inin C'ye eklenmesini değil, C'den fonksiyonlarını çağırabilmem gerekir.) – Rella
OCamlJS projesi iyi bir başlangıç noktası olacaktır. OCaml'i JavaScript’e derler; OCaml 'i ActionScript'i derlemek için değiştirmek mümkün olmalıdır. C'ye derleme yapmak muhtemelen daha fazla iş olacaktır - özellikle de herhangi bir çeşit çöp toplanması yok - ama imkansız değil, özellikle Adobe Alchemy bu ihtiyaçların bir kısmını karşılamak için API'ler sağlıyorsa.
Bazı OCaml kodlarına sahip olsaydım, istemci tarafında "tarayıcıda" çalıştırmak istedim (ki bu da soruyla ilgili yorumlara dayanıyormuş gibi görünüyor), ilk düşüncemden biri olduğunu söylemeliyim. için OcamlJava gibi
- Kullanım şey java baytkoduna OCaml derlemek ve Java web başlatmak veya benzer kullanarak bu dağıtın.
- Bağlantı Noktası F # (Microsoft sürümü, OCaml). NET'te çalışan ve Web-deploy için ne sağlarsa kullanın kullanın.
Ve gerçekten deli olduğunu belki:
- Liman Alchemy kullanarak Flash (I 'C' uygulanan inan ) ve ait OCaml baytkodu çalıştırdığınız OCaml tercüman orijinal (sınırsız) kodum.
İki aşamalı bir OCaml-to-C, C-to-Flash, gerçekten de çekici değil.
C kaynak kodu derleyici bir OCaml baytkodu çalıştırılabilir dosya vardır: https://github.com/ocaml-bytes/ocamlcc
Yani, ilk önce ocamlcc kullanmak Bayt kodu yürütülebilir kodunuzu derlemek.
- 1. Herhangi bir ücretsiz php tarayıcı var mı?
- 2. Herhangi bir ücretsiz/ücretli coğrafi veri servisi var mı?
- 3. Reflektör artık ücretsiz olmayacak. Herhangi bir alternatif var mı?
- 4. Javascript'te PHP'deki __FILE__ değişkenine ait herhangi bir analog var mı?
- 5. İstisna avcısına ücretsiz bir alternatif var mı?
- 6. Ücretsiz bir anti spam veritabanı var mı?
- 7. Video kayıt (ekranın) için herhangi bir ücretsiz C# kütüphanesi var mı?
- 8. Ücretsiz bir proxy trafosu var mı?
- 9. Orada basit, ücretsiz C++ ray izleme kütüphaneleri var mı?
- 10. .net için ücretsiz printf var mı?
- 11. .NET için belgelenmiş herhangi bir ücretsiz R-Tree uygulaması var mı?
- 12. Herhangi bir ücretsiz araç java javascript dönüştürebilirsiniz
- 13. Herhangi bir ücretsiz java VFS kitaplığı?
- 14. Herhangi bir ccTalk kütüphanesi var mı?
- 15. C içinde bool'un herhangi bir format belirteci var mı?
- 16. C# den SignerSignEx'i aramak için herhangi bir kodun var mı?
- 17. Emacs C++ Programlama için herhangi bir refactoring aracı var mı?
- 18. C++ dünyasında herhangi bir konuya özel saat var mı?
- 19. Yığının bu C# uygulamasında herhangi bir sorun var mı?
- 20. Herhangi bir iyi C#, .net haber toplayıcıları var mı?
- 21. Bir SVN deposunu belgeleyecek herhangi bir araç var mı?
- 22. Küçük resimler için herhangi bir java kütüphanesi var mı?
- 23. Herhangi bir varlığa ait bir işlevi alabilir miyim?
- 24. Maxmind'in ücretsiz GeoLiteCity DB'sini bir C# web formunda mı uyguladınız?
- 25. Windows formları için herhangi bir açık kaynak veya ücretsiz grafik/rapor/grafik çerçevesi var mı?
- 26. AD LDS'yi (ADAM) yönetmek için herhangi bir ücretsiz GUI var mı?
- 27. "A" veya "Ait" ilişki veya başka bir şey var mı?
- 28. iOS'ta Android'in herhangi bir karşılığı var mı?
- 29. Moodle için herhangi bir API var mı?
- 30. "Vurgulu" kodun herhangi bir yolu var mı?
Bunu neden yapmak istersiniz? Eminim ne yapıyorsan onu yapmanın daha iyi yolları vardır. – tiftik
Oh ... Hayır başka yolu yok ... (elle bir tane var ama onu halledelim) Adobe Flash player için Adobe Alchemy adında bir araç kullanarak derlemek için C koduna ihtiyacım var. 200x hız kaybı ama çelik saf ActionScript derlenmiş koddan daha hızlı olacaktır ... Ana Fikir - web sayfası içinde bir uygulama çalışması yavaş olsa bile ... – Rella