Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
709,82 KB
Nội dung
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN Phương Pháp Luận Sáng Tạo Trong Khoa Học 40 nguyên tắc sáng tạo ứng dụng tin học q trình tiến hóa ngơn ngữ lập trình Giáo viên hướng dẫn GS.TSKH Hồng Kiếm Học viên: Huỳnh Lê Quốc Vương MHV: CH1101158 04 - 2012 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI MỞ ĐẦU: I 40 Nguyên tắc sáng tạo ứng dụng tin học: Nguyên tắc phân nhỏ: Nguyên tắc “tách khỏi”: Nguyên tắc phẩm chất cục bộ: Nguyên tắc phản đối xứng: Nguyên tắc kết hợp: Nguyên tắc vạn năng: Nguyên tắc “chứa trong”: 8 Nguyên tắc phản trọng lượng: Nguyên tắc gây ứng suất sơ bộ: 10 Nguyên tắc thực sơ bộ: 11 Nguyên tắc dự phòng: 10 12 Nguyên tắc đẳng thế: 10 13 Nguyên tắc đảo ngược: 11 14 Nguyên tắc cầu (trịn) hố: 11 15 Nguyên tắc linh động: 11 16 Nguyên tắc giải “thiếu” “thừa”: 12 17 Nguyên tắc chuyển sang chiều khác: 12 18 Nguyên tắc sử dụng dao động học: 13 19 Nguyên tắc tác động theo chu kỳ: 13 20 Nguyên tắc liên tục tác động có ích 14 21 Nguyên tắc “vượt nhanh”: 14 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 22 Nguyên tắc biến hại thành lợi: 15 23 Nguyên tắc quan hệ phản hồi: 15 24 Nguyên tắc sử dụng trung gian: 15 25 Nguyên tắc tự phục vụ: 16 26 Nguyên tắc chép (copy): 16 27 Nguyên tắc “rẻ” thay cho “đắt”: 17 28 Thay sơ đồ học: 17 29 Sử dụng kết cấu khí lỏng: 18 30 Sử dụng vỏ dẻo màng mỏng: 18 31 Sử dụng vật liệu nhiều lỗ: 18 32 Nguyên tắc thay đổi màu sắc: 19 33 Nguyên tắc đồng nhất: 19 34 Nguyên tắc phân hủy tái sinh phần: 20 35 Thay đổi thơng số hố lý đối tượng: 20 36 Sử dụng chuyển pha: 20 37 Sử dụng nở nhiệt: 21 38 Sử dụng chất oxy hoá mạnh: 21 39 Thay đổi độ trơ: 22 40 Sử dụng vật liệu hợp thành (composite): 22 II Lịch sử phát triển ngơn ngữ lập trình: 23 Zuse’s Plankalkül: 24 Các ngôn ngữ mã giả: 24 IBM Fortran 25 Lập trình hàm 28 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bước tiến tới tinh xảo 30 Khởi đầu ngôn ngữ cho doanh nghiệp 32 Bắt đầu khái niệm chia sẻ thời gian 33 Ngôn ngữ cho khoa học doanh nghiệp : PL/I 33 Hai ngôn ngữ động : APL SNOBOL 34 10 Bắt đầu trừu tượng hóa liệu : SIMULA 67 35 11 Thiết kế trực giao : ALGOL 68 36 12 Lập trình dựa Logic : Prolog 36 13 Ngôn ngữ thiết kế công phu : Ada 37 14 Lập trình hướng đối tượng : Smalltalk 38 15 Kết hợp lập trình mệnh lệnh lập trình hướng đối tượng: C++ 38 16 Một ngôn ngữ hướng đối tượng dựa mệnh lệnh : Java 39 17 Các ngôn ngữ kịch cho Web 39 18 Xu hướng 40 III Kết luận: 41 TÀI LIỆU THAM KHẢO: 42 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lời mở đầu: Nếu chưa biết, chưa đọc, chưa nghiên cứu Genrikh Saulovich Atchuller Lý thuyết giải toán sáng chế (TRIZ) ơng thiệt thịi người Tại vậy? Bởi ơng tài lớn, người có nhân cách sáng ngời, nhà khoa học đáng kính trọng Đặc biệt với TRIZ 40 nguyên tắc sáng tạo, ông góp phần tạo nên phát triển cho giới Khi người sinh ham muốn tìm tịi học hỏi khám phá điều mẻ Nhờ có khả tư sáng tạo thiên tài mà nhà phát minh Leonardo Da Vinci, Archimedes hay Thomas Edison, … làm thay đổi sống nhân loại Vậy người bình thường sao, có cải tiến đóng góp cho xã hội? Thầy Atchuller hiểu điều năm 1946, ông nung nấu ý định xây dựng lý thuyết giúp người bình thường thực sáng chế mà sau ông đặt tên “Lý thuyết giải toán sáng chế” (TRIZ) Với 40 nguyên tắc sáng tạo nói tổng quát hàng triệu phát minh cải tiến sống người thời gian qua Và lĩnh vực công nghệ thông tin ngoại lệ Trong luận trình bày 40 nguyên tắc sáng tạo ví dụ công nghệ thông tin với nguyên tắc (mỗi nguyên tắc có hai ví dụ) cho bạn dễ hình dung Ngồi ra, nhờ có phát triển mạnh mẽ phần cứng từ máy dệt tự động Jacquard đến siêu máy tính ngày mà ngơn ngữ lập trình tiến hóa theo Chúng tiến hóa theo cách đem lại gì? Chúng ta xem tiến hóa chúng nguyên tắc sáng tạo LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com I 40 Nguyên tắc sáng tạo ứng dụng tin học: Nguyên tắc phân nhỏ: Nội dung: - Chia đối tượng thành phần độc lập - Làm đối tượng trở nên tháo lắp - Tăng mức độ phân nhỏ đối tượng Ví dụ: - Cách tiếp cận top-down thiết kế hệ thống, chia hệ thống thành nhiều phần nhỏ Bằng cách đó, chia hệ thống phức tạp thành nhiều mơ-đun phức tạp Q trình thực lại cho mơ-đun mơ-đun khơng cịn phức tạp - Một ứng dụng xây dựng dựa dịch vụ độc lập có sẵn mạng cục hay qua Internet chẳng hạn Web-service (thơng qua Web-service Yahoo, ta xây dựng ứng dụng chat tương tự Yahoo! Messenger cho riêng mình) Tương tự, ứng dụng xây dựng cách sử dụng thành phần thương mại (ta sử dụng mCore.NET để tích hợp gửi nhận tin nhắn SMS vào ứng dụng chạy tảng NET) hay miễn phí (từ kernel Linux mà có 100 phân phối Mint, Ubuntu, Fedora, …) Nguyên tắc “tách khỏi”: Nội dung: - Tách phần gây “phiền phức” (tính chất “phiền phức”) hay ngược lại tách phần “cần thiết” (tính chất “cần thiết”) khỏi đối tượng Ví dụ: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Trong chế nén âm MP3 loại bỏ phần tín hiệu âm mà đa số người nghe nhờ đặc điểm chức nghe người Tượng tự, kỹ thuật nén ảnh JPEG loại bỏ thông tin để đạt tỉ lệ nén ảnh cao ảnh mà không biến dạng ảnh nhiều - Khi liệu ít, ta lưu trữ chúng vài máy tính phịng, cơng ty Nhưng liệu lớn khó khăn việc bảo trì, mở rộng, … Do đó, ta phải nhờ tới data center Nguyên tắc phẩm chất cục bộ: Nội dung: - Chuyển đối tượng (hay môi trường bên ngồi, tác động bên ngồi) có cấu trúc đồng thành không đồng - Các phần khác đối tượng phải có chức khác - Mỗi phần đối tượng phải điều kiện thích hợp cơng việc Ví dụ: - Mơ hình: Blackboard Được sử dụng cho vấn đề không xác định chiến lược giải pháp Ý tưởng tập hợp chương trình độc lập mà làm việc cộng tác cấu trúc liệu chung Mỗi chương trình giải phần tổng công việc, tất chương trình làm việc với giải pháp Các chương trình chun biệt độc lập lẫn Chúng khơng gọi lẫn nhau, khơng có định trước hoạt động chúng Thay vào đó, chúng điều khiển hệ thống chủ yếu dựa vào trạng thái tiến độ Một thành phần điều khiển trung tâm đánh giá trạng thái việc xử lý điều phối chương trình Cách thức điều khiển hướng liệu làm thử nghiệm với thuật tốn khác có thể, LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com cho phép việc suy qua thử nghiệm “heuristic” để điều khiển việc xử lý - Sửa danh sách liên kết đối tượng xe máy thành danh sách liên kết đối tượng xe Việc trừu tượng hóa cao cho phép đối tượng không đồng (xe đạp, xe hơi, …) lưu trữ lớp chứa ngược lại Nguyên tắc phản đối xứng: Nội dung: - Chuyển đối tượng có hình dạng đối xứng thành khơng đối xứng (nói chung giảm bật đối xứng) Ví dụ: - Chuẩn xếp nhanh thường lấy phần tử làm phần tử chốt Bằng cách sử dụng phần tử trung vị ba phần tử đứng đầu, đứng đứng cuối làm phần tử chốt thường đạt hiệu suất tốt - Trong cơng cụ tìm kiếm hát, thay nhập vào tên hát Ta nhập vào tên ca sĩ, tên nhạc sĩ, đoạn hát, … để giúp người dùng thuận lợi việc tìm kiếm hát Nguyên tắc kết hợp: Nội dung: - Kết hợp đối tượng đồng đối tượng dùng cho hoạt động kế cận - Kết hợp mặt thời gian hoạt động đồng kế cận Ví dụ: - Một trang web xây dựng từ nhiều khung (frame) Mỗi frame tải từ server khác Điều làm tăng tốc độ tải trang nhiều kết nối sử dụng đồng thời LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Một tập đĩa RAID-5 phân chia tập tin qua nhiều đĩa truy xuất để lấy hay lưu trữ tập tin nhanh lấy/lưu trữ đồng thời Nguyên tắc vạn năng: Nội dung: - Đối tượng thực số chức khác nhau, khơng cần tham gia đối tượng khác Ví dụ: - Các phần mềm tăng tốc hệ thống “tuneup utilities” có chức 1click dọn registry, loại bỏ shortcut bị phá hủy, xóa tập tin tạm, phân mảnh ổ đĩa, … - Các trình duyệt web IE, Firefox hay Google Chrome phần khung mà để ta nhập địa web vào ta nhập từ khóa tìm kiếm vào để tìm kiếm thay truy cập trang web tìm kiếm Nguyên tắc “chứa trong”: Nội dung: - Một đối tượng đặt bên đối tượng khác thân lại chứa đối tượng thứ ba - Một đối tượng chuyển động xuyên suốt bên đối tượng khác Ví dụ: - Kiến trúc bảy tầng OSI network - Cấu trúc liệu danh sách liên kết, Các thuật toán đệ quy như: xếp nhanh, backtracking, … Nguyên tắc phản trọng lượng: Nội dung: - Bù trừ trọng lượng đối tượng cách gắn với đối tượng khác có lực nâng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Bù trừ trọng lượng đối tượng tương tác với môi trường sử dụng lực thủy động, khí động Ví dụ: - Để tăng hiệu xuất web server, ta chia trang thành nhiều frame lưu trữ frame ổ đĩa khác hay server khác Người ta phân bổ ảnh lớn hay mảnh liệu qua ổ đĩa khác thay đặt chúng chung đĩa Hiệu xuất tăng lên - Trong hàm băm, ta phân bổ đối tượng vào tập chứa giữ số lượng đối tượng chứa xấp xỉ Nguyên tắc gây ứng suất sơ bộ: Nội dung: - Gây ứng suất trước với đối tượng để chống lại ứng suất không cho phép không mong muốn đối tượng làm việc (hoặc gây ứng suất trước để làm việc dùng ứng suất ngược lại) Ví dụ: - Giả sử người sử dụng phải chờ đợi khoảng thời gian cho hành động thực thi (tìm kiếm, chép, cài đặt chương trình, ) Nếu ta thông báo cho người sử dụng khoảng phút, thời gian thực thi kéo dài người sử dụng khơng thích Nếu ta thơng báo 10 phút thời gian thực thi người sử dụng vui - Khi ứng dụng bắt đầu đọc từ sở liệu, ta tải (load) bảng quan trọng hay mục trước 10 Nguyên tắc thực sơ bộ: Nội dung: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Fortran 90 (ANSI, 1992) khác đáng kể với Fortran 77 Các thay đổi lớn thêm vào mảng động, ghi, trỏ, nhiều câu lệnh chọn lựa, môđun Ngồi ra, chương trình Fortran 90 gọi cách đệ quy Nguyên lý kết hợp: mơ-đun để nhóm thủ tục liệu có liên quan với để chương trình khác sử dụng dễ dàng Fortran 95 (INCITS/ISO/IEC, 1997) tiếp tục phát triển ngơn ngữ, có vài thay đổi vòng lặp Forall Fortran 2003 hỗ trợ lập trình hướng đối tượng, kiểu dẫn xuất tham số hóa, trỏ thủ tục, tương tác với ngơn ngữ lập trình C Fortran 2008(ISO/IEC 1539-1, 2010) có tính - Cấu trúc DO CONCURRENT, cho vòng lặp không phụ thuộc lẫn - Co-array Fortran (CAF), cung cấp mơ hình thực thi song song Lập trình hàm AI (trí tuệ nhân tạo) bắt đầu quan tâm vào năm 1950, số nhà ngôn ngữ học, số từ tâm lý học số từ tốn học Ngơn ngữ học quan tâm với việc xử lý ngơn ngữ tự nhiên Tâm lý học hứng thú với mơ hình hóa việc lưu trữ truy xuất thơng tin người, trình xử lý khác não Các nhà tốn học quan tâm việc tự động hóa phương pháp thơng minh đó, chẳng hạn chứng minh định lý Tất việc nghiên cứu dẫn tới kết luận: vài phương pháp phải phát triển phép máy tính xử lý liệu ký hiệu danh sách liên kết Tại lúc này, hầu hết tính tốn liệu số mảng LISP Đi tiên phong ngôn ngữ lập trình hàm, thiết kế McCarthy MIT năm 1958 28 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Có hai kiểu liệu: nguyên tố danh sách Các nguyên tố ký hiệu chữ số Cú pháp LISP khác với ngơn ngữ mệnh lệnh, ngơn ngữ lập trình hàm Ví dụ, cú pháp Java kết hợp phức tạp tiếng Anh đại số, cú pháp LISP mơ hình đơn giản dựa phép tính lambda Hình biểu diễn danh sách (A B C D) danh sách (A (B C) D (E (F G) ) ) Mã chương trình liệu có hình thức: danh sách đặt dấu ngoặc đơn Ví dụ: (A B C D) 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Khi thể liệu, danh sách gồm bốn phần tử Khi xem mã, khai triển hàm có tên A đến ba tham số B, C D Đến sử dụng phổ biến AI Nguyên lý linh động: Vào lúc để thực cấu trúc liệu ngăn xếp, hàng đợi hay biểu thức ký hiệu … sử dụng mảng lần thêm xóa phần tử phải cấp phát lại hay phải tổ chức lại toàn cấu trúc phần tử lưu trữ nhớ liên tiếp Với danh sách liên kết, nhớ phần tử nằm rời rạc nên ta thêm, loại bỏ hay hoán đổi phần tử điểm danh sách dễ dàng Bước tiến tới tinh xảo Vào năm 1950, ngôn ngữ lúc phát triển quanh kiến trúc nhất, số ngơn ngữ cho máy UNIVAC số cho máy IBM series 700, tất phụ thuộc vào máy khơng có ngơn ngữ phổ dụng để biểu diễn thuật toán ALGOL kết trình nỗ lực để thiết kế ngôn ngữ phổ dụng GAMM ACM gặp bốn ngày để thiết kế Zurich (ngày 27 tháng đến ngày tháng năm 1958, với mục tiêu sau cho ngôn ngữ mới: - Cú pháp ngôn ngữ phải gần gũi với ký hiệu tốn học - Nó phải dễ dàng để mơ tả thuật tốn - Nó phải chuyển thành mã máy ALGOL 58 Nó kế thừa từ Fortran có số điểm ý sau - Tên biến có chiều dài - Mảng có nhiều chiều (mảng chiều, hai chiều, …) - Tham số tách biệt hình thức (in & out) - Câu lệnh phức hợp (begin … end) - Dấu chẩm phẩy kết thúc câu lệnh 30 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Thao tác gán := - if có mệnh đề else-if - Khơng có I/O Mặc dù ban đầu IBM tâm huyết, từ bỏ vào năm 1959 khơng thực ALGOL 60 Chỉnh sửa ALGOL 58 họp ngày Paris Nó chuẩn để đưa thuật tốn cho 20 năm Tất ngôn ngữ mệnh lệnh sau dựa Là ngơn ngữ độc lập máy ngôn ngữ có cú pháp thức định nghĩa (BNF) Tuy nhiên chưa sử dụng rộng rãi, đặc biệt Mỹ lý thiếu I/O tập ký tự làm cho chương trình khơng portable, q mềm dẻo dẫn tới việc khó khăn để thực, BNF vào lúc xa lạ coi phức tạp thiếu hỗ trợ IBM Có tính - Cấu trúc khối (phạm vi cục bộ) - Tham số đặt chương trình tên biến hay giá trị - Đệ quy chương trình - Các hàm lồng Nguyên lý tách khỏi: tách các lệnh (đặt chúng vào khối) để chúng xem câu lệnh, thu hẹp phạm vi khai báo tên biến, thủ tục, hàm khai báo khối để chúng không bị xung đột với biến có tên sử dụng nơi chương trình cho mục đích khác Nguyên lý chứa trong: Một hàm lồng (hay thủ tục lồng trong) hàm mà bị bao bọc bên hàm khác Nó gọi hàm lồng hay hàm bị lồng trực tiếp hay khơng trực tiếp hàm lồng Nói cách khác, phạm vi hàm lồng bị giới bị giới hạn hàm lồng Hàm lồng hình thức che dấu thơng tin hữu ích 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com tác vụ thủ tục bị phân chia thành tác vụ mà có ý nghĩa cục Nó tránh làm lộn xộn đến phần khác chương trình (các hàm, biến khác, ) mà khơng liên quan đến phần Vì vậy, hàm lồng bổ sung khả cho cấu trúc khác ghi hay đối tượng Khởi đầu ngôn ngữ cho doanh nghiệp Trái với ALGOL 60, COBOL sử dụng rộng thời điểm lại ảnh hưởng lên việc thiết kế ngôn ngữ sau này, ngoại trừ PL/I Có lẽ lý quan trọng sử dụng rộng rãi thiết kế để trở thành ngôn ngữ cho ứng dụng doanh nghiệp COBOL thiết kế dựa ngôn ngữ FLOW-MATIC Cuộc họp việc thiết kế Pentagon tháng – 1959 Mục tiêu thiết kế - Phải giống tiếng Anh đơn giản - Phải dễ dàng sử dụng, chí điều làm giảm sức mạnh - Khơng bị hướng theo vấn đề trình biên dịch Những đóng góp - Có chức marco ngơn ngữ lập trình cấp cao - Cấu trúc liệu phân cấp (các ghi) - Các câu lệnh lựa chọn lồng - Tên lên tới 30 ký tự, với dấu gạch ngang - Phân loại liệu riêng biệt Nguyên lý tách khỏi: Một lý mã COBOL lại dễ dàng thay đổi chuyển sang máy hay thiết bị hay yêu việc bảo trì nhờ việc tách liệu riêng biệt khỏi câu lệnh thực thi 32 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bắt đầu khái niệm chia sẻ thời gian Ngôn ngữ BASIC thiết kế Kemeny Kurtz Dartmouth Mục tiêu thiết kế: - Dễ sử dụng với người học - Ngơn ngữ lập trình cho mục đích - Cho phép khả lập trình nâng cao dành riêng cho chuyên gia mà giữ đơn giản cho người học - Có tương tác với người dùng - Các thông báo lỗi rõ ràng thân thiện - Chạy nhanh với chương trình nhỏ - Không cần phải hiểu biết phần cứng máy tính - Đứng người sử dụng hệ điều hành Ngơn ngữ phân nhánh sử dụng phổ biến VISUAL BASIC Là ngôn ngữ sử dụng rộng rãi thông qua thiết bị đầu cuối kết nối đến máy tính từ xa (trước có LISP khơng phổ biến) nhờ hệ thống chia sẻ thời gian Nguyên lý liên tục tác động có ích: với hệ thống chia sẻ thời gian, thời gian xử lý máy chủ chia nhỏ người sử dụng thời gian ngắn Sự luân chuyển đủ nhanh để người sử dụng có cảm giác họ sử dụng toàn máy Điều giảm thiểu chi phí, tận dụng tối đa cơng suất máy Ngôn ngữ cho khoa học doanh nghiệp: PL/I Vào năm 1963, người sử dụng máy tính cho khoa học bắt đầu nhận cần sử dụng I/O phức tạp hơn, giống COBOL có Những người sử dụng máy tính cho doanh nghiệp bắt đầu cần dấu chấm động mảng cho MIS Do cần xây dựng máy tính cho hai loại ứng dụng khoa học doanh nghiệp Theo thiết kế ngơn ngữ để hai loại ứng dụng 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PL/I thiết kế năm tháng ủy X (ba thành viên từ IBM, ba thành viên từ SHARE) Ý tưởng ban đầu mở rộng từ Fortran IV, gọi NPL (New Programming Language) Sau đổi tên thành PL/I vào 1965 Những đóng góp PL/I - Là ngôn ngữ xử lý ngoại lệ - Cho phép tạo chương trình thực thi đồng thời - Con trỏ xem kiểu liệu - Mặt cắt mảng nhiều chiều tham chiếu Ví dụ hàng thứ ba ma trận tham chiếu mảng chiều Nhưng có hạn chế - Nhiều chức thiết kế - Quá lớn phức tạp Nguyên lý dự phòng: với việc xử lý ngoại lệ, lập trình viên cho chương trình tiếp tục thực ngoại lệ phép chẳng hạn lỗi chia cho mà không làm chương trình thực sai hay phải dừng lại Nếu ngoại lệ tràn nhớ thơng báo cho người sử dụng biết Hai ngôn ngữ động đầu tiên: APL SNOBOL - Có đặc điểm định kiểu động cấp phát nhớ động - Các biến định kiểu gán vào giá trị - Bộ nhớ cấp phát cho biến gán vào giá trị Cả hai không ảnh hưởng nhiều đến ngơn ngữ sau 9.1 APL: A Programming Language Ban đầu không thiết kế ngôn ngữ lập trình mà dự định phương tiện để mơ tả kiến trúc máy tính, IBM Ken Iverson vào năm 1960 Có nhiều tốn tử cung cấp lượng lớn thao tác mảng (ví dụ, chuyển vị ma trận cần toán tử nhất) Tuy nhiên, chương trình khó để đọc Ngày cịn sử dụng có thay đổi đáng kể 34 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 9.2 SNOBOL Được thiết kế ngơn ngữ thao tác chuỗi phịng thí nghiệm Bell Farber, Griswold Polensky vào năm 1964 Có toán tử đầy sức mạnh cho việc so khớp mẫu chuỗi Bởi chất động ngơn ngữ làm cho chậm so với ngơn ngữ tương tự (và khơng cịn sử dụng cho soạn thảo văn bản) Ngày cịn sử dụng tác vụ xử lý văn 10 Bắt đầu trừu tượng hóa liệu: SIMULA 67 Được thiết kế chủ yếu cho việc mô hệ thống Na Uy Nygaard Dahl Dựa ALGOL 60 SIMULA I Có điểm - Một loại chương trình gọi “coroutine” - Có cấu trúc lớp (bắt đầu hình thành khái niệm trừu tượng hóa liệu) Ngun tắc chuyển sang chiều khác: Thông thường mối quan hệ chương trình gọi chương trình khác chương trình bị gọi mối quan hệ “chủ-tớ” Còn mối quan hệ coroutine gọi coroutine gọi ngang hàng Coroutine thể loại đặc biệt chương trình Thơng thường conroutine tạo ứng dụng đơn vị chương trình gọi đơn vị chủ (không phải coroutine) Khi tạo ra, coroutine thực đoạn mã khởi tạo chúng sau trả quyền điều khiển cho đơn vị chủ Khi toàn coroutine khởi tạo, chương trình chủ “resume” coroutine đó, coroutine “resume” lẫn theo thứ tự cơng việc Đến cơng việc hồn thành coroutine trả quyền điều khiển cho đơn vị chủ Lúc coroutine bị chấm dứt hay tiếp tục chạy tùy theo chương trình Một ví dụ vấn đề mơ trị chơi đánh Giả sử trị chơi có bốn người chơi Một đơn vị chương trình chủ tạo bốn coroutine Chương trình chủ khởi động chương trình mơ cách “resume” 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com coroutine người chơi Khi người xong lượt “resume” đến coroutine người kế tiếp, tiếp tục kết thúc trò chơi Nguyên tắc đồng nhất: nhờ có đồng trình bày của, thao tác đối tượng thành kiểu liệu trừu tượng hóa mà làm cho thay đổi biểu diễn liệu hay mã thực thi khơng làm cho mã người dung thay đổi Ngồi trừu tượng hóa liệu cịn giúp đóng gói liệu để bảo vệ liệu không bị truy xuất trực tiếp mã người dùng 11 Thiết kế trực giao: ALGOL 68 Tiếp tục phát triển từ ALGOL 60 tập cha ngôn ngữ Thiết kế dựa khái niệm “trực giao” (Có vài khái niệm bản, thêm vào vài kết hợp chế) Có tính đáng ý như: - Các cấu trúc liệu người sử dụng định nghĩa - Kiểu tham chiếu - Mảng động (khai báo mảng không cần kích thước) ALGOL 68 sử dụng ALGOL 60 Tuy nhiên ảnh hưởng mạnh mẽ lên ngôn ngữ sau này, đặc biệt Pascal, C Ada 12 Lập trình dựa Logic: Prolog Được phát triển Comerauer Roussel (đại học Aix-Marseille) với giúp đỡ Kowalski (đại học Edinburgh) Khơng có thủ tục Có thể tóm lại hệ thống sở liệu thông minh sử dụng trình suy diễn để suy thật (kết quả) câu truy vấn Nó sử dụng rộng rãi cách tiếp cận khơng mệnh lệnh, chương trình viết ngơn ngữ lơgic đến chứng minh khơng có hiệu cao so với chương trình mệnh lệnh Thứ hai, vùng ứng 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com dụng nhỏ cho số loại hệ thống quản lý sở liệu số chương trình AI 13 Ngơn ngữ thiết kế cơng phu nhất: Ada Công sức bỏ cho việc thiết kế lớn, liên quan đến hàng trăm người, nhiều tiền của, khoảng tám năm Ngôn ngữ đặt tên theo Ada Augusta nữ bá tước xứ Lovelace, xem lập trình viên Có tính đáng ý: - Mơ hình gói (hỗ trợ trừu tượng hóa liệu) - Xử lý ngoại lệ công phu - Hỗ trợ lập trình generic - Hỗ trợ lập trình tương tranh thơng qua mơ hình tác vụ Ngun lý đồng nhất: lập trình generic định nghĩa thao tác liệu với kiểu liệu chung nhằm tối đa hóa việc sử dụng lại mã chương trình, tạo kiểu liệu an toàn tránh mã thừa để đem lại hiệu suất cao Ada 95 Bắt đầu vào năm 1988 Hỗ trợ OOP thông qua kiểu dẫn xuất Kiểm soát tốt chế chia liệu Có nhiều tính lập trình tương tranh Tuy nhiên khơng cịn phổ biến quốc phịng Mỹ khơng cịn sử dụng phổ biến C++ Ada 2005 bổ sung số tính giao diện (interface) giống Java, nhiều thuật toán điều khiển lập lịch hơn, đồng hóa giao diện Ada sử dụng nhiều quốc phịng, hàng khơng, giao thơng vận tải đường sắt, số lĩnh vực khác 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 14 Lập trình hướng đối tượng: Smalltalk Được phát triển Xerox PARC, khởi tạo Alan Kay, sau thực Adele Goldberg Ngôn ngữ thực đầy đủ hướng đối tượng (trừu tượng hóa liệu, thừa kế, ràng buộc động) Đi tiên phong lĩnh vực thiết kế giao diện người sử dụng đẩy mạnh OOP Nguyên lý tách khỏi nguyên lý kết hợp: chương trình khơng OOP thường danh sách dài câu lệnh Các chương trình phức tạp thường nhóm câu lệnh vào hàm, chúng thực cơng việc Với thiết kế liệu chương trình dễ trở nên tồn cục Khi chương trình lớn dần, có nhiều hàm có quyền thay đổi liệu, điều có nghĩa có lỗi ảnh hưởng rộng Với cách hướng đối tượng, lập trình viên đặt liệu vào nơi mà khơng thể bị truy cập trực tiếp phần lại chương trình Thay vào đó, liệu truy cập phương thức Kết hợp liệu với tập phương thức để truy cập quản lý liệu gọi đối tượng 15 Kết hợp lập trình mệnh lệnh lập trình hướng đối tượng: C++ Được phát triển phịng thí nghiệm Bell Stroustrup vào năm 1980 Phát triển từ C SIMULA 67 Lấy phần từ SIMULA 67 cho lập trình hướng đối tượng Hỗ trợ xử lý ngoại lệ Một ngôn ngữ lớn phức tạp, phần hỗ trợ lập trình thủ tục hướng đối tượng Nhanh chóng phổ biến Có phiên Microsoft (phát hành với NET vào 2002): có chức ủy quyền, giao diện, khơng có đa kế thừa 38 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 16 Một ngôn ngữ hướng đối tượng dựa mệnh lệnh: Java Được phát triển Sun vào năm đầu 1990 Vào lúc đó, C C++ khơng an tồn, tin cậy để nhúng vào thiết bị điện tử Vì ngơn ngữ Java đời, dựa C++ đơn giản hóa (khơng có struct, union, enum, pointer), hỗ trợ OOP có tham chiếu khơng có trỏ Ngồi cịn - Loại bỏ nhiều tính khơng an tồn C++ - Hỗ trợ lập trình tương tranh - Có thư viện cho applet, interface, GUI, truy cập sở liệu - Portable dựa vào máy ảo Java, trình biên dịch JIT - Được sử dụng phổ biến lập trình web Nguyên lý trung gian: Java tiếng với câu “viết lần, chạy đâu” (chạy hệ máy nào) nhờ có máy ảo Java, với máy ảo chương trình Java sau biên dịch mã bytecode (các tập tin class) chúng biên dịch lại thành mã máy hệ máy để thực thi Nguyên lý sử dụng vỏ dẻo màng mỏng: Với interface, lớp định nghĩa với interface thay đổi nội dung interface bên lớp 17 Các ngôn ngữ kịch cho Web 17.1 Perl Được thiết kế Larry Wall, phiên phát hành vào 1987 Các biến kiểu tĩnh khai báo ngầm định Có ba khơng gian tên (namespace), biểu ký tự tên biến Mạnh mẽ nguy hiểm Được sử dụng phổ biến cho lập trình CGI Web Cũng sử dụng thay cho ngôn ngữ quản trị hệ thống UNIX 39 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 17.2 JavaScript Bắt đầu Netscape sau liên kết Netscape Sun Microsystems Một ngôn ngữ kịch nhúng vào HTML phía client, thường sử dụng để tạo HTML động Hồn tồn thơng dịch Chỉ có cú pháp tương tự liên quan tới Java Nguyên lý phẩm chất cục bộ: Lúc đầu tất thao tác website xử lý server Sau tương tác người dùng hiệu ứng hình ảnh, rê chuột, kiểm tra giá trị thông tin mà người dùng nhập vào, … xử lý client ngơn script Javascript, VBScript, … để giảm gánh nặng cho server, tương tác nhanh chóng với người dùng 17.3 PHP PHP: Hypertext Preprocessor, thiết kế Rasmus Lerdorf Một ngơn ngữ kịch nhúng vào HTML phía server, thường sử dụng cho xử lý form truy cập liệu qua Web Hồn tồn thơng dịch 18 Xu hướng Ngôn ngữ tiếp tục phát triển công nghiệp lẫn nghiên cứu Vài xu hướng : - Hỗ trợ lập trình phân tán - Bổ sung chế bảo mật, tin cậy cho ngơn ngữ - Tích hợp với sở liệu - Phát triển phần mềm hướng thành phần - AOP (Aspect Oriented Programming) - Các ngơn ngữ lập trình song song đồng thời cho CPU GPU Ta dễ dàng thấy vài nguyên tắc sáng tạo sử dụng nguyên tắc phân nhỏ (trong phân tán), nguyên tắc linh hoạt (trong AOP), 40 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com III Kết luận: Hệ thống giáo dục, thi thố tài thuộc lòng hiểu biết “uyên thâm” thách thức đối đáp thông thạo trước câu đối chứa đựng điển tích thuật chơi chữ hóc búa, chuẩn mực người tài người “thơng kim bác cổ”, hiểu biết “thiên kinh vạn quyển” dần bị thay lực định sáng tạo tình khơng ngừng biến động hồn cảnh Điều rõ ràng luận cho ta thấy “có mặt” rộng khắp 40 phương pháp sáng tạo cơng nghệ thơng tin nói chung ngơn ngữ lập trình nói riêng Ta thấy phổ biến sống quanh ta nhiều Nó kết tinh hàng triệu sáng tạo, dễ hiểu ngày nhiều nước giới du nhập, quan tâm đến Khi phát triển khoa học kỹ thuật nhanh vũ bão, giới trở nên ngày hội nhập việc ta giải vấn đề trở nên có giá trị, mở hội thành cơng lớn cho cho xã hội Thế việc “thấy” “dụng” hai việc khác hồn tồn Do để áp dụng địi hỏi bạn cần phải nắm vững phải tập luyện thường xuyên, thử liên tưởng vận dụng nguyên tắc vào bạn gặp vấn đề Và nhớ “Sự sáng tạo làm nên khác biệt người dẫn đầu kẻ bám đuôi” Steve Jobs 41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tài liệu tham khảo: Website: - http://www.dlhoffman.com/ - http://www.stackoverflow.com - http://www.triz-journal.com - http://www.trizforsoftware.com/ - http://www.wikipedia.org - http://www.tailieu.vn/ Sách: - Concepts of Programming Languages, 10th Edition, Robert W.Sebesta - Phương pháp luận khoa học kỹ thuật, Phan Dũng - Slides giảng môn ‘‘PHƯƠNG PHÁP NGHIÊN CỨU KHOA HỌC TRONG TIN HỌC’’, GS.TSKH Hoàng Kiếm 42 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... 40 Nguyên tắc sáng tạo ứng dụng tin học: Nguyên tắc phân nhỏ: Nguyên tắc “tách khỏi”: Nguyên tắc phẩm chất cục bộ: Nguyên tắc phản đối xứng: Nguyên tắc. .. ngơn ngữ lập trình tiến hóa theo Chúng tiến hóa theo cách đem lại gì? Chúng ta xem tiến hóa chúng nguyên tắc sáng tạo LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com I 40 Nguyên tắc sáng. .. Nguyên tắc vạn năng: Nguyên tắc “chứa trong? ??: 8 Nguyên tắc phản trọng lượng: Nguyên tắc gây ứng suất sơ bộ: 10 Nguyên tắc thực sơ bộ: 11 Nguyên