Compile C Family Language using Clang (Front-end for LLVM)
สำหรับคนที่ใช้ Command Line Interface (Terminal, DOS) ในการ Compile code นั้น ผมเคยเขียนไว้แล้ว Blog หนึ่งคืออันนี้ http://www.macbaszii.com/2012/01/command-line-compiling-cc-java-windows.html ซึ่งตอนนั้นเราใช้ gcc, g++ (GNU Compiler Collection) ในการ Compile C/C++ วันนี้ผมจะมาแนะนำ Compiler ตัวใหม่ ซึ่งติดมากับ Mac OS X รุ่นใหม่ๆ ถ้าเราลง Xcode นะครับ เนื่องจากการพัฒนา Mac, iOS ณ ตอนนี้จะใช้ Compiler ตัวนี้เป็น Front-end ให้ LLVM Compiler LLVM ใช้แนวคิดแบบเวอร์ชวลแมชีนกับการคอมไพล์โปรแกรม โดยมันจะแปลงภาษาโปรแกรมที่เราคุ้นกันดีมาอยู่ในรูป intermediate form หรือ IF (คล้ายกับ Bytecode ของ Java หรือ CIL ของ .NET) จากนั้นค่อยแปลง IF เป็นภาษาเครื่องอีกทีหนึ่ง แนวทางของ LLVM ช่วยให้การรีดประสิทธิภาพทำได้ง่ายขึ้น เพราะนักพัฒนาของ LLVM สามารถเน้นไปที่การแปลง IF เป็นภาษาเครื่องเพียงขั้นตอนเดียว ส่วนการแปลงภาษาโปรแกรมเป็น IF จะใช้โค้ดอีกส่วนที่เรียกว่า front end ซึ่งรองรับภาษาที่แตกต่างกันไป (front end หลักของ LLVM สำหรับภาษา C/C++/Objective-C มีชื่อว่า Clang ) จุดเด่นขอ...