โครงการชุดคอมไพเลอร์โอเพนซอร์ส LLVM มีคอมไพเลอร์ภาษา C/C++/Objective-C ชื่อว่า Clang ที่ถูกใช้งานอย่างแพร่หลาย ปกติแล้ว Clang ทำงานบนระบบปฏิบัติการสายยูนิกซ์ แต่ก็สามารถใช้บนวินโดวส์ได้ด้วย
ล่าสุด Clang ได้ผู้สนับสนุนรายใหม่คือ "ไมโครซอฟท์" ที่ปกติแล้วใช้ Visual C++ ของตัวเองเสมอมา (Clang เริ่มพัฒนาโดยแอปเปิล แต่ปัจจุบันดูแลโดยชุมชน)
นโยบายใหม่ของไมโครซอฟท์มาจาก การเปิดให้ Visual Studio คอมไพล์โค้ดจาก Android/iOS ทำให้ไมโครซอฟท์จำเป็นต้องหาคอมไพเลอร์ที่ทำงานบนแพลตฟอร์มอื่นๆ ได้ด้วย ซึ่ง Clang ก็มารับบทนี้
ไมโครซอฟท์อธิบายการทำงานของการคอมไพล์เป็นแผนภาพด้านล่าง
โค้ดส่วนที่เจาะจงกับแพลตฟอร์มคือ (1) และ (3) ส่วน (2) ที่เป็น logic หลักของโปรแกรม สามารถทำงานได้ข้ามแพลตฟอร์ม
เดิมทีไมโครซอฟท์ใช้ Visual C++ คอมไพล์ (2) เมื่อใช้บนวินโดวส์ และใช้ Clang คอมไพล์ (2) เมื่อใช้บนระบบปฏิบัติการอื่นๆ ปัญหาของแนวทางนี้คือต้องคอมไพล์สองที และไบนารีที่ได้อาจไม่ตรงกัน ยากแก่การดีบั๊ก
สิ่งที่ไมโครซอฟท์ทำคือไปช่วยพัฒนา Clang ให้ทำงานบนวินโดวส์ได้ดีขึ้น และเปลี่ยนมาใช้ Clang คอมไพล์ (2) เมื่อทำงานบนวินโดวส์แทนการใช้ Visual C++ (อย่างไรก็ตาม ไมโครซอฟท์ยังใช้ Visual C++ คอมไพล์ (1) และ (3) อยู่เหมือนเดิม เพราะเป็นโค้ดที่ผูกติดกับแพลตฟอร์ม และกระบวนการสร้างโค้ดไบนารีหรือ code-generation ยังใช้ Visual C++ ในทั้งสามส่วน)
ไมโครซอฟท์บอกว่าเทคโนโลยีใหม่นี้ยังอยู่ในช่วงเริ่มต้น และจะเผยข้อมูลเพิ่มเติมอีกในอนาคต
ที่มา - Visual C++ Team Blog via Phoronix