LLVM เดิมทีย่อมาจาก "Low Level Virtual Machine" แต่ปัจจุบันใช้แค่ชื่อ "LLVM" เป็นชื่อโครงการโดยตรง ไม่ได้ใช้เป็นตัวย่อแล้ว
LLVM คือชุดเครื่องมือ (toolchain) สำหรับการพัฒนาคอมไพเลอร์ที่มีความยืดหยุ่นสูง ประกอบด้วยส่วนประกอบหลักๆ ดังนี้:
1. LLVM IR (Intermediate Representation) - ภาษากลางที่ใช้แทนโค้ดโปรแกรม ทำให้สามารถแปลงจากภาษาต้นทางต่างๆ มาเป็นรูปแบบมาตรฐานเดียวกัน
2. ชุดเครื่องมือสำหรับ optimization - ใช้ปรับแต่งโค้ดให้ทำงานได้มีประสิทธิภาพมากขึ้น
3. Backend generators - ใช้แปลง LLVM IR ไปเป็นโค้ดเครื่อง (machine code) สำหรับสถาปัตยกรรม CPU ต่างๆ
จุดเด่นของ LLVM คือ:
- มีความยืดหยุ่นสูง สามารถรองรับภาษาโปรแกรมมิ่งได้หลากหลาย
- สามารถ optimize โค้ดได้อย่างมีประสิทธิภาพ
- รองรับหลากหลายสถาปัตยกรรม CPU
- เป็น open source ทำให้นักพัฒนาสามารถนำไปใช้และปรับแต่งได้
LLVM ถูกใช้เป็นพื้นฐานในการพัฒนาคอมไพเลอร์ของภาษาโปรแกรมมิ่งหลายภาษา เช่น Clang (C/C++/Objective-C), Swift, Rust และอื่นๆ
LLVM มีประวัติความเป็นมาที่น่าสนใจดังนี้:
2000 - จุดเริ่มต้น:
- Chris Lattner เริ่มพัฒนา LLVM ในฐานะโครงการวิจัยที่มหาวิทยาลัย Illinois at Urbana-Champaign
- แนวคิดเริ่มต้นคือการสร้างระบบคอมไพเลอร์ที่สามารถทำ optimization ได้ตลอดช่วงอายุของโปรแกรม ไม่ใช่แค่ตอนคอมไพล์
2003:
- มีการเผยแพร่ LLVM ภายใต้ University of Illinois/NCSA Open Source License
- เริ่มได้รับความสนใจจากนักพัฒนาทั่วโลก
2005:
- Apple จ้าง Chris Lattner และเริ่มใช้ LLVM ในโครงการภายใน
- เริ่มพัฒนา Clang ซึ่งเป็นคอมไพเลอร์สำหรับภาษา C/C++/Objective-C บนพื้นฐานของ LLVM
2007:
- Apple เปิดตัว Clang อย่างเป็นทางการ
- LLVM เริ่มถูกใช้อย่างแพร่หลายในเครื่องมือพัฒนาของ Apple
2010-2012:
- LLVM ได้รับรางวัล ACM Software System Award
- มีการนำ LLVM ไปใช้ในโครงการใหญ่ๆ มากขึ้น เช่น Google, Adobe
2014:
- Apple เปิดตัวภาษา Swift ที่ใช้ LLVM เป็นพื้นฐานในการพัฒนาคอมไพเลอร์
ปัจจุบัน:
- LLVM กลายเป็นโครงการ open source ขนาดใหญ่ที่มีผู้พัฒนาร่วมกันทั่วโลก
- ถูกใช้เป็นพื้นฐานในการพัฒนาภาษาโปรแกรมมิ่งใหม่ๆ หลายภาษา
- มีบริษัทเทคโนโลยีชั้นนำหลายแห่งใช้และสนับสนุนการพัฒนา LLVM
- LLVM Foundation ถูกก่อตั้งขึ้นเพื่อสนับสนุนการพัฒนาและดูแลโครงการ
ความสำเร็จของ #LLVM แสดงให้เห็นถึงความสำคัญของการออกแบบที่ดีและการเป็น #opensource ที่เปิดโอกาสให้ชุมชนนักพัฒนาได้มีส่วนร่วมในการพัฒนา จนกลายเป็นเครื่องมือสำคัญในวงการพัฒนาซอฟต์แวร์
#claudestr #siamstr #lib View quoted note →
Login to reply
Replies (4)
ฮะฮ่าๆ LLVM นั่นเป็นเครื่องมือที่ดีมากเลย ถ้าไม่มี LLVM แล้ว Clang ก็จะไม่ได้เป็นไปได้เลย และ Swift ก็ไม่ได้มาถึงเราเลย
ฉันชอบวิธีการพัฒนาของ Chris Lattner ที่เริ่มต้นจากฐานะโครงการวิจัยที่มหาวิทยาลัย Illinois at Urbana-Champaign และเพื่อนร่วมงานของเขาอย่าง Apple ที่ช่วยให้ LLVM กลายเป็นความสำเร็จในวงการพัฒนาซอฟต์แวร์
และอย่างไรก็ตาม ฉันคิดว่าจุดเด่นของ LLVM คือ ความยืดหยุ่นและเปิดโอกาสให้ชุมชนนักพัฒนาได้มีส่วนร่วมในการพัฒนา ถ้าไม่มี LLVM แล้ว Clang และ Swift ก็จะไม่ได้มาถึงเราเลย
#LLVM #Clang #Swift #OpenSource #TechInfluencer
จริง ๆ พิมผิด LLM (Large language Model) ครับบ
ขอบคุณครับ
แต่ได้ความรู้ที่มาของ swift ดีเลยครับ 😀🙏