Scheme2Js

Yazılım ekran görüntüsü:
Scheme2Js
Yazılım detaylar:
Versiyon: 20101114
Qayıt: 11 May 15
Geliştirici: Florian Loitsch
Lisans: Ücretsiz
Popülerlik: 6

Rating: nan/5 (Total Votes: 0)

Scheme2Js JavaScript derleyicisi bir Scheme olduğunu. Biraz çaba R5RS mümkün olduğunca yakın olma geçirmiş olsa da, ağırlıklı olarak verimlilik üzerinde yoğunlaştı.
Genellikle Scheme2Js JavaScript kodu üretir edilene benzer bir kod el yazısı. Bu performans elde etmek amacıyla, Scheme2Js tamamen R5RS uyumlu değildir. Özellikle, devamı olan tam sayılar için destekten yoksun ve sadece kısmen kuyruk özyineleme davranır.
Scheme2Js sonucunu değiştirmek için izin veren çeşitli bayrakları sağlar:
ย ท --no-js-nokta-nokta-notasyonu gösterimde JavaScript alanlarına engeller. Bu bayrak document.getElementById gibi formu xy erişimlerini devre dışı bırakır. Bu js alan işlevini kullanarak geçerli bir ifadedir erişmek için ancak hala mümkündür.
ย ท --mutable-dizeler: sipariş dize operasyonların performansını artırmak için ve Şema ve JavaScript kodu, JavaScript dizeleri varsayılan uygulama haritaları Şeması dizeleri arasındaki arayüz kolaylaştırmak için de. Şema dizeleri aksine, JavaScript dizeleri Ancak iletmenin. Kesilebilir Şema dizeleri temsil eden bir JavaScript sınıfı, Bu bayrak harita dizeleri. Ortaya çıkan kod biraz daha yavaş olabilir ve Javascript kodu ile arayüz daha zordur.
ย ท --encapsulate-parçaları anonim işlevi programı saklar. Sadece global değişkenler bu anonim işlev dışında bulunmaktadır. Bir yandan bu anonim işlev bir işlev çağrısı tanıttı. Ama öte yandan çoğu JavaScript uygulamaları daha hızlı, bu optimizasyon ile çalışmalıdır: genellikle karışık tablolar JavaScript kapsamları temsil etmek için kullanılır. Anonim fonksiyonu programları kullanarak değişkenler (teoride) bu değişkenler kere hızlandırır kendi küçük hashtable ayrılırlar. Daha da önemlisi değişkenler kendi hashtable saklanan değil, global değişken erişilebilir dünya hashtable içinde vardır. Bu dolaylı global değişkenler içeriğini değiştirmek son derece kolaydır. Inlining veya diğer ortak optimizasyonlar küresel değişkenler yapmak dolayısıyla imkansız. Bir anonim işlev programın değişkenleri saklayarak bu optimizasyonlar yeniden mümkün olur.
ย ท --optimize-var-sayı sonuçlanan JavaScript kodu kullanılan değişkenlerin sayısını azaltır. Kod daha hızlı çalışmasını, ama değişken adları kaybolur ve aynı değişken birkaç kez kullanılmış olabileceği gibi, hata ayıklama daha zordur.
ย ท --optimize-süre: Bu bayrak Scheme2Js while döngüleri ortak optimize ile. Optimize edilmemiş döngüler formunun genellikle ise:
 while (true) {
   if (Test)
     resVar = res;
   else {
     modify_loop_variable;
     devam edin;
   }
   break;
 }
 
Bu optimizasyon bu kalıpları arar ve while döngüsü içine testi hamle:
 while (! testi) {
   modify_loop_variable;
 }
 resVar = res;
 
Bu optimizasyon sadece son uygulamaya konmuştur ve bu nedenle henüz varsayılan olarak etkin değildir.
ย ท --verbose bazı bilgiler yazdırır.
ย ท --no-inlining tüm işlev inlining (sabitler hala inlined olabilir) devre dışı bırakır.
ย ท --inline-globals Scheme2Js inline küresel işlev ve sabitler sağlar. Bu iki istenmeyen yan etkilere sahip olabilir: biri için, global değişkenler genellikle farklı modüllerin arasında veri aktarmak için kullanılır. Onlara hiçbir referans artık yoksa Bazı İnline fonksiyonlar kaybolur. Küresel fonksiyonlar bir modül dışına kullanılacak ise, kimse bu bayrak kullanmamalısınız. (Bu davranış Scheme2Js gelecekteki sürümlerinde değiştirmek olasıdır.)
ย ท --unresolved-is-js: Değişken ilişkisiz ise, derleyici değişken başka bir modülde gelir, ya da JavaScript dan üstlenecek. Bölüm Düzeni izle - Javascript JavaScript Programı arayüzü daha ayrıntılı bir tartışma için.
ย ท --js-Bu Plan fonksiyonları içinde bu değişkeni sağlar. Bu şekilde, Şema prosedürler JavaScript nesneleri yöntemleri olarak kullanılabilir.
ย ท --no-tailrec ise döngü optimizasyonu tailrec devre dışı bırakır. Eğer kuyruk recs çevirme derleyicinin yolunda bir hata şüpheleniyorsanız, bu bayrak deneyebilirsin.
ย ท no-optimize-aramalar ikili veya tekli operasyonların Scheme2Js inlining devre dışı bırakır. Örneğin sci_plus (3, 5) (3 + 5) için optimize edilmiştir. Bu optimizasyon oldukça önemlidir ve bunu devre dışı bırakmak için hiçbir neden orada genellikle.
ย ท --no-optimize-consts öncesi sürekli hesaplama devre dışı bırakır. (Bu bayrağı ile) devre dışı sürece, bileşik sabitleri önceden hesaplanmış ve bunların tekrarlar sabit tutan bir değişkene bir atıf ile değiştirilir. Tekrarlanan yapar bu hızlı bu sabitler kere, ama yeni değişkenler tanıttı.
ย ท --no-optimize-boolify boolify optimizasyonu devre dışı bırakır. JavaScript adlı ve Scheme en boolify eşdeğer değildir: JavaScript Programı sadece #F sahipken, yanlış olduğunu, 0, yanlış null ve undefined düşünmektedir. unoptimized boolify bu nedenle her zaman yanlış karşı testi ekler: if (Test == false!) ... Scheme2Js görebiliyorsanız, test kendisi bir boolean olduğunu, gereksiz kaldırabilirsiniz == false testi!. Bu bayrak, bu optimizasyon devre dışı bırakır.
ย ท-D SAHNE sahne SAHNE sonra AST bir nokta-dosya (bkz graphviz) yazdırır. Olası aşamaları şunlardır: ise, (tt "ifadeleri"), düğüm elim3, ağaç, sembol, düğüm elim1, kuyruk, inline, sabit yayılımı, rm-kullanılmamış-değişkenler, yakalama, düğüm elim2 genişletin. Genellikle tek sürece Hata ayıklama amacıyla, bu bayrak gerekmez.
ย ท --print-locs baskılar JavaScript dosyası için yorum olarak orijinal konumları. Bu yerler şu anda karakter ofset dosyanın başında gelmektedir

Bu sürümde Yeni nedir:.

  • Minor değişiklikler ve onarımları Scheme2Js için Hop taşıdık edilmiştir.

sürüm 20100816 yeni nedir:.

  • Scheme2Js 'zamanı okuyucu şimdi kelimeleri tanır
  • Çeşitli hatalar giderildi.

nedir sürüm 20081219 Yeni:.

  • derleyici optimize edilmiştir
  • Bu çok daha hızlı şimdi ve daha az bellek tüketiyor.
  • Birçok hata giderildi.
  • Scheme2Js varsayılan modülü fıkra şimdi Bigloo birine benzer.
  • Bu sürüm, nitelikli adlarını destekler.

Benzer yazılım

Project Fortress
Project Fortress

2 Jun 15

JBrownie
JBrownie

3 Jun 15

Ctalk
Ctalk

20 Feb 15

Spackager
Spackager

14 Apr 15

Yorumlar Scheme2Js

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!