Scheme2Js

ภาพหน้าจอของซอฟแวร์:
Scheme2Js
รายละเอียดซอฟแวร์:
รุ่น: 20101114
วันที่อัพโหลด: 11 May 15
ผู้พัฒนา: Florian Loitsch
การอนุญาต: ฟรี
ความนิยม: 106

Rating: 3.5/5 (Total Votes: 2)

Scheme2Js เป็นโครงการที่จะ Javascript คอมไพเลอร์ ขณะที่ความพยายามบางส่วนได้รับการใช้จ่ายในการเป็นใกล้เคียงเป็นไปได้ที่จะ R5rs เราเข้มข้นส่วนใหญ่ที่มีต่อประสิทธิภาพ
โดยปกติ Scheme2Js ผลิตรหัสจาวาสคริปต์ที่เทียบได้กับรหัสที่เขียนด้วยมือ เพื่อให้บรรลุผลการดำเนินงานนี้ Scheme2Js ไม่สมบูรณ์ตาม R5rs โดยเฉพาะอย่างยิ่งมันขาดการสนับสนุนสำหรับตตัวเลขที่แน่นอนและการปฏิบัติต่อ recursion หางเพียงบางส่วนเท่านั้น
Scheme2Js มีธงหลายที่ช่วยให้การปรับเปลี่ยนผล:
ยท --no-js-dot-สัญกรณ์ไม่อนุญาตให้เข้าถึงการใช้งาน JavaScript สาขาที่มีจุดสัญกรณ์ ธงนี้ปิดใช้งานการเข้าถึงของรูปแบบเซ็กซี่เหมือนใน document.getElementById แต่มันเป็นไปได้ที่จะยังคงใช้งานคือการแสดงออกที่ถูกต้องโดยใช้ฟังก์ชั่น js สนาม
ยทสตริง --mutable: เพื่อปรับปรุงประสิทธิภาพของการดำเนินงานสตริงและเพื่อความสะดวกในการเชื่อมต่อระหว่างโครงการและ JavaScript รหัสการดำเนินการเริ่มต้นโครงการแผนที่สตริงสตริง JavaScript ตรงกันข้ามกับโครงการสตริงสตริง JavaScript แต่จะไม่เปลี่ยนรูป สตริงแผนที่ธงนี้ไประดับ JavaScript, สตริงที่แสดงถึงโครงการที่มีความไม่แน่นอน รหัสที่เกิดขึ้นอาจลดลงเล็กน้อยและมันเป็นเรื่องยากมากขึ้นในการเชื่อมต่อกับรหัสจาวาสคริปต์
ยท --encapsulate ชิ้นส่วนห่อหุ้มโปรแกรมลงในฟังก์ชั่นที่ไม่ระบุชื่อ เฉพาะตัวแปรทั่วโลกอยู่นอกฟังก์ชั่นที่ไม่ระบุชื่อนี้ หนึ่งในมือนี้แนะนำสายงานหนึ่งไปยังฟังก์ชั่นที่ไม่ระบุชื่อ แต่ในทางกลับกันการใช้งานจาวาสคริส่วนใหญ่ควรจะทำงานได้เร็วขึ้นด้วยการเพิ่มประสิทธิภาพนี้: hashtables มักจะถูกนำมาใช้เพื่อเป็นตัวแทนของขอบเขตใน JavaScript โดยการใช้ฟังก์ชั่นที่ไม่ระบุชื่อโปรแกรมตัวแปรที่จะถูกแยกออกเป็นขนาดเล็กของตัวเองซึ่ง Hashtable (ในทางทฤษฎี) เร่งการเข้าถึงตัวแปรเหล่านี้ ตัวแปรที่สำคัญจะถูกเก็บไว้ใน Hashtable ของตัวเองและไม่ได้อยู่ใน Hashtable ทั่วโลกซึ่งสามารถเข้าถึงได้โดยตัวแปรทั่วโลก มันเป็นเรื่องง่ายมากที่จะปรับเปลี่ยนทางอ้อมเนื้อหาของตัวแปรทั่วโลก inlining หรืออื่น ๆ ที่เพิ่มประสิทธิภาพทั่วไปจึงเป็นไปไม่ได้ที่จะทำในตัวแปรทั่วโลก โดยการเก็บตัวแปรของโปรแกรมในฟังก์ชั่นการเพิ่มประสิทธิภาพที่ไม่ระบุชื่อเหล่านี้เป็นไปได้อีกครั้ง
ยท --optimize-var หมายเลขช่วยลดจำนวนของตัวแปรที่ใช้ในรหัส JavaScript ที่เกิด รหัสอาจทำงานได้เร็วขึ้น แต่เป็นเรื่องยากมากขึ้นในการแก้ปัญหาเป็นชื่อตัวแปรจะหายไปและตัวแปรเดียวกันอาจจะมีการใช้หลายครั้ง
ยท --optimize ขณะด้วย Scheme2Js ธงนี้เพิ่มประสิทธิภาพการร่วมกันในขณะที่ลูป ไม่ได้เพิ่มประสิทธิภาพในขณะที่ลูปมักจะมีรูปแบบ:
 ในขณะที่ (จริง) {
   ถ้า (ทดสอบ)
     resVar ละเอียด =;
   อื่น {
     modify_loop_variable;
     ยังคง;
   }
   แบ่ง;
 }
 
การเพิ่มประสิทธิภาพนี้จะมองหารูปแบบเหล่านี้และย้ายการทดสอบลงในห่วงขณะนี้:
 ในขณะที่ (ทดสอบ) {
   modify_loop_variable;
 }
 resVar ละเอียด =;
 
การเพิ่มประสิทธิภาพนี้ได้รับการดำเนินการเมื่อเร็ว ๆ นี้และดังนั้นจึงยังไม่เปิดใช้งานโดยค่าเริ่มต้น
ยท --verbose พิมพ์ข้อมูลบางอย่าง
ยท --no-inlining ปิดการใช้งานฟังก์ชั่นอิน​​ไลน์ทั้งหมด (ค่าคงที่อาจจะยังคง inlined)
ยท --inline-Globals ช่วยให้ฟังก์ชั่นแบบอินไลน์ Scheme2Js ทั่วโลกและค่าคงที่ นี้อาจมีสองผลข้างเคียงที่ไม่พึงประสงค์: หนึ่งตัวแปรทั่วโลกมักจะใช้ในการถ่ายโอนข้อมูลระหว่างโมดูลที่แตกต่างกัน บางฟังก์ชั่น inlined จะหายไปถ้ามีการอ้างอิงถึงพวกเขาอีกต่อไป ถ้าฟังก์ชั่นระดับโลกที่จะใช้นอกโมดูลหนึ่งไม่ควรใช้ธงนี้ (ลักษณะการทำงานนี้มีแนวโน้มที่จะมีการเปลี่ยนแปลงในรุ่นอนาคตของ Scheme2Js.)
ยท --unresolved เป็น-js: ถ้าตัวแปรไม่ได้ผูกไว้เป็นคอมไพเลอร์จะถือว่าตัวแปรมาจากโมดูลอื่นหรือจากการใช้งาน JavaScript ดูโครงการมาตรา - จาวาสคริปต์สำหรับการอภิปรายรายละเอียดเพิ่มเติมของอินเตอร์เฟซที่ใช้งาน JavaScript โครงการ
ยท --js นี้มีตัวแปรนี้ฟังก์ชั่นภายในโครงการ วิธีนี้ขั้นตอนโครงการสามารถใช้เป็นวิธีการของวัตถุ JavaScript
ยท --no-tailrec tailrec ปิดการใช้งานเพื่อเพิ่มประสิทธิภาพในขณะที่วง หากคุณสงสัยว่าข้อผิดพลาดในทางคอมไพเลอร์ของแปลหาง RECs คุณสามารถลองธงนี้
ยท --no-เพิ่มประสิทธิภาพการปิดการใช้งานโทร Scheme2Js inlining ของการดำเนินงานไบนารีหรือเอก sci_plus ตัวอย่างเช่น (3, 5) เหมาะที่จะ (3 + 5) การเพิ่มประสิทธิภาพนี้เป็นสิ่งสำคัญมากและมักจะมีเหตุผลที่จะปิดการใช้งานมัน
ยท --no-เพิ่มประสิทธิภาพ-consts ปิดการใช้งานการคำนวณก่อนอย่างต่อเนื่อง ยกเว้นในกรณีที่ปิดการใช้งาน (มีธงนี้) ค่าคงที่สารจะ precalculated และเกิดขึ้นของพวกเขาถูกแทนที่ด้วยการอ้างอิงกับตัวแปรการถือครองคงที่ นี้จะทำให้ซ้ำเข้าถึงคงที่เหล่านี้ได้เร็วขึ้น แต่แนะนำตัวแปรใหม่
ยท --no-เพิ่มประสิทธิภาพ-boolify ปิดการใช้งานการเพิ่มประสิทธิภาพ boolify boolify JavaScript และโครงการจะไม่เทียบเท่า: JavaScript พิจารณาเท็จ 0, โมฆะและไม่ได้กำหนดว่าเป็นเท็จในขณะที่โครงการมีเพียง # f boolify ไม่ได้เพิ่มประสิทธิภาพจึงมักจะเพิ่มการทดสอบกับเท็จถ้า (ทดสอบ == เท็จ!) ... ถ้า Scheme2Js สามารถมองเห็นว่าการทดสอบตัวเองเป็นแบบบูลจะสามารถลบที่ไม่จำเป็น == ทดสอบที่ผิดพลาด! ธงนี้ปิดใช้งานการเพิ่มประสิทธิภาพนี้
ยท --d STAGE พิมพ์ดอทไฟล์ (ดู graphviz) ของ AST หลังเวที STAGE ขั้นตอนเป็นไปได้: ขยายต้นไม้สัญลักษณ์โหนด elim1 หางแบบอินไลน์คงขยายพันธุ์ RM-ที่ไม่ได้ใช้-vars จับโหนด elim2 ในขณะที่ (tt "งบ") โหนด elim3 โดยปกติก็ไม่ต้องธงนี้เว้นแต่เพื่อวัตถุประสงค์ในการแก้จุดบกพร่อง
ยท --print-Locs พิมพ์สถานที่เดิมเป็นความคิดเห็นไปยังแฟ้ม JavaScript สถานที่เหล่านี้มีอยู่ในปัจจุบันตัวละครชดเชยจากจุดเริ่มต้นของไฟล์

มีอะไรใหม่ ในข่าวประชาสัมพันธ์ฉบับนี้.

  • ไมเนอร์ การเปลี่ยนแปลงและการ bugfixes ได้รับแจ้งจากพฮอพที่จะ Scheme2Js.

มีอะไรใหม่ ในรุ่น 20100816:.

  • Scheme2Js 'รันไทม์อ่านตอนนี้ตระหนักถึงคำหลัก
  • ข้อบกพร่องหลายคนได้รับการแก้ไข.

มีอะไรใหม่ ในรุ่น 20081219:.

  • คอมไพเลอร์ที่ได้รับการปรับให้เหมาะสม
  • ตอนนี้มันเป็นได้เร็วขึ้นมากและสิ้นเปลืองหน่วยความจำน้อย.
  • ข้อบกพร่องหลายคนได้รับการแก้ไข.
  • ข้อโมดูลเริ่มต้นของ Scheme2Js อยู่ในขณะนี้คล้ายกับหนึ่งใน Bigloo.
  • ข่าวประชาสัมพันธ์ฉบับนี้สนับสนุนชื่อที่มีคุณภาพ.

ซอฟต์แวร์ที่คล้ายกัน

ความคิดเห็นที่ Scheme2Js

ความคิดเห็นที่ไม่พบ
เพิ่มความคิดเห็น
เปิดภาพ!