Bình luận Máy ảo và clr là gì, nghĩa của từ clr

Tổng hợp Máy ảo và clr là gì, nghĩa của từ clr là ý tưởng trong bài viết hiện tại của Tên game hay Đao Tháp. Tham khảo nội dung để biết chi tiết nhé.

Common Language Runtime (CLR): Bộ thực thi ngôn ngữ chung..Net Framework Class Library

Bộ biên dịch CLR: là 1 thành phần trung tâm của .Net framework với nhiệm vụ thực hiện biên dịch các chương trình. cái nào khủng hay nhanh hay không là đều dựa vào cái trình biên dịch của nó này — cái này bên Java là JVM ( Java Vitual Machine) nhé.

Bạn đang xem: Clr là gì

*

+ Các dịch vụ mà CLR cung cấp cho ta như sau:

– Nạp và thực thi chương trình– Phân chia vùng nhớ của ứng dụng– Xác minh tính an toàn của kiểu dữ liệu– Dịch mã IL thành mà máy thực thi được– Cung cấp metadata– Quản lý bộ nhớ tự động (automatic garbage collection)– Thực thi bảo mật– Quản lý lỗi và ngoại lệ– Hỗ trợ các công việc như debug hoặc profile ứng dụng– Liên kết với các hệ thống khác

.NET Assemblies

*

Sau khi Project .NET được biên dịch, cho dù bạn dùng ngôn ngữ nào thì ngôn ngữ đó đều được đưa về ngôn ngữ CIL. CIL nằm trong khốiAssembly, khối này bao gồm các thành phần sau:

A Windows file headerA CLR file headerCIL codeType metadataAn assembly manifestOptional embedded resources

quangcao

Khái niệm thì phức tạp, để đơn giản có thể hiểu một ứng dụng .NET có thể có nhiều assembly và assembly có thể là *.DLL hoặc *.EXE. Assembly có hai kiểu:

Private Assembly: DLL và EXE chỉ được thực thi bởi một ứng dụngPublic/Shared Assembly: DLL có thể được sử dụng bởi nhiều ứng dụng cùng lúc. Loại này thường được lưu trữ tại“C:WindowsAssembly”Satellite Assembly: Chứa các đối tượng tĩnh và không thể thực thi ví dụ như ảnh.

+ Cách hoạt động của bộ biên dịch: CLR cung cấp môi trường Run-Time, bạn có thể hiểu đó là một môi trường cung cấp các dịch vụ có sẵn để giúp chương trình .NET chạy được và dễ dàng.Các đoạn mã được viết bằng .Net sẽ được biên dịch thành ra mã trung gian MSIL (Microsoft Intermediate Language). Khi thực thi chương trình 1 lần nữa CLR sẽ biên dịch các mã trung gian MSIL này thành mã máy để thực thi.

Xem thêm: Chuẩn Gpt Là Gì – ổ Cứng Chuẩn Mbr Và Gpt Là Gì

Nói một cách khác nó biên dịch assembly thành mã máy.

Quá trình biên dịch và chạy chương trình trên nền .NET

*
*
*
*

quangcao

CLR là gần giống như 1 assemply nhưng không phải là assemply *

=> Vậy vấn đề là tại sao lại cần phải dịch qua ngôn ngữ trung gian: Như ta đã biến thì .Net framework là 1 nền tảng và nó cho phép các ứng dụng họ nhà .Net phát triển các ứng dụng trên nó… Điều này sẽ là mất tri chi phí nếu như 1 chức năng được xây dựng trên ngôn ngữ này khi sang ngôn ngữ khác cũng thuộc họ .Net lại phải phát triển lại… Chẳng hạn viết 1 bộ thư viện xử lý chuỗi trên Visual Basic sang C# lại phải viết lại => .Net framework cung cấp 1 giải pháp biên dịch qua mã trung gian MSIL và Các bộ mã này biên dịch các các mã trung gian này thành các thư viện liên kết động Dynamic Language Linked (DLL) để hỗ trợ cho việc tái sử dụng ..

Xem thêm: Văn Tự Sự Là Gì – Thế Nào Là Văn Tự Sự

VD: xây dựng 1 bộ xử lý chuỗi trên C# có thể sử dụng lại trên Visual Basic hay J#, F#, các họ ngôn ngữ nhà .Net mà ko cần xây dựng lại.

Common Type System (CTS)

.NET framework hỗ trợ nhiều ngôn ngữ và đều dùng một thành phần gọi là hệ thống kiểu chung CTS trong CLR. CTS hỗ trợ một loạt kiểu và toán tử có thể thấy trong hầu hết các ngôn ngữ lập trình nên gọi một ngôn ngữ từ một ngôn ngữ khác sẽ không yêu cầu chuyển kiểu. Dẫn đến chúng ta có thể xây dựng các ứng dụng .NET sử dụng cả ngôn ngữVB.NETlẫn C#, C++…

Chuyên mục: Hỏi Đáp