SORU
1 Mart 2011, Salı


Çalışan Android işletim sistemi üzerinde Haskell bir program

Forenote: Bu /r/haskell başladı bu iş parçacığı bir uzantısıdır

Lets gerçekleri ile başlar:

  • Android harika bir İşletim Sistemi
  • Haskell dünyanın en iyi programlama dilidir

Bu nedenle, açıkça, onları birleştiren Android geliştirme çok daha iyi olurdu. Yani aslında sadece Android işletim sistemi için Haskell programları yazmak nasıl bilmek istiyorum. Benim sorum:

Nasıl Android OS üzerinde çalıştırmak yürütmek için Haskell bir program alabilir miyim?

P. S. bu dürüst bir soru, çünkü yukarıdaki fıkra Görmezden ve ben gerçekten bunu görmek istiyorum.

CEVAP
1 Mart 2011, Salı


Nasıl ilk ARM mimarileri için GCC portu ile birlikte gelen android Mall of Sofia ile C hedef olan Haskell compiler oluyor. JHC olabilir basit bunu bir çok küçük ınf stil dosyası hangi açıklar platformu (kelime boyutu, c-derleyici, vs.) yaptım bu Wii homebrew dev kit ve oldukça kolay. Hala bir monad transformer IO ile yığın kullanarak ama jhc gibi karmaşık kod ile bazı istikrar sorunları var ancak son 6 aydır çok gelişmektedir. Sadece bir kişi JHC ben daha fazla kişi ona yardım edebilir sadece diledi çalışıyor.

Diğer seçenek oluşturmak için bir "kayıt dışı" liman DZD hedefleme üniversite eğitim gcc, bu çok daha karmaşık bir süreç değil çünkü DZD değil gerçek bir çapraz-derleyici şu anda ve anlamak Zorundasınız yapı sistemi hangi parçaları değiştirmek gerekir. Başka bir seçenek çapraz derleme C için hangi NHC, nhc DZD gibi birçok Haskell uzantıları NHC C compiler, hedefleme inşa etmek gerekir DZD gibidir.

Bir zamanlar Haskell derleyicisi hedefleyen Mall of Sofia GCC gerekir yaz ciltleri için ya da android Mall of Sofia JNI tutkal kod çerçevesi (eklendi beri android 2.3) veya JNI kod yazmak gerekir tutkal arasında Java-C-Haskell, eski seçenektir kolay çözüm ve eğer doğru hatırlıyorsam olabilir aslında geriye uyumlu sürümleri Android 2.3 aşağıda.

Bu kez Mall of Sofia java tutkal kod paylaşımlı bir kitaplık kendisi olan) içine alır bağlı olan paylaşılan kütüphane veya statik kütüphane olarak Haskell kodu oluşturmalısınız. Resmi olarak android yerli çalıştırılabilir çalıştırabilirsiniz farkında değil bildiğim kadarıyla. Muhtemelen bu üniversite eğitim gcc portu yerli çalıştırılabilir gayet güzel oluşturabilir hatta app store üzerinde Yerli çalıştırılabilir dağıtabilirsiniz değil varsayıyorum, böylece köklü bir telefon ile bunu yapabilirsin. Bu da muhtemelen üniversite eğitim JNI LLVM ile çalışmaya başlayabilirsiniz sürece LLVM kullanma seçeneği öldürür.

En büyük engel değil çok zor bir Haskell derleyicisi için android (ki hala büyük bir engel) en büyük sorun, bazı bir ihtiyacı için yazma bağlama API için üniversite eğitim kütüphaneler ya da çok büyük görev ve durumu daha da kötüsü yazman gerek android UI kod çünkü üniversite eğitim API için bu bölümü android SDK. Yaparsan android UI kodu Haskell biri olacak yazmak Haskell bağlamaları için Java ile JNI/C olmadığı Sürece bir daha otomatik bir süreç yazma bağlama kütüphaneleri (biliyorum bazıları, onlar sadece otomatik değil benim için yeterli) sonra şansını bir yapıyor bunu oldukça düşük.

L01man: bunun nasıl yapılacağı hakkında bir eğitim var mı? İçin ilk bölüm, JHC indirmek zorunda olduğumu anlıyorum. Ne yapmam gerek kullanmayı ınf dosyasına yazma?

Lütfen unutmayın ben daha önce bu soruya cevap vermedim kullanılan jhc için oldukça bazen bu yana ilk başta şöyle yazmıştım bu ve daha yeni sürümleri zorunda bırakıldığı bu yana çok şey bilmiyorum, ne kadar kararlı jhc şu anda gelince kod üretimi daha karmaşık Haskell programları. Bu JHC büyük Haskell bir program yapmaya karar vermeden önce, tam gitmeden önce bazı küçük testler yapmak gerekir herkes için bir uyarıdır.

jhc bir el kitabı var mı http://repetae.net/computer/jhc/manual.html ve ayar bölümü çapraz derleme ve .ını seçenekleri ile dosya: http://repetae.net/computer/jhc/manual.html#crosscompilation.

L01man: ikinci bölümü ilk alternatif. Bu söylediklerin nasıl yapacağımı bilmiyorum üçüncü.

Başlamadan önce C bilmek ve hs2c gibi Haskell yabancı fonksiyon arayüzü (FFI) ve araçlar kullanarak rahat olmalıdır. Ayrıca Android Mall of Sofia ve yapı kullanma hakkında bilgi sahibi olmalıdır .paylaşılan kitaplıkları ile muayene. C-Haskell arasında,/C-Haskell, Java, bu bilmeniz gerekir ve market deposunda resmen/dağıtabileceğiniz Android için Haskell programları geliştirmek ve satmak.

L01man: örgütün amacı için bir bağlayıcı oluşturmak için olduğunu anlıyorum Android API. ... Ama 4. Bölüm yapamayız diyor .muayene ile Haskell?

.muayene sadece uygulama paketi dosyası biçimi ve Android SDK ile gelen araçlar ile inşa edilmiştir (değil) Mall of Sofia, bu çok küçük ikililer kendi binası ilgisi yoktur. Android paketleri yerel paylaşılan kitaplıkları, Haskell programınız ne olacak bu içerebilir ve yerel paylaşılan/statik kitaplıkları Android Mall of Sofia ile oluşturulur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • The Amazing Atheist

    The Amazing

    20 Kasım 2006
  • The CGBros

    The CGBros

    20 AĞUSTOS 2011
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008