Scheme2Js

نرم افزار تصویر:
Scheme2Js
جزئیات نرم افزار:
نسخه: 20101114
ها تاریخ: 11 May 15
توسعه دهنده: Florian Loitsch
پروانه: رایگان
محبوبیت: 6

Rating: nan/5 (Total Votes: 0)

در Scheme2Js یک طرح به کامپایلر جاوا اسکریپت می باشد. در حالی که برخی تلاش شده است در حال به عنوان نزدیک که ممکن است برای R5rs صرف، ما به طور عمده در بهره وری متمرکز شده است.
معمولا Scheme2Js تولید کد جاوا اسکریپت، که قابل مقایسه است به دست نوشته کد. به منظور دستیابی به این عملکرد، Scheme2Js است به طور کامل R5rs سازگار نیست. به طور خاص آن را فاقد حمایت از تداوم، تعداد دقیق و آن را درمان می کند بازگشت دنباله فقط تا حدی.
Scheme2Js فراهم می کند چندین پرچم، اجازه می دهد که به ایجاد تغییر در نتیجه:
ย ท وجود ندارد-JS-دات نماد اجازه دسترسی به زمینه های جاوا اسکریپت با دات نت نویسی. این پرچم غیر فعال دسترسی از XY فرم مانند document.getElementById. با این حال هنوز هم ممکن است برای دسترسی به یک عبارت معتبر با استفاده از تابع JS-درست است.
ย ท --mutable-رشته: به منظور بهبود عملکرد رشته عملیات و به راحتی رابط بین طرح و کد جاوا اسکریپت، پیاده سازی پیش فرض رشته طرح نقشه به رشته جاوا اسکریپت. بر خلاف رشته طرح، رشته جاوا اسکریپت هستند با این حال تغییر ناپذیر. این نقشه پرچم رشته به یک کلاس جاوا اسکریپت، که نشان دهنده رشته طرح، که تغییرپذیر است. کد ممکن است کمی آهسته تر، و آن را مشکل تر به رابط با کد جاوا اسکریپت می باشد.
ย ท --encapsulate قطعات کپسوله برنامه را به یک تابع بی نام. تنها متغیرهای جهانی در خارج از این تابع ناشناس هستند. از یک طرف این معرفی یک تابع فراخوانی تابع ناشناس. اما از سوی دیگر بسیاری از پیاده سازی جاوا اسکریپت باید سریع تر با این بهینه سازی را اجرا کنید: معمولا hashtables استفاده می شود برای نشان دادن حوزه در جاوا اسکریپت. با استفاده از یک تابع بی نام برنامه متغیرها را به پشته کوچکتر خود را که (در تئوری) شتاب دسترسی به این متغیر جدا شده است. مهمتر از متغیرها در پشته ذخیره می شود خود را، و نه در پشته جهانی، است که توسط متغیر جهانی در دسترس است. این بسیار آسان برای به طور غیر مستقیم تغییر محتویات متغیر جهانی است. Inlining و یا دیگر بهینه سازی رایج است از این رو غیر ممکن به متغیرهای جهانی انجام دهد. با ذخیره متغیرهای برنامه در یک تابع بی نام این بهینهسازیها را مجددا امکان پذیر است.
ย ท --optimize-VAR-تعداد تعداد متغیرهای مورد استفاده در نتیجه کد جاوا اسکریپت را کاهش می دهد. کد ممکن است سریع تر اجرا شود، اما سخت تر برای اشکال زدایی، به عنوان نام متغیر از دست داده و متغیر همان ممکن است چندین بار استفاده می شود.
ย ท --optimize-در حالی که: با این پرچم Scheme2Js در حالی که حلقه بهینه سازی رایج است. unoptimized در حالی که حلقه از فرم اغلب:
 در حالی که (درست) {
   اگر (آزمون)
     resVar = RES.
   دیگری {
     modify_loop_variable.
     ادامه.
   }
   شکستن.
 }
 
این بهینه سازی به نظر می رسد برای این الگوها و حرکت آزمون به حلقه در حالی که:
 در حالی که (آزمون) {
   modify_loop_variable.
 }
 resVar = RES.
 
این بهینه سازی تنها به تازگی اجرا شده است و بنابراین هنوز به طور پیش فرض فعال نیست.
ย ท --verbose چاپ برخی از اطلاعات.
ย ท وجود ندارد-inlining غیر فعال همه inlining تابع (ثابت ممکن است هنوز هم به صورت inline شود).
ย ท --inline-global دربرمیگیرد اجازه می دهد تا Scheme2Js درون خطی توابع و ثابت جهانی است. این ممکن است دو عوارض جانبی ناخواسته دارند: برای یکی، متغیرهای جهانی اغلب مورد استفاده برای انتقال داده ها بین ماژول های مختلف. بعضی از توابع inline است از دست داده اگر هیچ مرجع به آنها وجود دارد دیگر. اگر توابع جهانی به خارج از یک ماژول استفاده می شود، یکی باید این پرچم استفاده کنید. (این رفتار به احتمال زیاد به تغییر در نسخه های آینده Scheme2Js.)
ย ท --unresolved است-جی اس: اگر یک متغیر آزاد است، کامپایلر فرض را بر متغیر می آید از ماژول دیگر، و یا از جاوا اسکریپت. برای بحث مفصل تر از رابط طرح جاوا اسکریپت جاوا اسکریپت - بخش طرح.
ย ท --js-این، این متغیر در توابع طرح فراهم می کند. به این ترتیب، روش طرح می تواند به عنوان روش از اشیاء جاوا اسکریپت استفاده می شود.
ย ท وجود ندارد-tailrec غیر فعال tailrec در حالی که حلقه بهینه سازی. اگر شما یک اشکال در راه کامپایلر از ترجمه دم دریافت از کتابخانه شک، شما می توانید این پرچم را امتحان کنید.
ย ท وجود ندارد بهینه سازی-تماس غیر فعال Scheme2Js inlining عملیات باینری و یگانی. برای مثال sci_plus (3 و 5) به (3 + 5) بهینه شده است. این بهینه سازی کاملا مهم است، و معمولا هیچ دلیلی برای غیر فعال کردن آن وجود دارد.
ย ท وجود ندارد بهینه سازی-consts غیر فعال محاسبه پیش ثابت است. مگر در مواردی که اشتباه (با این پرچم)، ثابت ترکیب precalculated و ظهور خود توسط یک مرجع به یک متغیر برگزاری ثابت جایگزین شده است. این باعث می شود تکرار دسترسی به این ثابت سریعتر، اما معرفی متغیرهای جدید.
ย ท وجود ندارد بهینه سازی-boolify غیر فعال بهینه سازی boolify. جاوا اسکریپت و boolify طرح هستند معادل نه: جاوا اسکریپت در نظر نادرست، 0، پوچ و تعریف نشده کاذب است، در حالی که طرح تنها #f است. boolify unoptimized بنابراین همیشه می افزاید آزمون در برابر نادرست: اگر (آزمون == کاذب!) ... اگر Scheme2Js مشاهده می کنید، که آزمون خود را بولی است، می تواند غیر ضروری را حذف == کاذب آزمایش. این پرچم غیر فعال این بهینه سازی.
ย ท --d STAGE چاپ دات فایل (نگاه کنید به graphviz) از AST بعد از مرحله مرحله. مراحل ممکن عبارتند از: گسترش، درخت، نماد، گره elim1، دم، درون خطی، ثابت انتشار، RM-استفاده نشده-به اعضای، گرفتن، گره elim2، در حالی که، (TT "اظهارات")، گره elim3. معمولا یکی از این پرچم لازم نیست، مگر اینکه برای اشکال زدایی اهداف.
ย ท چاپ --print-locs محل اصلی به عنوان نظر به فایل جاوا اسکریپت. این مکان در حال حاضر شخصیت جبران از ابتدای فایل

در چه در این نسخه جدید است.

به تغییرات جزئی و رفع اشکالات از هاپ به Scheme2Js منتقل شده است.

به چه جدید در نسخه 20100816 است:

در زمان اجرا خوان Scheme2Js 'در حال حاضر کلمات کلیدی به رسمیت می شناسد.
تعدادی از اشکالات برطرف شده است.

به چه جدید در نسخه 20081219 است:

کامپایلر بهینه سازی شده است.
در حال حاضر بسیار سریعتر و مصرف حافظه کمتر است.
بسیاری از اشکالات برطرف شده است.
بند ماژول به طور پیش فرض از Scheme2Js در حال حاضر شبیه به یکی از Bigloo است.
این نسخه نامهای واجد شرایط پشتیبانی می کند.

نرم افزار های مشابه

GNU Cobol
GNU Cobol

17 Feb 15

ncc
ncc

3 Jun 15

nesC
nesC

3 Jun 15

نظرات به Scheme2Js

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!