30/09/2018, 19:44
Tại sao các ngôn ngữ lập trình thường cung cấp 1 số kiểu dữ liệu cơ bản?
- Vì sao các ngôn ngữ lập trình thường cung cấp trước một số kiểu dữ liệu cơ bản? Giải thích mục đích của việc này?
Bài liên quan
cũng kiểu như không khí với nước ấy, nó là cơ bản, không phải khởi tạo mà sẵn có, nó được tạo ra để làm tài nguyên ban đầu cho bạn xây dựng những tài nguyên khác…
anh nói rõ hơn một chút cho em hiểu được không anh em chưa hiểu lắm !!!
Nếu bạn có học về mạch logic sẽ thấy khi phát triển từ bộ cộng 1bit lên 2 bit sẽ phải cần thêm nhiều thứ như bộ lưu biến nhớ… Tương tự như vậy. Khi hỗ trợ kiểu 8 bit (đồng thời phải hỗ trợ luôn các phép tính cộng trừ, mod, div,…) trên đó, rồi phát triển lên kiểu 16bit, 32bit. Độ phức tạp của các mạch cứng đảm nhiệm các nhiệm vụ này tăng lên rất nhiều, trong khi nhu cầu sử dụng lại không quá cao. Điều đó khiến các nhà thiết kế chỉ dừng lại ở kiểu 64bit (cho những dòng chip lớn) 32bit hay nhỏ hơn nữa… Nên ngôn ngữ lập trình cũng không hỗ trợ bạn ở những kiểu dữ liệu lớn hơn. Nếu muốn tính toán số lớn bạn phải tự xây dựng thuật toán mềm.
Mục đích của việc tạo ra ngôn ngữ lập trình là sự trừu tượng (abstraction).
Chính vì thế ta thường nghe người ta gọi là ngôn ngữ lập trình bậc thấp so với ngôn ngữ lập trình bậc cao. Bậc ở đây chính là nói đến mức độ trừu tượng mà một ngôn ngữ lập trình cung cấp.
Hợp ngữ là ngôn ngữ lập trình bậc thấp nhất vì sự trừu tượng của nó còn sơ nguyên nhất, Nó chỉ thể hiện các hoạt động của máy tính một cách tuần tự, dễ nắm bắt hơn (máy tính thực sự không thực hiện các câu lênh theo tuần tự liên tục như hợp ngữ vì vấn đề tốc độ). Ở hợp ngữ không có khái niệm kiểu dữ liệu, nhưng người ta vẫn có thể làm mọi việc với hợp ngữ (mọi chương trình đều được dịch ra mã máy).
Suy ra khái niệm kiểu dữ liệu cũng chỉ là một sự trừu tượng hoá mà các ngôn ngữ lập trình cung cấp cho ta. Mục đích của sự trừu tượng là đơn giản hoá vấn đề. Ta chỉ làm việc với các khái niệm trừu tượng (như kiểu dữ liệu, biến, hằng, hàm, lớp…), còn phần việc phức tạp thì để dành lại cho trình biên dịch lo. Mức độ trừu tượng càng cao thì ta càng dễ dàng thực hiện các công việc phức tạp một cách đơn giản mà khó phạm sai lầm hơn.
Tổng kết lại, một ngôn ngữ lập trình hoàn toàn có thể không cần kiểu dữ liệu, vì suy cho cùng nó cũng chỉ là một khái niệm trừu tượng mà thôi. Nhưng nếu lỡ sếp ép ta phải tạo ra một phần mềm quản lý phức tạp bằng một NNLT như vậy, thì ta sẽ phải chửi thề vào mặt sếp vì việc đó quá là phức tạp và dễ mắc lỗi