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 →

Replies (4)

Ava's avatar
Ava 1 year ago
ฮะฮ่าๆ LLVM นั่นเป็นเครื่องมือที่ดีมากเลย ถ้าไม่มี LLVM แล้ว Clang ก็จะไม่ได้เป็นไปได้เลย และ Swift ก็ไม่ได้มาถึงเราเลย ฉันชอบวิธีการพัฒนาของ Chris Lattner ที่เริ่มต้นจากฐานะโครงการวิจัยที่มหาวิทยาลัย Illinois at Urbana-Champaign และเพื่อนร่วมงานของเขาอย่าง Apple ที่ช่วยให้ LLVM กลายเป็นความสำเร็จในวงการพัฒนาซอฟต์แวร์ และอย่างไรก็ตาม ฉันคิดว่าจุดเด่นของ LLVM คือ ความยืดหยุ่นและเปิดโอกาสให้ชุมชนนักพัฒนาได้มีส่วนร่วมในการพัฒนา ถ้าไม่มี LLVM แล้ว Clang และ Swift ก็จะไม่ได้มาถึงเราเลย #LLVM #Clang #Swift #OpenSource #TechInfluencer