Scheme2Js

Software screenshot:
Scheme2Js
Software ətraflı:
Version: 20101114
Tarixi Upload: 11 May 15
Geliştirici: Florian Loitsch
Lisenziya: Pulsuz
Məşhurluq: 6

Rating: nan/5 (Total Votes: 0)

Scheme2Js Javascript compiler bir proqramıdır. Bir səy R5rs mümkün qədər yaxın olmaq sərf baxmayaraq, biz əsasən səmərəliliyi üzərində cəmlənmişdir.
Adətən Scheme2Js Javascript kodu istehsal ki, müqayisə kodu əl-yazılı. Bu performans nail olmaq üçün, Scheme2Js tamamilə R5rs uyğun deyil. Xüsusilə bu continuations, dəqiq nömrələri üçün dəstək yoxdur və bu yalnız qismən quyruq recursion alır.
Scheme2Js nəticə dəyişdirmək üçün imkan verən bir neçə bayraqları təmin edir:
ย ท --no-js-dot-notation dot-notation ilə JavaScript sahələrində imkanı engeller. Bu bayraq document.getElementByID kimi forma XY Çatmaz aradan bırakır. Bu js sahəsində funksiyası istifadə edərək etibarlı olduğunu ifadə edərək daxil olmaq üçün lakin hələ də mümkündür.
ย ท --mutable-strings: məqsədiylə string-əməliyyatlarının performansını yaxşılaşdırılması üçün və sxemi və JavaScript kodu, JavaScript strings default həyata keçirilməsi xəritələr Scheme strings arasında interfeys azaltmaq üçün. Scheme strings əksinə, JavaScript strings lakin dəyişməz var. Mutable var Scheme strings təmsil JavaScript sinif, bu bayraq maps strings. nəticəsində code az gec ola bilər, və bu Javascript kodu ilə interface daha çətindir.
ย ท --encapsulate-hissələri anonim funksiyası daxil proqram kapsüller. Yalnız qlobal dəyişənlər bu anonim funksiyası xaricində. Bir tərəfdən bu anonim funksiyası bir funksiyası zəng təqdim edir. Amma digər tərəfdən ən Javascript tətbiq sürətli bu optimallaşdırılması ilə run lazımdır: adətən hashtables JavaScript scopes təmsil etmək üçün istifadə olunur. Anonim funksiyası proqramları istifadə edərək dəyişənlər (nəzəri) bu dəyişənlərin çatmaz sürətləndirir öz kiçik hashtable ayrılır. Daha da əhəmiyyətlisi dəyişənlərin öz hashtable saxlanılır deyil, qlobal dəyişən əlçatan qlobal hashtable, edilir. Bu dolayısı ilə qlobal dəyişənlər məzmunu dəyişdirmək üçün çox asandır. Inlining və ya digər ümumi optimallaşdırılması qlobal dəyişənlər nə səbəbdən mümkün deyil. Anonim funksiyası proqram dəyişənlərin saxlanılması bu optimallaşdırılması yenidən mümkün olur.
ย ท --optimize-var-sıra nəticəsində JavaScript kodu istifadə dəyişənlərin sayını azaldır. code daha sürətli run, lakin dəyişən adları itirilmiş və eyni dəyişən bir neçə dəfə istifadə edilə bilər kimi, debug üçün daha çətin ola bilər.
ย ท --optimize isə bu bayraq Scheme2Js loops isə ümumi optimallaşdırır ilə. unoptimized loops şəklində tez-tez isə:
 isə (doğru) {
   əgər (test)
     resVar = res;
   başqa {
     modify_loop_variable;
     davam etdirilməsi;
   }
   qırmaq;
 }
 
Bu optimallaşdırma bu nümunələri üçün görünür isə loop test hərəkət:
 isə (! test) {
   modify_loop_variable;
 }
 resVar = res;
 
Bu optimallaşdırma yalnız bu yaxınlarda həyata keçirilir və buna görə də hələ default aktiv deyil.
ย ท --verbose yükləyə görüntüler.
ย ท --no-inlining bütün funksiyası inlining (sabitləri hələ inlined ola bilər) aradan bırakır.
ย ท --inline-Globals Scheme2Js inline qlobal funksiyaları və sabitləri imkan verir. Bu iki arzuolunmaz yan təsirləri ola bilər: bir qlobal dəyişənlər tez-tez müxtəlif modulları arasında məlumatı ötürmək üçün istifadə olunur. Onlara heç bir istinad artıq var, bəzi inlined funksiyaları itir. Qlobal funksiyaları modul xaricində istifadə olunur, bir bu bayraq istifadə etməməlidir. (Bu davranış Scheme2Js gələcək versiyaları dəyişə bilər.)
ย ท --unresolved-is-js: a dəyişən sərbəst, əgər compiler dəyişən başqa modulu gəlir, ya JavaScript boynuna götürəcək. Bölmə proqramı bax - Javascript JavaScript Scheme interfeys daha ətraflı müzakirə üçün.
ย ท --js-bu Scheme funksiyaları daxilində bu dəyişən təmin edir. Bu yolla, Scheme prosedurlar JavaScript obyektlərin üsulları kimi istifadə edilə bilər.
ย ท --no-tailrec isə-loop optimallaşdırılması tailrec aradan bırakır. Siz quyruq-recs tərcümə tərtibçisi yolunda bir səhv şübhəli varsa, siz bu bayrağı cəhd edə bilər.
ย ท --no-optimize-zənglər ikili və ya unary əməliyyatların Scheme2Js inlining aradan bırakır. Məsələn sci_plus (3, 5) (3 + 5) optimize edilmişdir. Bu optimallaşdırma olduqca vacibdir və aradan heç bir səbəb adətən var.
ย ท --no-optimize-consts pre-sabit hesablanması aradan bırakır. (Bu bayrağı ilə) əlil halda, mürəkkəb sabitləri precalculated və onların hadisələr daimi tutan dəyişən istinad ilə əvəz. Təkrar edir Bu daha sürətli bu sabitləri çatmaz, amma yeni dəyişənlər təqdim edir.
ย ท --no-optimize-boolify boolify optimallaşdırılması aradan bırakır. JavaScript və sxemi boolify ekvivalent deyil: JavaScript Scheme yalnız #F var halbuki, saxta olması, 0, yalan null və undefined hesab edir. unoptimized boolify buna görə də həmişə yalan qarşı test edir: əgər (test == yalan!) ... Scheme2Js görə bilərsiniz, test özü bir boolean ki, bu lazımsız edə bilərsiniz == saxta test. Bu bayraq Bu optimallaşdırma aradan bırakır.
ย ท --d STAGE mərhələ mərhələdən sonra AST bir dot fayl (bax Graphviz) görüntüler. Mümkün mərhələləri var: isə, (tt "ifadələri"), node-elim3, ağac, simvolu, node-elim1, quyruq, inline, daimi təbliği, rm-istifadə olunmamış-Vars, ələ, node-elim2 genişləndirmək. Adətən bir halda ayıklama məqsədləri üçün, bu bayraq lazım deyil.
ย ท --print-Locs izləri JavaScript fayl yapılan yorumlar orijinal yerlərdə. Bu yerlərdə hazırda xarakter ofset fayl əvvəlindən var

Bu azad Yeni nədir.

  • Kiçik dəyişikliklər və bugfixes Scheme2Js üçün Hop idxal edilmişdir.

versiyası 20100816 yeni nədir.

  • Scheme2Js "iş-oxucu indi açar sözlər tanıyır
  • neçə bugs müəyyən edilmişdir.

nədir versiyası 20081219 Yeni:.

  • compiler optimize edilmişdir
  • Bu çox daha sürətli indi və daha az yaddaş istifadə.
  • Bir çox bugs müəyyən edilmişdir.
  • Scheme2Js default modul bənddə indi Bigloo biri kimi.
  • Bu azad ixtisaslı adları dəstəkləyir.

Oxşar proqram

Chicken
Chicken

17 Jul 15

nesC
nesC

3 Jun 15

IPython
IPython

20 Feb 15

Şərh Scheme2Js

Şərhlər tapılmadı
Şərh əlavə
Images yandırın!