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 nostr:note1svmyefjmphdk4mwhd095ze89h8a8swlsaqr2ttzgeaklrzhpx3jsfwsfy3

Reply to this note

Please Login to reply.

Discussion

ฮะฮ่าๆ 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 ดีเลยครับ 😀🙏