COMMON LANGUAGE RUNTIME LÀ GÌ

     

Trong bài viết trước, bọn họ đã khám phá về .NET Framework là gì? phong cách xây dựng và những thành phần của .NET Framework. Nếu khách hàng bỏ lỡ bài viết này thì chúng ta có thể xem làm việc đây:

Cung cấp cho bạn một tầm nhìn tổng quan tiền về .NET Framework, để nắm rõ các yếu tố và phong cách thiết kế của .NET Framework.

Bạn đang xem: Common language runtime là gì

Bạn đang xem: Common language runtime là gì


*

*

Trong bài viết này, họ sẽ khám phá về Common Language Runtime (CLR) trong C#. Nhưng trước lúc bắt đầu, chúng ta sẽ hiểu bí quyết một vận dụng .NET được biên dịch với chạy.

Ứng dụng .NET được biên dịch và chạy như vậy nào?

Để hiểu đúng đắn một áp dụng .NET được biên dịch với chạy như thế nào, hãy coi hình hình ảnh sau đây.


*

Đầu tiên, nhà trở nên tân tiến phải viết mã bằng bất kỳ ngôn ngữ lập trình cung cấp .NET như C#, VB, J#, v.v. Sau đó, trình biên dịch ngôn từ tương ứng đang biên dịch công tác thành một thứ hotline là Common Intermediate Language (CIL – ngôn từ trung gian chung).

Ví dụ, nếu ngữ điệu lập trình là C#, thì trình biên dịch là CSC cùng nếu ngôn ngữ lập trình là VB, thì trình biên dịch vẫn là VBC.

Ngôn ngữ trung gian bình thường (CIL) này là mã được biên dịch một nửa tức là mã được biên dịch một trong những phần và tất yêu được triển khai trực tiếp vì chưng hệ điều hành.

Vì vậy, khi bạn muốn thực thi mã CIL này trên sản phẩm công nghệ của mình, .NET Framework cung cấp một thứ gọi là Common Language Runtime (CLR – Trình thực thi ngữ điệu chung) có nhiệm vụ thực thi mã CIL của bạn.

CLR đem mã CIL (Ngôn ngữ trung gian chung) và gửi nó cho 1 thứ điện thoại tư vấn là Trình biên dịch JIT (Just-in-Time). Trình biên dịch JIT vẫn đọc mã CIL và chuyển đổi nó thành các lệnh dành riêng cho máy (tức là thành format nhị phân) rất có thể được triển khai bởi hệ điều hành bên dưới.

Common Intermediate Language (CIL)

Common Intermediate Language (CIL – ngôn ngữ trung gian chung) có cách gọi khác là Microsoft Intermediate Language (MSIL – ngữ điệu trung gian Microsoft) xuất xắc Intermediate Language (IL – ngữ điệu trung gian) là 1 tập hợp các hướng dẫn chủ quyền với gốc rễ và được tạo bởi trình biên dịch dành cho ngôn ngữ từ bỏ mã nguồn.

CIL chủ quyền với nền tảng gốc rễ và vày đó, nó hoàn toàn có thể được thực thi trên bất kỳ môi trường làm sao được cung ứng Cơ sở hạ tầng ngữ điệu chung như Windows .NET runtime.

CIL được trình biên dịch JIT biến đổi thành mã máy ví dụ trong môi trường máy tính cụ thể. Điều này được tiến hành trước lúc CIL rất có thể được thực thi. Không tính ra, CIL được chuyển đổi thành mã trang bị trên cửa hàng yêu cầu, tức là trình biên dịch JIT biên dịch CIL theo yêu mong thay vày biên dịch tổng thể nó.

Tại sao mã được biên dịch thành CIL?

Là một đơn vị phát triển, chúng ta cũng có thể đang lưu ý đến về tại sao tại sao mã được biên dịch thành CIL mà lại không biên dịch thành mã vật dụng luôn.

Lý vì chưng rất 1-1 giản. Bọn họ không biết mã công tác sẽ chạy trong môi trường thiên nhiên nào (ví dụ: Windows XP, Windows 7, Windows 10, Windows Server, v.v.).

Nói bí quyết khác, bọn họ không biết hệ quản lý và điều hành nào đã chạy ứng dụng của bọn chúng ta. Bọn họ cũng lần khần loại CPU, thông số kỹ thuật máy, cấu hình bảo mật, v.v. Vì chưng vậy, mã ứng dụng được biên dịch 1 phần thành CIL cùng được trình biên dịch JIT biên dịch thành mã máy trong thời hạn chạy.

Mã CIL này được biên dịch theo những hướng dẫn dành cho máy sử dụng các thuộc tính môi trường như phiên bản hệ điều hành, một số loại CPU, thông số kỹ thuật máy, v.v.

Common Language Runtime (CLR)

Common Language Runtime (CLR – Trình thực thi ngôn ngữ chung) là trung tâm của .NET Framework và nó chứa những thành phần sau:

Security ManagerJIT CompilerMemory ManagerGarbage CollectorException ManagerCommon Language Specification (CLS)Common Type System (CTS)

Hãy để chúng tôi bàn luận chi huyết từng yếu tắc này làm cho gì.

Xem thêm: Nộp Thuế Nhà Đất Ở Đâu ? Thủ Tục Nộp Thuế Nhà Đất 2021 Nghĩa Vụ Nộp Thuế Sử Dụng Đất Đối Với Đất Ở

Security Manager

Về cơ phiên bản có hai thành phần để làm chủ bảo mật. Bọn chúng là:

Code Access Security (CAS): Bảo mật truy cập mã.Code Verification (CV): Xác minh mã.

Hai nhân tố này về cơ bạn dạng được sử dụng để khám nghiệm các đặc quyền của người tiêu dùng hiện trên rằng người tiêu dùng có được phép truy cập vào assembly tuyệt không.

CLR cũng xem mã này có những quyền gì hoặc loại quyền hạn nào và liệu nó có an ninh khi được xúc tiến bởi hệ điều hành quản lý hay không. Do vậy, về cơ bản, những loại đánh giá này được bảo trì bởi Trình quản lý bảo mật.

JIT Compiler

Trình biên dịch JIT (Just-in-time) chịu trách nhiệm thay đổi mã CIL thành mã thiết bị được triển khai bởi máy. Phần cứng hệ thống có thể hiểu và thực hiện mã máy. JIT biên dịch mã ngay trước lúc thực thi và tiếp đến lưu bản dịch này vào cỗ nhớ.

Memory Manager

Thành phần trình quản lý bộ lưu trữ phân bổ bộ nhớ lưu trữ cần thiết cho các biến và đối tượng người tiêu dùng sẽ được vận dụng sử dụng.

Garbage Collector

Khi một áp dụng .NET chạy, khôn cùng nhiều đối tượng người tiêu dùng và trở nên được sinh sản ra. Tại một thời điểm nhất định, có thể chúng ta không có nhu cầu các đối tượng này.

Khi đó, Garbage Collector sẽ cố gắng xác định những đối tượng người dùng nào hiện tại không được ứng dụng áp dụng nữa với thu hồi bộ nhớ lưu trữ của những đối tượng người tiêu dùng đó.

Exception Manager

Thành phần Trình thống trị ngoại lệ của CLR gửi hướng bộ xử lý để thực thi những khối lệnh catch hoặc finally bất cứ lúc nào có nước ngoài lệ xảy ra trong thời hạn chạy.

Common Type System (CTS)

.NET Framework cung ứng nhiều ngôn ngữ lập trình như C#, VB.NET, J#, v.v. Mỗi ngôn ngữ lập trình đều có kiểu tài liệu riêng. Một ngữ điệu lập trình quan yếu hiểu những kiểu tài liệu của ngôn từ lập trình khác.

Tuy nhiên, hoàn toàn có thể có những tình huống khi bạn có nhu cầu viết mã bằng một ngữ điệu được call bằng những ngôn ngữ khác. Để bảo đảm giao tiếp tiếp liền giữa các ngôn ngữ này, điều quan trọng đặc biệt nhất là chúng phải tất cả một hệ thống kiểu tài liệu chung (CTS) bảo vệ rằng mẫu mã được xác định bằng hai ngôn ngữ khác nhau được biên dịch thành một kiểu dữ liệu chung.

CLR sẽ thực thi toàn bộ các kiểu tài liệu của ngữ điệu lập trình; điều này là bao gồm thể chính vì CLR vẫn chứa những kiểu dữ liệu chung cho toàn bộ các ngôn từ lập trình.

Tại thời điểm biên dịch, tất cả các kiểu dữ liệu theo ngôn ngữ cụ thể được thay đổi thành kiểu tài liệu của CLR. Hệ thống kiểu tài liệu CLR này chung cho tất cả các ngôn từ lập trình của .NET được call là Hệ thống phong cách chung (CTS).

Common Language Specification (CLS)

Common Language Specification (CLS) là 1 phần của CLR. .NET cung ứng nhiều ngôn từ lập trình với mọi ngôn ngữ lập trình đều phải có các luật lệ cú pháp riêng nhằm viết mã được call là quánh tả ngôn ngữ tức là mọi ngôn từ lập trình đều phải sở hữu đặc tả ngôn ngữ riêng.

Một ngữ điệu lập trình quan trọng hiểu các quy tắc cú pháp của ngôn từ lập trình khác (đặc tả ngôn ngữ). Mà lại CLR đang thực thi tất cả mã ngữ điệu lập trình. Điều này rất có thể xảy ra bởi vì CLR không thể hiểu ngẫu nhiên đặc tả ngôn ngữ lập trình làm sao thay vì chưng CLR tất cả đặc tả ngôn từ riêng (quy tắc cú pháp) đến CIL của nó.

Xem thêm: Từ Điển Anh Việt " Perceive Là Gì, Phân Biệt Cách Dùng Perceive

Mọi trình biên dịch ngôn ngữ phải tuân theo sệt tả ngữ điệu này của CLR tại thời điểm biên dịch và phải khởi tạo CIL. Trình biên dịch JIT của CLR sẽ khởi tạo mã vật dụng từ CIL. Đặc tả ngôn ngữ này của CLR là tầm thường cho tất cả các ngôn ngữ lập trình triển khai mã của .NET với được call là CLS.