C# và kiến trúc .NET part 5
Số trang: 11
Loại file: pdf
Dung lượng: 191.32 KB
Lượt xem: 14
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Tìm hiểu về Intermediate Language Như chúng ta đã biết, Intermediate Language hoạt động như là bản chất của .NET Framework. Là lập trình viên C#, chúng ta nên biết rằng mã C# sẽ luôn được dịch sang Intermediate Language trước khi nó được thực thi
Nội dung trích xuất từ tài liệu:
C# và kiến trúc .NET part 5Tìm hiểu về Intermediate LanguageNhư chúng ta đã biết, Intermediate Language hoạt động như là bản chất của .NETFramework. Là lập trình viên C#, chúng ta nên biết rằng mã C# sẽ luôn được dịch sangIntermediate Language trước khi nó được thực thi (thật vậy, trình biên dịch C# chỉ dịchsang mã có quản). Chúng ta hãy cùng khám phá các tính năng chính của IL, bất kì ngônngữ nào hướng .NET cũng sẽ hỗ trợ các đặc tính chính của IL.Sau đây là những đặc tính chính của Intermediate Language: • Hướng đối tượng và dùng interfaces • Sự tách biệt giữa kiểu giá trị và kiểu tham chiếu • Định kiểu mạnh • Quản lỗi thông qua các ngoại lệ • Sự dụng các thuộc tínhBây giờ chúng ta sẽ cùng khám phá các đặc tính trên.Hỗ trợ hướng đối tượng và dùng giao diệnNgôn ngữ độc lập nền của .NET có một vài giới hạn riêng. Cụ thể trong lúc thực thi ILchắc chắn sẽ thực thi một cách thức lập trình riêng, và các ngôn ngữ khác phải chú ý đếnviệc tương thích với cách thức lập trình này. IL đã được Microsoft phát triển như là mộtngôn ngữ hướng đối tượng cổ điển hỗ trợ đầy đủ thừa kế đơn giữa các lớp.Bên cạnh lập trình hướng đối tượng đơn, Intermediate Language còn nêu ra ý tưởng vềinterfaces (giao diện), cái đã được tích hợp trong Windows với giao diện COM. .NET nókhông giống như giao diện COM; chúng không cần phải hỗ trợ bất kì một kiến trúc COMnào (ví dụ, chúng không xuất phát từ IUnknown, và chúng cũng không liên quan gì đếncác GUID). Tuy nhiên chúng có thể dùng chung các giao diện COM.Hướng đối tượng và thực thi chéo ngôn ngữBây chúng ta sẽ tìm hiểu về hoạt động của .NET nghĩa là hoạt động biên dịch sang mãIntermediate Language, điều đó nói lên rằng bạn cần phải lập trình theo cách thức hướngđối tượng truyền thống. Không những thế chúng còn cung cấp cho chúng ta khả năngchuyển giao ngôn ngữ. Sau cùng, C++ và Java cả hai đều dùng những biến thể của hướngđối tượng, dù vậy chúng vẫn còn được quan tâm để có thể thực thi chéo. Chúng ta cầntìm hiểu một chút về thực thi chéo ngôn ngữ.Trước tiên chúng ta cần hiểu chính xác thực thi ngôn ngữ chéo là gì. Sau cùng, COM chophép các thành phần được viết bởi các ngôn ngữ khác nhau có thể thực thi chéo. COM, làmột nhị phân chuẩn, cho phép các thành phần có thể hiểu nhau và có thể gọi các phươngthức cũng như thuộc tính lẫn nhau mà không cần quan tâm đến ngôn ngữ đã tạo ra chúng.Để làm được điều đó mỗi đối tượng phải có khả năng giao tiếp với thời gian chạy củaCOM, và phải có khả năng truy cập thông qua một giao diện. Các thành phần chỉ có thểgiao tiếp với nhau trong thời gian chạy COM. Dù rằng các thành phần của COM có thểgiao tiếp với nhau bất chấp ngôn ngữ đã tạo ra chúng, tuy nhiên COM không hỗ trợ hoạtđộng thừa kế, chính vì thế nó đã đánh mất các thuận lợi của lập trình hướng đối tượng.Một vấn đề xảy ra khi bẫy lỗi là các thành thành phần phải được bẫy lỗi trong ngôn ngữđã tạo chúng, và bạn không thể bẫy lỗi từng bước trên các ngôn ngữ khác nhau. Vậy thựcthi chéo ngôn ngữ được hiểu như là các lớp được tạo ra trong một ngôn ngữ có thể giaotiếp lẫn nhau với các lớp được tạo ra trong các ngôn ngữ khác. Cụ thể là: • Một lớp được tạo ra trong một ngôn ngữ có thể thừa kế từ một lớp được viết trong một ngôn ngữ khác. • Một lớp có thể chứa thể hiện của một lớp khác không quan tâm đến ngôn ngữ đã tạo ra hai lớp đó. • Một đối tượng có thể gọi trực tiếp phương thức của một đối tượng khác được viết bởi một ngôn ngữ khác. • Các đối tượng (hoặc các tham chiếu đến các đối tượng) có thể được truyền qua lại giữa các hàm • Bạn có khả năng bẫy lỗi từng bước chương trình nguồn giữa các ngôn khác nhauThật bất ngờ về những gì mà .NET và thực thi ngôn ngữ chéo đã làm được. Tiện ích bẫylỗi từng được giới thiệu như là khả năng của Visual Studio .NET IDE hơn là CLR.Sự khác biệt giữa kiểu dữ liệu giá trị và kiểu dữ liệu tham chiếuNhư bất kì ngôn ngữ lập trình nào, IL cung cấp một số tiền định nghĩa về các kiểu dữ liệunguyên thủy. Một đặc trưng của Intermediate Language là phân biệt rạch ròi giữa kiểu dữliệu giá trị và kiểu dữ liệu tham chiếu. Kiểu giá trị là các biến được dùng để lưu trực tiếpgiá trị, trong khi đó kiểu tham chiếu là các biến chứa địa chỉ của dữ liệu.Trong C++, kiểu tham chiếu có thể coi như là một con trỏ, trong khi đó ở Visual Basic,kiểu tham chiếu có thể coi là các đối tượng, trong VB 6 luôn truy cập thông qua thamchiếu. Intermediate Language cũng chỉ rõ về cách thức lưu trữ dữ liệu: ví như một kiểutham chiếu luôn được lưu trong vùng managed heap của bộ nhớ, trong khi đó kiểu giá trịlại được lưu trong stack (tuy nhiên nếu kiểu dữ liệu được khai báo là một trường của kiểutham chiếu, chúng vẫn được lưu ở heap). Chúng ta sẽ bàn về stack và heap trong chương3.Định kiểu mạnhMột điểm mạnh trong IL là định kiểu mạnh. Nghĩa là tất cả các biếu đều được đánh dấurõ ràng và chuyên biệt về kiểu dữ liệu (IL không còn ...
Nội dung trích xuất từ tài liệu:
C# và kiến trúc .NET part 5Tìm hiểu về Intermediate LanguageNhư chúng ta đã biết, Intermediate Language hoạt động như là bản chất của .NETFramework. Là lập trình viên C#, chúng ta nên biết rằng mã C# sẽ luôn được dịch sangIntermediate Language trước khi nó được thực thi (thật vậy, trình biên dịch C# chỉ dịchsang mã có quản). Chúng ta hãy cùng khám phá các tính năng chính của IL, bất kì ngônngữ nào hướng .NET cũng sẽ hỗ trợ các đặc tính chính của IL.Sau đây là những đặc tính chính của Intermediate Language: • Hướng đối tượng và dùng interfaces • Sự tách biệt giữa kiểu giá trị và kiểu tham chiếu • Định kiểu mạnh • Quản lỗi thông qua các ngoại lệ • Sự dụng các thuộc tínhBây giờ chúng ta sẽ cùng khám phá các đặc tính trên.Hỗ trợ hướng đối tượng và dùng giao diệnNgôn ngữ độc lập nền của .NET có một vài giới hạn riêng. Cụ thể trong lúc thực thi ILchắc chắn sẽ thực thi một cách thức lập trình riêng, và các ngôn ngữ khác phải chú ý đếnviệc tương thích với cách thức lập trình này. IL đã được Microsoft phát triển như là mộtngôn ngữ hướng đối tượng cổ điển hỗ trợ đầy đủ thừa kế đơn giữa các lớp.Bên cạnh lập trình hướng đối tượng đơn, Intermediate Language còn nêu ra ý tưởng vềinterfaces (giao diện), cái đã được tích hợp trong Windows với giao diện COM. .NET nókhông giống như giao diện COM; chúng không cần phải hỗ trợ bất kì một kiến trúc COMnào (ví dụ, chúng không xuất phát từ IUnknown, và chúng cũng không liên quan gì đếncác GUID). Tuy nhiên chúng có thể dùng chung các giao diện COM.Hướng đối tượng và thực thi chéo ngôn ngữBây chúng ta sẽ tìm hiểu về hoạt động của .NET nghĩa là hoạt động biên dịch sang mãIntermediate Language, điều đó nói lên rằng bạn cần phải lập trình theo cách thức hướngđối tượng truyền thống. Không những thế chúng còn cung cấp cho chúng ta khả năngchuyển giao ngôn ngữ. Sau cùng, C++ và Java cả hai đều dùng những biến thể của hướngđối tượng, dù vậy chúng vẫn còn được quan tâm để có thể thực thi chéo. Chúng ta cầntìm hiểu một chút về thực thi chéo ngôn ngữ.Trước tiên chúng ta cần hiểu chính xác thực thi ngôn ngữ chéo là gì. Sau cùng, COM chophép các thành phần được viết bởi các ngôn ngữ khác nhau có thể thực thi chéo. COM, làmột nhị phân chuẩn, cho phép các thành phần có thể hiểu nhau và có thể gọi các phươngthức cũng như thuộc tính lẫn nhau mà không cần quan tâm đến ngôn ngữ đã tạo ra chúng.Để làm được điều đó mỗi đối tượng phải có khả năng giao tiếp với thời gian chạy củaCOM, và phải có khả năng truy cập thông qua một giao diện. Các thành phần chỉ có thểgiao tiếp với nhau trong thời gian chạy COM. Dù rằng các thành phần của COM có thểgiao tiếp với nhau bất chấp ngôn ngữ đã tạo ra chúng, tuy nhiên COM không hỗ trợ hoạtđộng thừa kế, chính vì thế nó đã đánh mất các thuận lợi của lập trình hướng đối tượng.Một vấn đề xảy ra khi bẫy lỗi là các thành thành phần phải được bẫy lỗi trong ngôn ngữđã tạo chúng, và bạn không thể bẫy lỗi từng bước trên các ngôn ngữ khác nhau. Vậy thựcthi chéo ngôn ngữ được hiểu như là các lớp được tạo ra trong một ngôn ngữ có thể giaotiếp lẫn nhau với các lớp được tạo ra trong các ngôn ngữ khác. Cụ thể là: • Một lớp được tạo ra trong một ngôn ngữ có thể thừa kế từ một lớp được viết trong một ngôn ngữ khác. • Một lớp có thể chứa thể hiện của một lớp khác không quan tâm đến ngôn ngữ đã tạo ra hai lớp đó. • Một đối tượng có thể gọi trực tiếp phương thức của một đối tượng khác được viết bởi một ngôn ngữ khác. • Các đối tượng (hoặc các tham chiếu đến các đối tượng) có thể được truyền qua lại giữa các hàm • Bạn có khả năng bẫy lỗi từng bước chương trình nguồn giữa các ngôn khác nhauThật bất ngờ về những gì mà .NET và thực thi ngôn ngữ chéo đã làm được. Tiện ích bẫylỗi từng được giới thiệu như là khả năng của Visual Studio .NET IDE hơn là CLR.Sự khác biệt giữa kiểu dữ liệu giá trị và kiểu dữ liệu tham chiếuNhư bất kì ngôn ngữ lập trình nào, IL cung cấp một số tiền định nghĩa về các kiểu dữ liệunguyên thủy. Một đặc trưng của Intermediate Language là phân biệt rạch ròi giữa kiểu dữliệu giá trị và kiểu dữ liệu tham chiếu. Kiểu giá trị là các biến được dùng để lưu trực tiếpgiá trị, trong khi đó kiểu tham chiếu là các biến chứa địa chỉ của dữ liệu.Trong C++, kiểu tham chiếu có thể coi như là một con trỏ, trong khi đó ở Visual Basic,kiểu tham chiếu có thể coi là các đối tượng, trong VB 6 luôn truy cập thông qua thamchiếu. Intermediate Language cũng chỉ rõ về cách thức lưu trữ dữ liệu: ví như một kiểutham chiếu luôn được lưu trong vùng managed heap của bộ nhớ, trong khi đó kiểu giá trịlại được lưu trong stack (tuy nhiên nếu kiểu dữ liệu được khai báo là một trường của kiểutham chiếu, chúng vẫn được lưu ở heap). Chúng ta sẽ bàn về stack và heap trong chương3.Định kiểu mạnhMột điểm mạnh trong IL là định kiểu mạnh. Nghĩa là tất cả các biếu đều được đánh dấurõ ràng và chuyên biệt về kiểu dữ liệu (IL không còn ...
Tìm kiếm theo từ khóa liên quan:
máy tính mạng máy tính internet C# ngôn ngữ C# ngôn ngữ ngôn ngữ lập trình lập trình phần mềm file ứng dụngTài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 283 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 281 0 0 -
Giáo án Tin học lớp 9 (Trọn bộ cả năm)
149 trang 280 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 276 0 0 -
Bài giảng: Lịch sử phát triển hệ thống mạng
118 trang 260 0 0 -
Giáo trình Hệ thống mạng máy tính CCNA (Tập 4): Phần 2
102 trang 258 0 0 -
Ngân hàng câu hỏi trắc nghiệm môn mạng máy tính
99 trang 258 1 0 -
47 trang 242 3 0
-
Đề cương chi tiết học phần Thiết kế và cài đặt mạng
3 trang 241 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 235 0 0