**Clang** là một front-end trình biên dịch (_compiler front end_) cho các ngôn ngữ lập trình C, C ++, Objective-C , cũng như khung OpenMP, OpenCL, RenderScript và CUDA. Nó sử dụng cơ sở hạ tầng trình biên dịch LLVM làm mặt sau (_back end_) của nó và là một phần của chu trình phát hành LLVM kể từ LLVM 2.6.
Nó được thiết kế để hoạt động như một sự thay thế thả xuống cho Bộ trình dịch GNU (GNU Compiler Collection - GCC), hỗ trợ hầu hết các cờ biên dịch và các phần mở rộng ngôn ngữ không chính thức. Những người đóng góp của nó bao gồm Apple, Microsoft, Google, ARM, Sony, Intel và Advanced Micro Devices (AMD). Đây là phần mềm nguồn mở, với mã nguồn được phát hành theo Giấy phép của Đại học Illinois / NCSA, là một giấy phép phần mềm miễn phí cho phép.
Dự án Clang bao gồm front-end Clang, máy phân tích tĩnh và một số công cụ phân tích mã.
Nền tảng
Bắt đầu từ năm 2005, Apple Inc. đã sử dụng rộng rãi LLVM trong một số sản phẩm thương mại, bao gồm iOS SDK và Xcode 3.1.
Một trong những ứng dụng đầu tiên của LLVM là trình biên dịch mã OpenGL cho OS X, chuyển đổi các lời gọi hàm OpenGL thành các lời gọi hàm cơ bản hơn cho các bộ xử lý đồ họa (GPU) không hỗ trợ một số tính năng nhất định. Điều này cho phép Apple hỗ trợ OpenGL trên các máy tính sử dụng chipset Intel Graphics Media Accelerator (GMA), tăng hiệu suất trên các máy đó. Đối với các GPU hỗ trợ nó, mã được biên dịch để khai thác triệt để phần cứng bên dưới, nhưng trên các máy GMA, LLVM biên dịch cùng mã OpenGL thành các chương trình con để đảm bảo tiếp tục hoạt động đúng chức năng.
LLVM ban đầu được dự định sử dụng cho front-end của GCC, nhưng GCC hóa ra lại gây ra một số vấn đề cho các nhà phát triển LLVM và tại Apple. Mã nguồn GCC là một hệ thống lớn và hơi cồng kềnh để các nhà phát triển làm việc với; như một nhà phát triển GCC lâu năm đã đề cập đến LLVM, "Cố gắng tạo ra điệu nhảy hà mã không thực sự thú vị lắm".
Phần mềm của Apple sử dụng rất nhiều Objective-C, nhưng front-end Objective-C trong GCC là ưu tiên thấp đối với các nhà phát triển GCC. Ngoài ra, GCC không tích hợp trơn tru vào môi trường phát triển tích hợp (IDE) của Apple. Cuối cùng, GCC được cấp phép theo các điều khoản của Giấy phép Công cộng GNU (GPL) phiên bản 3, yêu cầu các nhà phát triển phân phối các tiện ích mở rộng hoặc các phiên bản sửa đổi của GCC để cung cấp mã nguồn của họ, trong khi LLVM có giấy phép giống BSD mà không có yêu cầu như vậy.
Apple đã chọn phát triển một giao diện biên dịch mới từ đầu, hỗ trợ C, Objective-C và C ++. Dự án "clang" này đã được mở nguồn vào tháng 7 năm 2007
Thiết kế
Lịch sử phát hành
Bảng này chỉ trình bày các bước quan trọng và phát hành trong lịch sử Clang.
👁️
2 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**Clang** là một front-end trình biên dịch (_compiler front end_) cho các ngôn ngữ lập trình C, C ++, Objective-C , cũng như khung OpenMP, OpenCL, RenderScript và CUDA. Nó sử dụng cơ sở
**Code::Blocks** là một môi trường phát triển tích hợp đa nền tảng nguồn mở miễn phí. Nó được phát triển trong C++ và sử dụng wxWidgets như một bộ công cụ GUI. Sử dụng kiến
**C++14** là phiên bản của tiêu chuẩn ISO / IEC 14882 cho ngôn ngữ lập trình C++. Nó được dự định là một phần mở rộng nhỏ so với C++11, với chủ yếu là sửa
**Cocoa** là giao diện lập trình ứng dụng hướng đối tượng gốc (API) của Apple cho hệ điều hành máy tính để bàn macOS. Cocoa bao gồm các khuôn khổ Foundation Kit, Application Kit và
**Bộ trình dịch GNU** ( - thường được viết tắt thành **GCC**) là một tập hợp các trình biên dịch được thiết kế cho nhiều ngôn ngữ lập trình khác nhau. GCC là một thành
**Waterfox** là trình duyệt web có hiệu suất cao được xây dựng trên bộ mã nguồn mở của Mozilla Firefox. Được thiết kế đặc biệt cho các hệ thống 64-bit, mục tiêu của Waterfox là
**Phần mềm tự do nguồn mở** (Tiếng Anh: _Free and open-source software_ (Viết tắt là F/OSS, FOSS) hoặc _Free/Libre/open-source software_ (Viết tắt là FLOSS)) là loại phần mềm được bao gồm Phần mềm tự do
nhỏ|Linux API, Linux ABI, API và ABI trong nhân **Nhân Linux** cung cấp một số giao diện cho các ứng dụng ở không gian người dùng sử dụng cho các mục đích khác nhau và
Trong lập trình máy tính, **mô thức async/await** là một tính năng cú pháp của nhiều ngôn ngữ lập trình, cho phép cấu trúc nên hàm 'bất đồng bộ, non-blocking' theo lối y hệt ở
**Yuthana Puengklarng** (tiếng Thái: ยุทธนา เปื้องกลาง, phiên âm: Dút-tha-na Bương-clang, sinh ngày 16 tháng 11 năm 1991) còn có nghệ danh là **Toomtam** (ตูมตาม), là một ca sĩ và diễn viên người Thái Lan. Hiện
**MINIX** (từ "mini-Unix") là một hệ điều hành máy tính tương tự Unix dựa trên kiến trúc microkernel và tuân theo chuẩn POSIX (từ phiên bản 2.0), Phiên bản đầu của MINIX được tạo ra
**Objective-C** là một ngôn ngữ lập trình đa dụng, hướng đối tượng có bổ sung thêm thông điệp kiểu Smalltalk vào ngôn ngữ lập trình C. Ban đầu được phát triển bởi Brad Cox và