Cách phân loại kiểu ngôn ngữ và tư duy lập trình?

luong ngoc quyen
luong ngoc quyen
Trả lời 15 năm trước
Sau đây là một trong những cách phân loại phổ biến: Logic Programming: Lập trình logic - ví dụ: prolog. một phương pháp tiếp cận việc biểu diễn tri thức và giải các bài toán lôgic từ một cơ sở tri thức cho trước trên máy tính. Một cơ sở tri thức là một tập các sự kiện và các luật biểu diễn quan hệ lôgic giữa các sự kiện đó. LTL xuất phát từ một cơ sở tri thức và một câu hỏi, tiến hành các lập luận lôgic để tìm ra lời giải cho câu hỏi đó. Functional Programming: cách lập trình, sử dụng các hàm hiểu theo nghĩa toán học làm cấu trúc điều khiển của chương trình. (VD: Lisp) Imperative Programming (Structural Programming - Lập trình có cấu trúc): kĩ thuật lập trình dựa trên quan niệm phân tích một chức năng xử lí thông tin thành các chức năng nhỏ hơn, làm mịn dần quá trình này cho tới khi xây dựng được các đơn thể. Chương trình chỉ dùng các cấu trúc điều khiển cơ bản: tuần tự, rẽ nhánh, lặp và ra khỏi lặp. LTCCT sử dụng cách tiếp cận từ trên xuống, tức là phân tách từ toàn thể đến bộ phận, rồi lại từ bộ phận đến bộ phận nhỏ hơn. Các đơn thể trong một chương trình có cấu trúc có tính độc lập tương đối cao, chỉ giao tiếp với nhau thông qua giao diện đã xác lập trước, do đó LTCCT có một số ưu điểm: dễ phân công nhiều người cùng lập một chương trình, dễ thử và hiệu chỉnh chương trình. (VD: C, Pascal) Concurrent Programming: Lập trình song song. Chia một vấn đề làm 2 phần và giải quyết song song với nhau (VD: Ada, Erlang, Java .v.v.) Object-Oriented Programming: cái này thì khỏi giải thích ai cũng biết tongue.gif (Java, Ruby, C++ .v.v.) Một ngôn ngữ không nhất thiết là chỉ được phép thuộc 1 trong 5 loại trên, mà có thể hỗ trợ nhiều kiểu tư duy khác nhau. Tóm lại là học lập trình không chỉ là đếm số ngôn ngữ mình học được, mà phải là học được càng nhiều cách tư duy càng tốt (để tránh bị gọi là ếch ngồi đáy giếng). Có 5 cách tư duy như trên thì tớ nghĩ lập trình viên thực thụ sẽ nói 6 ngôn ngữ không phải là nhiều smile.gif Đó là chưa kể dần dần sẽ có một số ngôn ngữ bị lỗi thời, và bạn sẽ phải học thêm các ngôn ngữ mới để tránh nguy cơ bị lạc hậu. (Những khái niệm trên tớ lấy từ từ điển bách khoa VN online biggrin.gif) Tất nhiên những người biết 3, hay thậm chí 1 ngôn ngữ thì chưa chắc đã là không giỏi bằng. Tớ chỉ muốn nói là không nên giới hạn số ngôn ngữ mình sẽ học chỉ vì sợ bị loạn kiến thức tongue.gif Thực tế là biết càng nhiều ngôn ngữ càng tốt, và càng giúp cho việc học các ngôn ngữ khác nhanh hơn.