Lập trình hàm

Một phần của tài liệu Tiểu luận môn phương pháp nghiên cứu khoa học Nghiên cứu 40 nguyên tắc sáng tạo ứng dụng trong tin học và phân tích quá trình phát triển ngôn ngữ lập trình (Trang 27)

II. Lịch sử phát triển ngôn ngữ lập trình

4. Lập trình hàm

AI (trí tuệ nhân tạo) bắt đầu được quan tâm vào giữa những năm 1950, một số là các nhà ngôn ngữ học, một số từ tâm lý học và một số từ toán học. Ngôn ngữ học thì quan tâm với việc xử lý ngôn ngữ tự nhiên. Tâm lý học thì hứng thú với mô hình hóa việc lưu trữ và truy xuất thông tin con người, cũng như các quá trình xử lý cơ bản khác của bộ não. Các nhà toán học thì quan tâm trong việc tự động hóa các phương pháp thông minh nào đó, chẳng hạn như chứng minh định lý. Tất cả các việc nghiên cứu này dẫn tới cùng một kết luận: vài phương pháp phải được phát triển để cho phép các máy tính xử lý dữ liệu ký hiệu trong danh sách liên kết. Tại lúc này, hầu hết các tính toán thì trên dữ liệu số trong các mảng.

LISP Đi tiên phong trong ngôn ngữ lập trình hàm, được thiết kế bởi McCarthy tại MIT năm 1958.

Có hai kiểu dữ liệu: nguyên tố và danh sách. Các nguyên tố là các ký hiệu hay là các chữ số.

Cú pháp LISP thì rất khác với các ngôn ngữ mệnh lệnh, bởi vì nó là một ngôn ngữ lập trình hàm. Ví dụ, cú pháp của Java là sự kết hợp phức tạp giữa tiếng Anh và đại số, trong khi cú pháp LISP là một mô hình của sự đơn giản dựa trên phép tính lambda.

Hình trên biểu diễn danh sách (A B C D) và danh sách (A (B C) D (E (F G) ) )

Mã chương trình và dữ liệu có cùng hình thức: các danh sách được đặt trong dấu ngoặc đơn. Ví dụ:

(A B C D)

Khi được thể hiện là dữ liệu, nó là danh sách gồm bốn phần tử. Khi được xem như là mã, nó là sự khai triển của hàm có tên là A đến ba tham số B, C và D.

Đến nay vẫn còn được sử dụng phổ biến trong AI.

Nguyên lý linh động: Vào lúc đó để hiện thực các cấu trúc dữ liệu như ngăn xếp, hàng đợi hay biểu thức ký hiệu … nếu sử dụng mảng thì mỗi lần thêm xóa các phần tử thì phải cấp phát lại hay phải tổ chức lại toàn bộ cấu trúc vì các phần tử được lưu trữ trong bộ nhớ liên tiếp nhau. Với danh sách liên kết, bộ nhớ các phần tử nằm rời rạc nhau nên ta có thể thêm, loại bỏ hay hoán đổi các phần tử tại bất kỳ điểm nào trong danh sách rất dễ dàng.

Một phần của tài liệu Tiểu luận môn phương pháp nghiên cứu khoa học Nghiên cứu 40 nguyên tắc sáng tạo ứng dụng trong tin học và phân tích quá trình phát triển ngôn ngữ lập trình (Trang 27)

Tải bản đầy đủ (DOCX)

(42 trang)
w