LLVM 4.0 thêm hỗ trợ dành cho coroutines

Ngoc Huynh

Trình biên dịch mã nguồn mở hiện có thể tối ưu code cho các ngôn ngữ có tính năng này, ngoài Swift và Rust – vẫn còn đang trong giai đoạn phát triển.

LLVM là một trình biên dịch mã nguồn mở đã được sử dụng như là một phần của toolchain dành cho các ngôn ngữ như Rust và Swift, đã chính thức bước sang phiên bản 4.0.

Sự bổ sung gây chú ý nhất là hỗ trợ dành cho coroutines, một nền tảng xây dựng có trong nhiều ngôn ngữ lập trình hiện đại.

Trước đây, một ngôn ngữ với coroutines được biên dịch bằng LLVM sẽ phải triển khai coroutines bằng tay. LLVM 4.0 thêm hỗ trợ để trình bày coroutines trực tiếp trong trình biên dịch qua các chỉ dẫn mới trong một ngôn ngữ lập trình cấp thấp gọi là intermediate representation (IR) của nó.

Hiện tại, hỗ trợ coroutine đang được thử nghiệm và được kích hoạt rõ ràng trong LLVM để làm việc. Nó cũng còn phải được kích hoạt từ phía ngôn ngữ; việc tái biên dịch code hiện có trong LLVM 4.0 sẽ không tự động thêm chỉ dẫn coroutine.

Cuối cùng, bước tiếp theo sẽ là dành cho các ngôn ngữ được hỗ trợ LLVM nhằm sử dụng hỗ trợ coroutine trong trình biên dịch. Rust, một trong những dự án nổi bật nhất đang sử dụng LLVM hiện nay, có khả năng sẽ là ngôn ngữ tiếp theo. Nhưng trớ trêu thay, Rust không có coroutines như là một tính năng của một native language.

Đối với Swift, thì hiện tại vẫn còn nhiều cuộc bàn luận về việc thêm coroutines và các tính năng concurrency, mặc dù đã được dự kiến sẽ thêm vào phiên bản tiếp theo của Swift.

Đối với C++, coroutines đã được tích hợp với LLVM một cách chặt chẽ.

Chia sẻ bài viết ngay

Nguồn bài viết : http://www.infoworld.com