Những Thế Hệ Lập Trình Ngôn Ngữ Điện ToánĐông Yên - Master, Computer Science(GLs - Programming Language Generations - Theo Wikipedia) *** WARNING:: This article may be used, and only used, for educational and/or non-commercial purposes provided it is used as is , i.e., with proper citation and without modifications whatsoever.
Trong lảnh vực Điện Toán, những chữ viết tắc như 1GL, 2GL, 3GL, 4GL ... tượng trưng cho những giai đoạn hay thế hệ trong quá trình hình thành
- 2GL, thế hệ thứ hai, là dạng ngôn ngữ mệnh đề hay "Assembler" (thường được gọi là "Assembly Language"),có nhiệm vụ hoán chuyển (convert) những mệnh đề (statements) thành ngôn ngữ máy móc. Ví dụ điển hình các mệnh lệnh của ngôn ngữ nầy: ADD 12,8 (cộng 12 và 8) - 3GL, thế hệ thứ ba, là dạng ngôn ngữ ở trình độ cao (high level), như PL/I, C, hay JAVA, xữ dụng COMPILER để hoán chuyển những mệnh lệnh của loại ngôn ngữ cao cấp sang ngôn ngữ máy móc. Đối với Java, chẳng hạn, mệnh lệnh được hoán chuyển được gọi là BYTECODE,và mệnh lệnh nầy lại được
- 4GL, thế hệ thứ tư, được phác họa gần giống ngôn ngữ tự nhiên hơn thế hệ thứ ba. Một trong những ví dụ của các mệnh lệnh xữ dụng trong database đại để như sau. EXTRACT ALL CUSTOMERS WHERE "PREVIOUS PURCHASES" TOTAL MORE THAN $1000 (Chọn tất cả những khách hàng nào có tổng số tiền mua hàng trước đây vươt quá $1000). - 5GL, thế hệ thứ 5, xữ dụng phương pháp tượng hình để tạo mệnh lệnh và những mệnh lệnh nầy được hoán chuyển bằng những compiler của thế hệ thứ ba hay thứ tư. Phương pháp lập chương trình nầy giúp dể nhận diện hệ thống đơn tữ hoá trong lập trình (Object-oreiented Programming) và giúp kéo các hình con để ráp nối càc bộ phận của chương trình. 1GL - Thế Hệ Thứ Nhất (First-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ nhất là dạng ngôn ngữ ở trình độ máy móc.Nguyên ủy, không có thông dịch viên (translator) để hoán chuyển ngôn ngữ thế hệ thứ nhất nầy. Những mệnh lệnh và dử kiện được đưa thẳng vào máy qua những nút bấm phía trước mặt máy. Lợi điểm chính của loại ngôn ngữ thế hệ thứ nhất là mã ngữ mà người dùng viết ra có thể chạy rất nhanh và hiệu quả, vì được trung tâm vận hành của máy (CPU) thi hành trực tiếp. Tuy nhiên, ngôn ngữ máy móc khó học hơn những ngôn ngữ của các thế hệ sau, và khó sữa hơn nhiều nếu có lỗi kỹ thuật. Ngoài ra, nếu có mệnh lệnh mới cần đưa vào một vị trí nào đó trong bộ nhớ thì tất cả những mệnh lệnh tại/bên dưới vị trí đó phải di chuyển xuống dưới để nhường chổ cho mệnh lệnh mới. Nhược điểm chính của loại ngôn ngữ nầy là khả năng chuyển dịch (portability). Muốn chuyển sang một máy khác thì những mã ngữ (Code) phải được viết lại từ đàu, vì ngôn ngữ máy móc trên máy nầy có thể khác hẵn với ngôn ngữ trên một máy khác. Cấu trúc của các bộ vận hành máy Điện Toán (CPU) có thể khác nhau nên có thể làm cho khả năng chuyển dịch nói trên càng khó khăn hơn. 2GL - Thế Hệ Thứ Hai (Second-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ hai chẳng qua là một cách phân loại chung cho các dạng Assembly Languages (Ngôn Ngữ Mệnh Đề). Tên gọi trên được đặt ra nhằm phân biệt những ngôn ngữ trình độ cao thuộc thế hệ thứ ba như COBOL và những ngôn ngữ mang tính máy móc trước đó. Những ngôn ngữ thế hệ thứ hai mang những đặc tính sau đây:
3GL - Thế Hệ Thứ Ba (Third-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ ba là dạng ngôn ngữ ở trình độ cao (high level), như PL/I, C, hay JAVA, xữ dụng COMPILER để hoán chuyển những mệnh lệnh của loại ngôn ngữ cao cấp sang ngôn ngữ máy móc.Đối với Java, chẳng hạn, mệnh lệnh được hoán chuyển được gọi là BYTECODE,và mệnh lệnh nầy lại được hoán chuyển một lần nữa sang một loại ngôn ngữ máy móc thích ứng qua dạng máy giả định (Virtual machine), một bộ phận trong hệ thống vận hành của máy tính (operating system). Dạng ngôn ngữ thế hệ thứ ba nầy đòi hỏi rất nhiều kiến thức về chương trình điện toán. Hầu hết các ngôn ngữ thế hệ thứ ba hổ trợ những chương trình Điêẹn Toán thiết kế theo cấu trúc (Structured Programming). 4GL - Thế Hệ Thứ Tư (Fourth-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ tư (1970s-1990) là dạng ngôn ngữ có chủ đích thiết kế những nhu liệu (software) phục vụ thương mại. Xét về lai lịch thì ngôn ngữ thế hệ thứ tư tiếp nối thế hệ thứ ba theo chiều hương đi lên nhằm đạt đến một trình độ trừu tượng cao hơn và hiệu năng cao hơn của các mệnh lệnh(statements).Ngôn ngữ thế hệ trước (thế hệ thứ ba) có cải thiện quá trình khai triển nhu liệu điện toán qua cố gắng tiến gần hơn tới ngôn ngữ tự nhiên (natural language) và xữ dụng những khối tự trị (block structures) trong mã ngữ (source code). Tuy nhiên, những phương pháp khai triển chương trình của thế hệ thứ ba có thể chậm và đưa đến nhiều lỗi kỹ thuật. Do đó, các chưong trình Điện Toán cần được triển khai nhanh hơn bằng cách bổ sung một dạng ngôn ngữ và phương pháp kỹ thuật ở trình độ cao có khả năng thực hiện những mệnh lệnh tương tự như những mệnh lệnh rất phức tạp của ngôn ngữ thế hệ thứ ba nhưng ít có khả năng đưa đến sai sót kỹ thuật hơn. Về một phương diện nào đó, kỹ sư nhu liệu (Software engineering) tập trung giải quyết và kiện toàn ngôn ngữ thế hệ thứ ba. Những dự án xây dựng trên ngôn ngữ thế hệ thứ tư và thứ năm tập trung nhiều hơn vào mục tiêu giải quyết vấn đề (Problem solving) và thiết kế hệ thống (System Engineering). Những ngôn ngữ thế hệ thứ tư được thiết kế nhằm giảm thiểu những khó nhọc khi viết các chương trình Điện toán, giảm thiểu thời gian và phí tổn triển khai nhu liệu. Những cố gắng như thế không phải lúc nào cũng thành công, đôi khi đưa đến những mã ngữ (code) vụng về và khó bảo trì (unmaintainable). Tuy nhiên, một khi xát định đúng vấn đề, ngôn ngữ thế hệ thứ tư có thể thành công nổi bật. MARK-IV và MAPPER, chẳng hạn, có số thu nhập 8 lần hơn COBAL xữ dụng ngôn ngữ thế hệ thứ ba. Lập trình ngôn ngữ thế hệ thứ tư thường được so sánh với những lập trình ngôn ngữ chuyên đề (Domain-specific Programming Languages - DSLs). Các nhà nghiên cứu khẳng định ngôn ngữ thế hệ thứ tư là một hệ phái (sub-set) của DSLs. Vì sự hiện hữu không thể chối bỏ được của Assembly Language ngay thời hiện đại của Tin Học, người ta ước đoán là bất hệ thống Điện Toán nào rồi cung sẽ phải là một tổng hợp tất cả các thế hệ ngôn ngữ, nhưng hạn chế tối đa việc xữ dụng ngôn ngữ thế hệ thứ nhất. 5GL - Thế Hệ Thứ Năm (Fifth-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ năm là dạng ngôn ngữ thiết kế nhằm mục đích giải quyết vấn đề bằng cách tuân thủ những khồng chế (Constraints) đối với chưong trình, chứ không phải bằng cách áp dụng những sách lược (Algoritm) do chương trình viên đặt ra.Trong khi những ngôn ngữ thế hệ thứ tư được thiết kế nhằm xây dựng những chương trình đặc biệt thì ngôn ngữ thế hệ thứ năm được thiết kế nhằm ra lệnh cho máy Điện Toán giải quyết vấn đề. Theo cách thức nầy, chương trình viên chĩ cần thẩm định đâu là vấn đề cần giải quyết và những điều kiện nào cần tuân thủ, không cần quan tâm làm cách nào soạn thảo một phương án hay sách lược để giải quyết vấn đề. Ngôn ngữ thế hệ thứ năm chủ yếu xữ dụng cho các công trình nghiên cứu về trí khôn nhân tạo (Artificial Intelligence). Prolog, OPS5, và Mercury là những ngôn ngữ thế hệ thứ năm được biết đến nhiều nhất. Trong những năm thập niên 1990, ngôn ngữ thế hệ thứ năm được xem là trào lưu của tương lai, và có người tiên đoán những ngôn ngữ nầy sẽ thay thế tất cả những ngôn ngữ khác ngoại trừ những ngôn ngữ trình độ thấp. Nổi bật nhất là từ 1982 đến 1993 Nhật Bản đã nghiên cứu và đầu tư nhiều vào dự án xây dựng những hệ thống Điện Toán trên cơ sở những ngôn ngữ thế hệ thứ năm, hi vọng sẽ thiết kế một hệ thống Điện Toán khổng lồ xữ dụng những trang cụ nầy. Tuy nhiên, căn cứ trên những chương trình đã được xây dựng, những khiếm khuyết của phương án đã trở nên hiển nhiên hơn. Thực tế cho thấy là, trên cơ sở những khống chế đối với chương trình liên quan đến vấn đề phải giải quyết, triển khai một phương án hữu hiệu để giải quyết vấn đề đó lại là một nan giải nội tại. Bước then chốt nầy chưa có thể tự động hoá được và còn phải cần đến tư duy của chương trình viên là con người. Ngày nay, lập trình ngôn ngữ thế hệ thứ năm đã mất đi phần nào sức quyến rủ ban đầu của nó và chủ yếu chĩ xữ dụng trong các địa hạt nghiên cứu. <%-- 2GL - Thế Hệ Thứ Hai --%> 2GL - Thế Hệ Thứ Hai (Second-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ hai chẳng qua là một cách phân loại chung cho các dạng Assembly Languages (Ngôn Ngữ Mệnh Đề). Tên gọi trên được đặt ra nhằm phân biệt những ngôn ngữ trình độ cao thuộc thế hệ thứ ba như COBOL và những ngôn ngữ mang tính máy móc trước đó. Những ngôn ngữ thế hệ thứ hai mang những đặc tính sau đây:
Một trong những phương pháp tạo ra mã ngữ là cho phép Compiler (bộ phận hoán chuyển) tạo dựng một hình thức tương ứng của một mênh lệnh đặc biệt nào đó nhưng dưới dạng ngôn ngữ máy móc được tối ưu hóa cho máy chủ. Sau đó mã ngữ nầy được cải đổi bằng tay, như thế là vận dụng được vừa sức mạnh tối ưu của máy vừa khả năng trí tuệ của chương trình viên. 3GL - Thế Hệ Thứ Ba (Third-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ ba là dạng ngôn ngữ ở trình độ cao (high level), như PL/I, C, hay JAVA, xữ dụng COMPILER để hoán chuyển những mệnh lệnh của loại ngôn ngữ cao cấp sang ngôn ngữ máy móc.Đối với Java, chẳng hạn, mệnh lệnh được hoán chuyển được gọi là BYTECODE,và mệnh lệnh nầy lại được hoán chuyển một lần nữa sang một loại ngôn ngữ máy móc thích ứng qua dạng máy giả định (Virtual machine), một bộ phận trong hệ thống vận hành của máy tính (operating system). Dạng ngôn ngữ thế hệ thứ ba nầy đòi hỏi rất nhiều kiến thức về chương trình điện toán. Hầu hết các ngôn ngữ thế hệ thứ ba hổ trợ những chương trình Điêẹn Toán thiết kế theo cấu trúc (Structured Programming). 4GL - Thế Hệ Thứ Tư (Fourth-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ tư (1970s-1990) là dạng ngôn ngữ có chủ đích thiết kế những nhu liệu (software) phục vụ thương mại. Xét về lai lịch thì ngôn ngữ thế hệ thứ tư tiếp nối thế hệ thứ ba theo chiều hương đi lên nhằm đạt đến một trình độ trừu tượng cao hơn và hiệu năng cao hơn của các mệnh lệnh(statements).Ngôn ngữ thế hệ trước (thế hệ thứ ba) có cải thiện quá trình khai triển nhu liệu điện toán qua cố gắng tiến gần hơn tới ngôn ngữ tự nhiên (natural language) và xữ dụng những khối tự trị (block structures) trong mã ngữ (source code). Tuy nhiên, những phương pháp khai triển chương trình của thế hệ thứ ba có thể chậm và đưa đến nhiều lỗi kỹ thuật. Do đó, các chưong trình Điện Toán cần được triển khai nhanh hơn bằng cách bổ sung một dạng ngôn ngữ và phương pháp kỹ thuật ở trình độ cao có khả năng thực hiện những mệnh lệnh tương tự như những mệnh lệnh rất phức tạp của ngôn ngữ thế hệ thứ ba nhưng ít có khả năng đưa đến sai sót kỹ thuật hơn. Về một phương diện nào đó, kỹ sư nhu liệu (Software engineering) tập trung giải quyết và kiện toàn ngôn ngữ thế hệ thứ ba. Những dự án xây dựng trên ngôn ngữ thế hệ thứ tư và thứ năm tập trung nhiều hơn vào mục tiêu giải quyết vấn đề (Problem solving) và thiết kế hệ thống (System Engineering). Những ngôn ngữ thế hệ thứ tư được thiết kế nhằm giảm thiểu những khó nhọc khi viết các chương trình Điện toán, giảm thiểu thời gian và phí tổn triển khai nhu liệu. Những cố gắng như thế không phải lúc nào cũng thành công, đôi khi đưa đến những mã ngữ (code) vụng về và khó bảo trì (unmaintainable). Tuy nhiên, một khi xát định đúng vấn đề, ngôn ngữ thế hệ thứ tư có thể thành công nổi bật. MARK-IV và MAPPER, chẳng hạn, có số thu nhập 8 lần hơn COBAL xữ dụng ngôn ngữ thế hệ thứ ba. Lập trình ngôn ngữ thế hệ thứ tư thường được so sánh với những lập trình ngôn ngữ chuyên đề (Domain-specific Programming Languages - DSLs). Các nhà nghiên cứu khẳng định ngôn ngữ thế hệ thứ tư là một hệ phái (sub-set) của DSLs. Vì sự hiện hữu không thể chối bỏ được của Assembly Language ngay thời hiện đại của Tin Học, người ta ước đoán là bất hệ thống Điện Toán nào rồi cung sẽ phải là một tổng hợp tất cả các thế hệ ngôn ngữ, nhưng hạn chế tối đa việc xữ dụng ngôn ngữ thế hệ thứ nhất. 5GL - Thế Hệ Thứ Năm (Fifth-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ năm là dạng ngôn ngữ thiết kế nhằm mục đích giải quyết vấn đề bằng cách tuân thủ những khồng chế (Constraints) đối với chưong trình, chứ không phải bằng cách áp dụng những sách lược (Algoritm) do chương trình viên đặt ra.Trong khi những ngôn ngữ thế hệ thứ tư được thiết kế nhằm xây dựng những chương trình đặc biệt thì ngôn ngữ thế hệ thứ năm được thiết kế nhằm ra lệnh cho máy Điện Toán giải quyết vấn đề. Theo cách thức nầy, chương trình viên chĩ cần thẩm định đâu là vấn đề cần giải quyết và những điều kiện nào cần tuân thủ, không cần quan tâm làm cách nào soạn thảo một phương án hay sách lược để giải quyết vấn đề. Ngôn ngữ thế hệ thứ năm chủ yếu xữ dụng cho các công trình nghiên cứu về trí khôn nhân tạo (Artificial Intelligence). Prolog, OPS5, và Mercury là những ngôn ngữ thế hệ thứ năm được biết đến nhiều nhất. Trong những năm thập niên 1990, ngôn ngữ thế hệ thứ năm được xem là trào lưu của tương lai, và có người tiên đoán những ngôn ngữ nầy sẽ thay thế tất cả những ngôn ngữ khác ngoại trừ những ngôn ngữ trình độ thấp. Nổi bật nhất là từ 1982 đến 1993 Nhật Bản đã nghiên cứu và đầu tư nhiều vào dự án xây dựng những hệ thống Điện Toán trên cơ sở những ngôn ngữ thế hệ thứ năm, hi vọng sẽ thiết kế một hệ thống Điện Toán khổng lồ xữ dụng những trang cụ nầy. Tuy nhiên, căn cứ trên những chương trình đã được xây dựng, những khiếm khuyết của phương án đã trở nên hiển nhiên hơn. Thực tế cho thấy là, trên cơ sở những khống chế đối với chương trình liên quan đến vấn đề phải giải quyết, triển khai một phương án hữu hiệu để giải quyết vấn đề đó lại là một nan giải nội tại. Bước then chốt nầy chưa có thể tự động hoá được và còn phải cần đến tư duy của chương trình viên là con người. Ngày nay, lập trình ngôn ngữ thế hệ thứ năm đã mất đi phần nào sức quyến rủ ban đầu của nó và chủ yếu chĩ xữ dụng trong các địa hạt nghiên cứu. <%-- 3GL - Thế Hệ Thứ Ba --%> 3GL - Thế Hệ Thứ Ba (Third-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ ba là dạng ngôn ngữ ở trình độ cao (high level), như PL/I, C, hay JAVA, xữ dụng COMPILER để hoán chuyển những mệnh lệnh của loại ngôn ngữ cao cấp sang ngôn ngữ máy móc.Đối với Java, chẳng hạn, mệnh lệnh được hoán chuyển được gọi là BYTECODE,và mệnh lệnh nầy lại được hoán chuyển một lần nữa sang một loại ngôn ngữ máy móc thích ứng qua dạng máy giả định (Virtual machine), một bộ phận trong hệ thống vận hành của máy tính (operating system). Dạng ngôn ngữ thế hệ thứ ba nầy đòi hỏi rất nhiều kiến thức về chương trình điện toán. Hầu hết các ngôn ngữ thế hệ thứ ba hổ trợ những chương trình Điêẹn Toán thiết kế theo cấu trúc (Structured Programming). 4GL - Thế Hệ Thứ Tư (Fourth-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ tư (1970s-1990) là dạng ngôn ngữ có chủ đích thiết kế những nhu liệu (software) phục vụ thương mại. Xét về lai lịch thì ngôn ngữ thế hệ thứ tư tiếp nối thế hệ thứ ba theo chiều hương đi lên nhằm đạt đến một trình độ trừu tượng cao hơn và hiệu năng cao hơn của các mệnh lệnh(statements).Ngôn ngữ thế hệ trước (thế hệ thứ ba) có cải thiện quá trình khai triển nhu liệu điện toán qua cố gắng tiến gần hơn tới ngôn ngữ tự nhiên (natural language) và xữ dụng những khối tự trị (block structures) trong mã ngữ (source code). Tuy nhiên, những phương pháp khai triển chương trình của thế hệ thứ ba có thể chậm và đưa đến nhiều lỗi kỹ thuật. Do đó, các chưong trình Điện Toán cần được triển khai nhanh hơn bằng cách bổ sung một dạng ngôn ngữ và phương pháp kỹ thuật ở trình độ cao có khả năng thực hiện những mệnh lệnh tương tự như những mệnh lệnh rất phức tạp của ngôn ngữ thế hệ thứ ba nhưng ít có khả năng đưa đến sai sót kỹ thuật hơn. Về một phương diện nào đó, kỹ sư nhu liệu (Software engineering) tập trung giải quyết và kiện toàn ngôn ngữ thế hệ thứ ba. Những dự án xây dựng trên ngôn ngữ thế hệ thứ tư và thứ năm tập trung nhiều hơn vào mục tiêu giải quyết vấn đề (Problem solving) và thiết kế hệ thống (System Engineering). Những ngôn ngữ thế hệ thứ tư được thiết kế nhằm giảm thiểu những khó nhọc khi viết các chương trình Điện toán, giảm thiểu thời gian và phí tổn triển khai nhu liệu. Những cố gắng như thế không phải lúc nào cũng thành công, đôi khi đưa đến những mã ngữ (code) vụng về và khó bảo trì (unmaintainable). Tuy nhiên, một khi xát định đúng vấn đề, ngôn ngữ thế hệ thứ tư có thể thành công nổi bật. MARK-IV và MAPPER, chẳng hạn, có số thu nhập 8 lần hơn COBAL xữ dụng ngôn ngữ thế hệ thứ ba. Lập trình ngôn ngữ thế hệ thứ tư thường được so sánh với những lập trình ngôn ngữ chuyên đề (Domain-specific Programming Languages - DSLs). Các nhà nghiên cứu khẳng định ngôn ngữ thế hệ thứ tư là một hệ phái (sub-set) của DSLs. Vì sự hiện hữu không thể chối bỏ được của Assembly Language ngay thời hiện đại của Tin Học, người ta ước đoán là bất hệ thống Điện Toán nào rồi cung sẽ phải là một tổng hợp tất cả các thế hệ ngôn ngữ, nhưng hạn chế tối đa việc xữ dụng ngôn ngữ thế hệ thứ nhất. 5GL - Thế Hệ Thứ Năm (Fifth-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ năm là dạng ngôn ngữ thiết kế nhằm mục đích giải quyết vấn đề bằng cách tuân thủ những khồng chế (Constraints) đối với chưong trình, chứ không phải bằng cách áp dụng những sách lược (Algoritm) do chương trình viên đặt ra.Trong khi những ngôn ngữ thế hệ thứ tư được thiết kế nhằm xây dựng những chương trình đặc biệt thì ngôn ngữ thế hệ thứ năm được thiết kế nhằm ra lệnh cho máy Điện Toán giải quyết vấn đề. Theo cách thức nầy, chương trình viên chĩ cần thẩm định đâu là vấn đề cần giải quyết và những điều kiện nào cần tuân thủ, không cần quan tâm làm cách nào soạn thảo một phương án hay sách lược để giải quyết vấn đề. Ngôn ngữ thế hệ thứ năm chủ yếu xữ dụng cho các công trình nghiên cứu về trí khôn nhân tạo (Artificial Intelligence). Prolog, OPS5, và Mercury là những ngôn ngữ thế hệ thứ năm được biết đến nhiều nhất. Trong những năm thập niên 1990, ngôn ngữ thế hệ thứ năm được xem là trào lưu của tương lai, và có người tiên đoán những ngôn ngữ nầy sẽ thay thế tất cả những ngôn ngữ khác ngoại trừ những ngôn ngữ trình độ thấp. Nổi bật nhất là từ 1982 đến 1993 Nhật Bản đã nghiên cứu và đầu tư nhiều vào dự án xây dựng những hệ thống Điện Toán trên cơ sở những ngôn ngữ thế hệ thứ năm, hi vọng sẽ thiết kế một hệ thống Điện Toán khổng lồ xữ dụng những trang cụ nầy. Tuy nhiên, căn cứ trên những chương trình đã được xây dựng, những khiếm khuyết của phương án đã trở nên hiển nhiên hơn. Thực tế cho thấy là, trên cơ sở những khống chế đối với chương trình liên quan đến vấn đề phải giải quyết, triển khai một phương án hữu hiệu để giải quyết vấn đề đó lại là một nan giải nội tại. Bước then chốt nầy chưa có thể tự động hoá được và còn phải cần đến tư duy của chương trình viên là con người. Ngày nay, lập trình ngôn ngữ thế hệ thứ năm đã mất đi phần nào sức quyến rủ ban đầu của nó và chủ yếu chĩ xữ dụng trong các địa hạt nghiên cứu. <%-- 4GL - Thế Hệ Thứ Tư--%> 4GL - Thế Hệ Thứ Tư (Fourth-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ tư (1970s-1990) là dạng ngôn ngữ có chủ đích thiết kế những nhu liệu (software) phục vụ thương mại. Xét về lai lịch thì ngôn ngữ thế hệ thứ tư tiếp nối thế hệ thứ ba theo chiều hương đi lên nhằm đạt đến một trình độ trừu tượng cao hơn và hiệu năng cao hơn của các mệnh lệnh(statements).Ngôn ngữ thế hệ trước (thế hệ thứ ba) có cải thiện quá trình khai triển nhu liệu điện toán qua cố gắng tiến gần hơn tới ngôn ngữ tự nhiên (natural language) và xữ dụng những khối tự trị (block structures) trong mã ngữ (source code). Tuy nhiên, những phương pháp khai triển chương trình của thế hệ thứ ba có thể chậm và đưa đến nhiều lỗi kỹ thuật. Do đó, các chưong trình Điện Toán cần được triển khai nhanh hơn bằng cách bổ sung một dạng ngôn ngữ và phương pháp kỹ thuật ở trình độ cao có khả năng thực hiện những mệnh lệnh tương tự như những mệnh lệnh rất phức tạp của ngôn ngữ thế hệ thứ ba nhưng ít có khả năng đưa đến sai sót kỹ thuật hơn. Về một phương diện nào đó, kỹ sư nhu liệu (Software engineering) tập trung giải quyết và kiện toàn ngôn ngữ thế hệ thứ ba. Những dự án xây dựng trên ngôn ngữ thế hệ thứ tư và thứ năm tập trung nhiều hơn vào mục tiêu giải quyết vấn đề (Problem solving) và thiết kế hệ thống (System Engineering). Những ngôn ngữ thế hệ thứ tư được thiết kế nhằm giảm thiểu những khó nhọc khi viết các chương trình Điện toán, giảm thiểu thời gian và phí tổn triển khai nhu liệu. Những cố gắng như thế không phải lúc nào cũng thành công, đôi khi đưa đến những mã ngữ (code) vụng về và khó bảo trì (unmaintainable). Tuy nhiên, một khi xát định đúng vấn đề, ngôn ngữ thế hệ thứ tư có thể thành công nổi bật. MARK-IV và MAPPER, chẳng hạn, có số thu nhập 8 lần hơn COBAL xữ dụng ngôn ngữ thế hệ thứ ba. Lập trình ngôn ngữ thế hệ thứ tư thường được so sánh với những lập trình ngôn ngữ chuyên đề (Domain-specific Programming Languages - DSLs). Các nhà nghiên cứu khẳng định ngôn ngữ thế hệ thứ tư là một hệ phái (sub-set) của DSLs. Vì sự hiện hữu không thể chối bỏ được của Assembly Language ngay thời hiện đại của Tin Học, người ta ước đoán là bất hệ thống Điện Toán nào rồi cung sẽ phải là một tổng hợp tất cả các thế hệ ngôn ngữ, nhưng hạn chế tối đa việc xữ dụng ngôn ngữ thế hệ thứ nhất. 5GL - Thế Hệ Thứ Năm (Fifth-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ năm là dạng ngôn ngữ thiết kế nhằm mục đích giải quyết vấn đề bằng cách tuân thủ những khồng chế (Constraints) đối với chưong trình, chứ không phải bằng cách áp dụng những sách lược (Algoritm) do chương trình viên đặt ra.Trong khi những ngôn ngữ thế hệ thứ tư được thiết kế nhằm xây dựng những chương trình đặc biệt thì ngôn ngữ thế hệ thứ năm được thiết kế nhằm ra lệnh cho máy Điện Toán giải quyết vấn đề. Theo cách thức nầy, chương trình viên chĩ cần thẩm định đâu là vấn đề cần giải quyết và những điều kiện nào cần tuân thủ, không cần quan tâm làm cách nào soạn thảo một phương án hay sách lược để giải quyết vấn đề. Ngôn ngữ thế hệ thứ năm chủ yếu xữ dụng cho các công trình nghiên cứu về trí khôn nhân tạo (Artificial Intelligence). Prolog, OPS5, và Mercury là những ngôn ngữ thế hệ thứ năm được biết đến nhiều nhất. Trong những năm thập niên 1990, ngôn ngữ thế hệ thứ năm được xem là trào lưu của tương lai, và có người tiên đoán những ngôn ngữ nầy sẽ thay thế tất cả những ngôn ngữ khác ngoại trừ những ngôn ngữ trình độ thấp. Nổi bật nhất là từ 1982 đến 1993 Nhật Bản đã nghiên cứu và đầu tư nhiều vào dự án xây dựng những hệ thống Điện Toán trên cơ sở những ngôn ngữ thế hệ thứ năm, hi vọng sẽ thiết kế một hệ thống Điện Toán khổng lồ xữ dụng những trang cụ nầy. Tuy nhiên, căn cứ trên những chương trình đã được xây dựng, những khiếm khuyết của phương án đã trở nên hiển nhiên hơn. Thực tế cho thấy là, trên cơ sở những khống chế đối với chương trình liên quan đến vấn đề phải giải quyết, triển khai một phương án hữu hiệu để giải quyết vấn đề đó lại là một nan giải nội tại. Bước then chốt nầy chưa có thể tự động hoá được và còn phải cần đến tư duy của chương trình viên là con người. Ngày nay, lập trình ngôn ngữ thế hệ thứ năm đã mất đi phần nào sức quyến rủ ban đầu của nó và chủ yếu chĩ xữ dụng trong các địa hạt nghiên cứu. <%--5GL - Thế Hệ Thứ Năm--%> 5GL - Thế Hệ Thứ Năm (Fifth-generation Programming Language)Lập trình ngôn ngữ thế hệ thứ năm là dạng ngôn ngữ thiết kế nhằm mục đích giải quyết vấn đề bằng cách tuân thủ những khồng chế (Constraints) đối với chưong trình, chứ không phải bằng cách áp dụng những sách lược (Algoritm) do chương trình viên đặt ra.Trong khi những ngôn ngữ thế hệ thứ tư được thiết kế nhằm xây dựng những chương trình đặc biệt thì ngôn ngữ thế hệ thứ năm được thiết kế nhằm ra lệnh cho máy Điện Toán giải quyết vấn đề. Theo cách thức nầy, chương trình viên chĩ cần thẩm định đâu là vấn đề cần giải quyết và những điều kiện nào cần tuân thủ, không cần quan tâm làm cách nào soạn thảo một phương án hay sách lược để giải quyết vấn đề. Ngôn ngữ thế hệ thứ năm chủ yếu xữ dụng cho các công trình nghiên cứu về trí khôn nhân tạo (Artificial Intelligence). Prolog, OPS5, và Mercury là những ngôn ngữ thế hệ thứ năm được biết đến nhiều nhất. Trong những năm thập niên 1990, ngôn ngữ thế hệ thứ năm được xem là trào lưu của tương lai, và có người tiên đoán những ngôn ngữ nầy sẽ thay thế tất cả những ngôn ngữ khác ngoại trừ những ngôn ngữ trình độ thấp. Nổi bật nhất là từ 1982 đến 1993 Nhật Bản đã nghiên cứu và đầu tư nhiều vào dự án xây dựng những hệ thống Điện Toán trên cơ sở những ngôn ngữ thế hệ thứ năm, hi vọng sẽ thiết kế một hệ thống Điện Toán khổng lồ xữ dụng những trang cụ nầy. Tuy nhiên, căn cứ trên những chương trình đã được xây dựng, những khiếm khuyết của phương án đã trở nên hiển nhiên hơn. Thực tế cho thấy là, trên cơ sở những khống chế đối với chương trình liên quan đến vấn đề phải giải quyết, triển khai một phương án hữu hiệu để giải quyết vấn đề đó lại là một nan giải nội tại. Bước then chốt nầy chưa có thể tự động hoá được và còn phải cần đến tư duy của chương trình viên là con người. Ngày nay, lập trình ngôn ngữ thế hệ thứ năm đã mất đi phần nào sức quyến rủ ban đầu của nó và chủ yếu chĩ xữ dụng trong các địa hạt nghiên cứu. |