12.1.tương tự với ngôn ngữ tự nhiên 12.2.ngôn ngữ máy tính 12.3.hợp ngữ...

79

Upload: ulla

Post on 20-Mar-2016

100 views

Category:

Documents


0 download

DESCRIPTION

Nội Dung. 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao 12.5.Ngôn ngữ lập trình hướng đối tượng 12.6.Một số ngôn ngữ lập trình cấp cao 12.7.Các ngôn ngữ lập trình cấp cao khác 12.8.Đặc trưng của một ngôn ngữ lập trình - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao
Page 2: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

12.1. Tương tự với ngôn ngữ tự nhiên12.2. Ngôn ngữ máy tính12.3. Hợp ngữ12.4. Ngôn ngữ cấp cao12.5. Ngôn ngữ lập trình hướng đối tượng12.6. Một số ngôn ngữ lập trình cấp cao12.7. Các ngôn ngữ lập trình cấp cao khác12.8. Đặc trưng của một ngôn ngữ lập trình12.9. Cách lựa chọn một ngôn ngữ lập trình cho

một ứng dụng12.10.Các khái niệm liện quan khác

Nội Dung

Page 3: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Ngôn ngữ máy tính là một biện pháp để giao tiếp dùng để truyền đạt thông tin giữa người và máy tính

• Tất cả ngôn ngữ máy tính có từ ngữ riêng của chúng.

• Khác biệt chủ yếu giữa ngôn ngữ tự nhiên và ngôn ngữ máy tính là ngôn ngữ tự nhiên có từ vựng lớn nhưng đa số ngôn ngữ máy tính sử dụng rất hạn chế hoặc hạn chế từ vựng.

• Ngôn ngữ máy tính có thể phân thành các loại sau :1. Ngôn ngữ máy tính2. Hợp ngữ3. Ngôn ngữ cấp cao

Mã máy thông qua ngôn ngữ tự nhiên

Page 4: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Là ngôn ngữ của máy tính vật lý mà người dùng có thể lập trình được.

• Lệnh máy :– Mỗi lệnh máy chỉ thực hiện một tác vụ rất đơn giản

như 1 phép tính số học hay 1 hoạt động đọc/ghi vùng nhớ/thanh ghi CPU.

– Một lệnh máy bao gôm 2 phần : mã lệnh và toán hạng. Mã lệnh (opcode) là một chuỗi các bit 0 và 1. Mỗi chuỗi bit miêu tả 1 số, mỗi số miêu tả 1 lệnh máy cụ thể.

– Toán hạng xác định dữ liệu nào sẽ bị xử lý bởi lệnh máy tương ứng. Toán hạng cũng là chuỗi bit nhị phân, nhưng định dạng và ngữ nghĩa của nó phụ thuộc vào từng lệnh máy cụ thể.

Ngôn ngữ của máy tính

Page 5: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Các toán hạng điển hình có trong tập lệnh của máy tính: 1. Phép toán số học2. Phép toán logic3. Các thao tác rẽ nhánh.4. Thao tác để di chuyển dữ liệu giữa vị trí bộ nhớ và

thanh ghi.5. Thao tác di chuyển dữ liệu từ các thiết bị nhập/xuất

của máy tính.

Ngôn ngữ của máy tính

Page 6: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Ví dụ: Giả sử ta có 2 biến nguyên 16 bit, biến nguyên thứ nhât (i) nằm ở vị trí nhớ 200h, biến nguyên thứ 2 (j) nằm ở vị trí nhớ 202h.Đọan lệnh máy (Intel 80x86) sau đây sẽ thiết lập nội dung cho biến i = 5 rồi thiết lập nội dung của biến j theo công thức i+10 :10111000 00000101 00000000 b8 05 0010100011 00000000 00000002 a3 00 0210100001 00000000 00000002 a1 00 0200000101 00001010 00000000 05 0a 0010100011 00000010 00000010 a3 02 02

• Con người rất khó lập trình (rất khó viết và đọc) giải quyết bài toán ngoài đời trực tiếp bằng ngôn ngữ máy vì quá xa lạ với ngôn ngữ tự nhiên mà con người đã từng dùng.

Ngôn ngữ của máy tính

Page 7: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Ưu điểm và hạn chế của ngôn ngữ máy tính • Ưu: Chương trình viết ngôn ngữ máy tính có thể được

thi hành rất nhanh bằng máy tính • Khuyết:

– Phụ thuộc vào máy– Khó viết chương trình– Lỗi prone– Khó sửa đổi– Lập trình viên cần ghi mã số cho từng lệnh. – Lập trình viên cần ghi vị trí lưu trữ của lệnh và dữ liệu ở

dạng số. – Lập trình viên cần theo dõi vị trí lưu trữ của lệnh và dữ

liệu trong khi ghi chương trình.

Ngôn ngữ của máy tính

Page 8: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Hợp ngữ được sử dụng vào năm 1952. Lập trình bằng hợp ngữ có những đặc điểm sau :1. Sử dụng mã dễ nhớ theo ký tự và số thay vì mã số cho

lệnh trong tập lệnh. 2. Lưu trữ vị trí được biểu diễn dưới dạng địa chỉ theo ký

tự và số thay vì địa chỉ số. 3. Cung cấp lệnh bổ sung gọi là lệnh giả trong tập lệnh

dùng để hướng dẫn hệ thống cách chúng ta muốn chương trình sẽ được dịch bằng hợp ngữ bên trong bộ nhớ của máy tính.

START PROGRAM AT 0000START DATA AT 1000 SET ASIDE AN ADDRESS FOR FRSTSET ASIDE AN ADDRESS FOR SCNDASIDE AN ADDRESS FOR ANSR

Hợp ngữ

Page 9: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Trình dịch hợp ngữ của hệ thống máy tính là hệ thống phần mềm, cung cấp bởi nhà sản xuất máy tính dịch chương trình hợp ngữ thành chương trình ngôn ngữ máy tính

Hợp ngữ

AssemblerInput Output

Assembler language program Machine language program

(Source Program) (Object Program)One-to-once correspondence

Figure 12.2. Illustrating the translation process of an assembler.

Page 10: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Ví dụ: Chương trình hợp ngữ mẫu cộng hai số và lưu trữ kết quả

Hợp ngữ

Mnemonic Opcode Meaning

HLTCLAADDSUBSTA

0010141530

Halt, sử dụng để kết thúc chương trìnhXóa và thêm vào thanh ghi AThêm nội dung vào thanh ghi ATrừ nội dung của thanh ghi A Lưu trữ thanh ghi A

Page 11: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Thuận lợi • Dễ hiểu và dễ sử dụng• Dễ định vị hơn và sửa lỗi chính xác • Dễ để sửa• Không quan tâm đến địa chỉ• Dễ dàng xác định đúng vị trí

• Hiệu xuất cao hơn ngôn ngữ máy tính

Hợp ngữ

Page 12: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Hạn chế:• Phụ thuộc vào • Người lập trình phải có kiến thức cần thiết về phần

cứng • Các lệnh chỉ được viết ở mức mã máy nên viết

chương trình bằng hợp ngữ vẫn còn mất thời gian và không dễ dàng lắm.

Hợp ngữ

Page 13: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Là ngôn ngữ máy chỉ có hai cấu trúc điều khiển cơ bản để thực hiện các lệnh : tuần tự và nhảy. Cấu trúc tuần tự là mặc định: sau khi thực hiện xong lệnh máy hiện hành sẽ thi hành tiếp lệnh đi ngay sau lệnh hiện hành trong chương trình. Lệnh nhảy cho phép người lập trình xác định lệnh kế tiếp được thi hành ở đâu trong chương trình.

• “Ngôn ngữ lập trình cấp thấp" để miêu tả các ngôn ngữ của các máy nằm thấp dưới đáy chồng các máy nhiều cấp. Thí dụ ngôn ngữ máy là ngôn ngữ lập trình cấp thấp.

Ngôn ngữ lập trình cấp thấp

Page 14: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Là các ngôn ngữ của các máy nằm cao trên chồng các máy nhiều cấp.

• Cho phép dùng nhiều kiểu dữ liệu và nhiều cấu trúc điều khiển hơn so với những gì được cung cấp bởi ngôn ngữ cấp thấp, đồng thời cách biểu diễn các lệnh cũng gần với ngôn ngữ tự nhiên.

• Phân loại các ngôn ngữ lập trình cấp cao :– Ngôn ngữ đa mục đích: Basic, C, C++, C#, Java, Fortran,

Pascal– Ngôn ngữ lập trình stack : TrueType, Postscript,...– Lập trình khai báo : C, Pascal,...– Ngôn ngữ lập trình logic, lập trình thủ tục & lập trình hàm :

Prolog, Lisp,..– Ngôn ngữ lập trình hướng đối tượng : C++, C#, Java,..

Ngôn ngữ cấp cao

Page 15: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Đặc điểm của ngôn ngữ cấp cao:• Độc lập với máy• Không đòi hỏi lập trình viên biết bất cứ thứ gì về cấu

trúc bên trong của máy tính. • Không xử lý mã máy. • Cho phép sử dụng máy tính giải quyết vấn đề ngay cả

khi người dùng không phải là chuyên gia lập trình.

Ngôn ngữ cấp cao

Page 16: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Ví dụ:• Ngôn ngữ máy dạng nhị phân NNM dạng Hex NN Assembly

10111000 00000101 00000000 b8 05 00 mov ax, 510100011 00000000 00000002 a3 00 02 mov [200], ax10100001 00000000 00000002 a1 00 02 mov ax, [200]00000101 00001010 00000000 05 0a 00 add ax, 1010100011 00000010 00000010 a3 02 02 mov [202],ax

• Ngôn ngữ cấp cao C :short i, j; // khai báo 2 biên i, j thuộc kiểu số nguyên 16 biti = 5; // chứa 5 vào biến ij = i +10; // chứa kết quả tính công thức i + 10 vào biến j

Ngôn ngữ cấp cao

Page 17: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Chương trình dịch để dịch chương trình bằng ngôn ngữ cấp cao phải chuyển đổi thành chương trình ngôn ngữ máy tính tương đương với nó trước khi nó có thể

được thi hành trên máy tính.

Ngôn ngữ cấp cao

Quá trình dịch của một trình biên dịch

Page 18: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Ngôn ngữ cấp cao

Minh họa quá trình biên dịch lại mã nguồn của chương trình

Page 19: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Linker (Liên kết, kết nối): được sử dụng để kết hợp chính xác tất cả các tập tin đối tượng chương trình (module) của phần mềm, và chuyển đổi chúng vào chương trình thực thi cuối cùng.

Ngôn ngữ cấp cao

Page 20: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Ngôn ngữ cấp cao

Quá trình biên dịch nhiều chương trình nguồnvà kết nối chúng với nhau để thực thi chương trình (nạp module)

Page 21: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Trình thông dịch: được sử dụng để phiên dịch các chương trình được viết bằng ngôn ngữ cấp cao.

• Trình thông dịch lấy các lệnh của một chương trình ngôn ngữ cấp cao dịch nó sang các tập lệnh của ngôn ngữ máy và sau đó ngay lập tức thực thi kết quả các tập lệnh bằng ngôn ngữ máy.

Ngôn ngữ cấp cao

Vai trò của trình thông dịch

Page 22: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Những bất lợi chính của trình biên dịch so với trình thông dịch là chúng chạy chậm hơn so với trình biên dịch khi dịch một chương trình hoàn tất.

• So với biên dịch, thông dịch được dễ dàng hơn để viết.

• Lợi thế chính của thông dịch so với các trình biên dịch là một lỗi cú pháp trong một biểu thức của chương trình được phát hiện thì sẽ đưa ra hướng giải quyết cho các lập trình viên ngay sau khi nó được dịch.

Ngôn ngữ cấp cao

Vai trò của trình thông dịch

Page 23: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Thuận lợi của ngôn ngữ cấp cao:• Dễ sử dụng trên từng máy độc• Dễ dàng đọc và sử dụng hơn• Lỗi ít • Chi phí chuẩn bị chương trình thấp hơn ngữ cấp cao

thấp hơn với một hợp ngữ hay với một ngôn ngữ máy. • Tài liệu tốt hơn• Dễ dàng lưu trữ

Ngôn ngữ cấp cao

Page 24: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Hạn chế của ngôn ngữ cấp cao:• Hiệu quả Thấp hơn• Ít linh hoạt hơn

Ngôn ngữ cấp cao

Page 25: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Lập trình hướng đối tượng(OOP) là gì?• Các khái niệm về OOP lần đầu tiên được giới

thiệu vào năm 1967 của các nhà phát triển của một ngôn ngữ lập trình có tên Simula-67 .

• Khái niệm này bắt đầu được phổ biến trong những năm 1980 với sự phát triển của ngôn ngữ lập trình khác có tên Smalltalk, từ đó khái niệm OOP được sử dụng rộng rãi.

Ngôn ngữ lập trình hướng đối tượng(OOP)

Page 26: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Lập trình hướng đối tượng(OOP) là gì?• Những ý tưởng đằng sau OOP cơ bản là ngôn ngữ lập trình

được sử dụng để mô phỏng các vấn đề của thế giới thực trên các máy tính.

• Do đó cái cốt lõi của OOP là giải quyết vấn đề bằng cách xác định các đối tượng thế giới thực của vấn đề và xử lý yêu cầu của các đối tượng, và sau đó tạo ra mô phỏng của những đối tượng, quy trình của họ, và được yêu cầu thông tin liên lạc giữa các đối tượng.

Ngôn ngữ lập trình hướng đối tượng(OOP)

Page 27: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Các khái niệm cơ bản1.Đối tượng • Một đối tượng là yếu tố ban đầu của một chương trình được

viết bằng một ngôn ngữ OOP. Mỗi đối tượng bao gồm một bộ các thủ tục (gọi là phương thức) và một số dữ liệu (thuộc tính).

• Một chương trình được viết bằng một ngôn ngữ OOP là một tập hợp các đối tượng liên kết với nhau.

Ngôn ngữ lập trình hướng đối tượng(OOP)

Page 28: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Các khái niệm cơ bản2.Phương thức• Một phương thức của một đối tượng xác

định tập hợp các thao tác mà đối tượng sẽ thực hiện khi một thông báo tương ứng với các phương thức nhận được của đối tượng.

• Trong một đoạn chương trình, phương thức được định nghĩa như chức năng hoàn chỉnh với các thông số và khả năng trở về giá trị.

Ngôn ngữ lập trình hướng đối tượng(OOP)

Page 29: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Ngôn ngữ lập trình hướng đối tượng(OOP)

Mô hình của 1 đối tượng sử dụng trong OOP

Page 30: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Các khái niệm cơ bản3.Thông báo• Các cơ chế để hỗ trợ giao tiếp giữa các đối

tượng là thông qua thông báo .• Tức là, tất cả các máy tính trong một chương

trình được viết bằng một ngôn ngữ OOP được thực hiện bằng cách gửi thông báo cho một đối tượng để gọi một trong các phương thức.

Ngôn ngữ lập trình hướng đối tượng(OOP)

Page 31: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Các khái niệm cơ bản4.Lớp• Một lớp là một mô tả của một hay nhiều đối tượng tương tự

nhau. Khái niệm lớp là tương tự với "kiểu" trong các quy ước thủ tục- hướng ngôn ngữ.

• Lớp có 2 dạng: lớp biến và lớp thực thể.• Ví dụ, nếu "số nguyên" là một kiểu (lớp), sau đó "8" là một

thực thể (đối tượng) của kiểu (lớp) "số nguyên". Tương tự, "Người-1" và "Người-2" có thể là hai thực thể (đối tượng) của một lớp "Người".

Ngôn ngữ lập trình hướng đối tượng(OOP)

Page 32: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Các khái niệm cơ bản5.Thừa kế• Trong OOP, kế thừa là một cơ chế để chia sẻ mã lệnh và

hành vi. Nó cho phép một lập trình viên tái sử dụng các hành vi của một lớp trong các định nghĩa của lớp mới.

• Kế thừa không cần phải có giới hạn đối với một lớp cha. Lớp con có thể kế thừa từ nhiều lớp cha. Đây gọi là đa thừa kế.

Ngôn ngữ lập trình hướng đối tượng(OOP)

Page 33: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Ngôn ngữ lập trình hướng đối tượng(OOP)

Ví dụ về cấu trúc thừa kế của lớp

Page 34: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Chương trình hướng thủ tục• Ngôn ngữ lập trình hướng thủ tục quy ước sử dụng thủ tục

trừu tượng mà thứ tự đóng gói một dãy các lệnh vào trong các thủ tục.

• Vai trò của các thủ tục là chuyển đổi dữ liệu đầu vào được xác định bởi các tham số vào các giá trị.

• Mô hình của ngôn ngữ lập trình hướng thủ tục có nguyên tắc tổ chức mạnh mẽ để quản lý các hành động và thuật toán nhưng yếu kém về nguyên tác tổ chức quản lý dữ liệu dùng chung.

Page 35: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Chương trình hướng đối tượng • Ngôn ngữ lập trình hướng đối tượng đóng gói dữ liệu cũng

như thứ tự thao tác vào trong các thực thể trừu tượng gọi là đối tượng.

• Lập trình hướng đối tượng cung cấp nhiều công cụ tiện dụng và hữu ích hơn lập trình hướng thủ tục.

• Vai trò của các đối tượng là phục vụ như một kho dữ liệu và đáp ứng thực hiện các hành động được yêu cầu theo một cách thức xác định bởi trạng thái hiện tại của hệ thống.

• Mô hình của ngôn ngữ lập trình hướng đối tượng thì mạnh mẽ về tổ chức quản lý các hành động và thuật toán và cả quản lý dữ liệu dùng chung.

• Kế thừa cung cấp thêm sức mạnh cho phép các lớp được phân loại theo các thuộc tính và theo thừa số để tách thành nhiều lớp phụ vào một siêu lớp.

Page 36: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Chương trình hướng đối tượng

Thuận lợi:•Mẫu tự nhiên•Thiết kế mô đun•Trừu tượng•Liên kết động•Tái sử dụng mã lệnh•Dễ bảo trì

Thảo luận: Giải thích, ví dụ minh họa

Page 37: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

1) FORTRAN2) COBOL 3) BASIC4) PASCAL 5) PL/1

Thảo luận

Page 38: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

1. FORTRAN• FORTRAN là từ viết tắt của FORmula TRANslation.• Được thiết kế để giải quyết các vấn đề khoa học và kỹ

thuậtMột số tính năng quan trọng của FORTRAN77 là:

1.Xử lý chuỗi ký tự.2.Khởi tạo các vòng lặp rõ ràng hơn.3.Câu lệnh IF với một lựa chọn ELSE.

Một số tính năng quan trọng của FORTRAN 90: 1.Xây dựng hàm cho các dãy toán tử như DOTPRODUCT,

MATMUL, TRANSPOSE, MAXVAL, M1NV AL, PRODUCT, và SUM.

2. Cơ sở để tự động phân vùng và phân chia vị trí mảng hỗ trợ dữ liệu 3. Sử dụng biến con trỏ cho phép truy xuất các địa chỉ gián tiếp cung

cấp một phương thức động quản lý lưu trữ. 4. Thêm một số lệnh để dễ dàng lập trình như CASE, CYCLE, EXIT

Page 39: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

C FORTRAN PROGRAM TO COMPUTEC THE SUM OF 10 NUMBERS

SUM = 0 DO 50 I = 1, 10READ (5, 10)NSUM = SUM + N

50 CONTINUEWRITE (6, 20) SUM

10 FORMAT (F6.2)20 FORMAT (1X, ‘THE SUM OF GIVEN

NUMBERS = ’,F10.2STOPEND

Ví dụ về chương trình FORTRAN

Page 40: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

2. COBOLCOBOL là từ viết tắt của COmmon Business Oriented

Language. Các chuẩn mới COBOL có những tính năng:Định dạng miễn phí, cho phép nhập lệnh vào bất cứ vị trí nào

trên dòng.Các chú thích trên dòng.Một số loại dữ liệu mới.Điều kiện biên soạn của một số mã phân đoạn cho phép người

lập trình viết các chương trình đáp ứng được với các môi trường khác nhau.

Dữ liệu tự động xác nhận.Gọi lệnh cải tiến.Chia sẻ tập tin và khóa các bản ghi Các tính năng hướng đối tượng: lớp, đối tượng, thừa kế,...

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

Page 41: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

2. COBOLCOBOL là từ viết tắt của COmmon Business Oriented

Language. Các chuẩn mới COBOL có những tính năng:Định dạng miễn phí, cho phép nhập lệnh vào bất cứ vị trí nào

trên dòng.Các chú thích trên dòng.Một số loại dữ liệu mới.Điều kiện biên soạn của một số mã phân đoạn cho phép người

lập trình viết các chương trình đáp ứng được với các môi trường khác nhau.

Dữ liệu tự động xác nhận.Gọi lệnh cải tiến.Chia sẻ tập tin và khóa các bản ghi Các tính năng hướng đối tượng: lớp, đối tượng, thừa kế,...

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

Page 42: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Các ràng buộc được chỉ định để tự động chấp nhận dữ liệu

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

Page 43: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Tất cả các chương trình COBOL phải có bốn phần sau: 1. Phần xác minh: xác định các thông tin về chương trình. 2. Phần môi trường: xác định máy tính và các thiết bị

ngoại vi được sử dụng để biên dịch và thực thi các chương trình.

3. Phần dữ liệu: xác định cấu trúc và định dạng của các tập tin dữ liệu đầu vào và đầu ra cũng như tất cả các vùng lưu trữ được sử dụng để lưu trữ những kết quả trung gian và các giá trị khác trong quá trình xử lý.

4. Phần thủ tục: chứa các các lệnh tuần tự được thực hiện bởi chương trình.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

Page 44: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

Page 45: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Tất cả các chương trình COBOL phải có bốn phần sau: 1. Phần xác minh: xác định các thông tin về chương trình. 2. Phần môi trường: xác định máy tính và các thiết bị

ngoại vi được sử dụng để biên dịch và thực thi các chương trình.

3. Phần dữ liệu: xác định cấu trúc và định dạng của các tập tin dữ liệu đầu vào và đầu ra cũng như tất cả các vùng lưu trữ được sử dụng để lưu trữ những kết quả trung gian và các giá trị khác trong quá trình xử lý.

4. Phần thủ tục: chứa các các lệnh tuần tự được thực hiện bởi chương trình.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

Page 46: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• COBOL thường gọi tắt là ngôn ngữ “self –documenting” có các tính năng của sau đây: 1. Các câu lệnh tương tự như tiếng anh. 2. Cấu trúc câu và đoạn của nó giống với tiếng anh.3. Chiều dài tối đa của tên trường là 30 ký tự. Với chiều

dài của tên lên đến 30 ký tự, tên có thể nhận diện chính xác những lĩnh vực và mục đích của nó.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

Page 47: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

3) Basic• BASIC là chữ viết tắt của Beginners All-purpose Symbolic

Instruction Code, BASIC được phát triển vào năm 1963 bởi các giáo sư John Kemeny và Thomas Kurtz thuộc đaih học Darmouth ,Mỹ

• Các đặc tính của BASIC:1. Được thiết kế sử dụng các thiết bị đầu cuối như là phương pháp

truy cập vào máy tính. 2. Được thiết kế như một ngôn ngữ thông dịch để các lập trình có thể

tạo ra, chạy, kiểm tra và gỡ lỗi chương trình. 3. Được thiết kế với rất ít câu lệnh, quy tắc cú pháp bởi vậy nó có thể

học và sử dụng dễ dàng. 4. Bộ dịch ngôn ngữ sử dụng cho BASIC là thông dịch cho phép lập

trình viên kiểm tra lỗi cú pháp và sửa nó ngay khi chương trình được nhập vào.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

Page 48: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

5 REM PROGRAM TO COMPUTE 6 REM THE SUM OF 10 NUMBERS10 LETS = 020 FOR I = 1 TO 1030 READ N40 LET S=S + N50 NEXT I60 PRINT "THE SUM OF GIVEN NUMBERS = "; S70 DATA 4,20,15,32,4880 DATA 12,3,9, 14,4490 END;

Một chương trình Basic cơ bản

Page 49: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

4) Pascal:• Được đặt tên theo nhà toán học nổi tiếng người Pháp ở

thế kỷ 17, Blaise Pascal, ngôn ngữ này được tạo ra năm 1971 bởi Nicklaus Wirth sư của Viện Công nghệ liên bang ở Zurich, Thụy Sĩ.

• Pascal đã được phát triển dựa trên các khái niệm liên quan đến cấu trúc chương trình, đặc biệt biểu thức điều khiển và cấu trúc lặp.

• Để tạo ra chương trình có cấu trúc, các chương trình Pascal gồm nhiều khối. Mỗi khối bắt đầu với biểu thức BEGIN và kết thúc với biểu thức END

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

Page 50: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Pascal được công nhận như là một ngôn ngữ giảng dạy và được sử dụng để giảng dạy cho những người mới bắt đầu lập trình

• Pascal đã được chuẩn hóa theo chuẩn ANSI vào năm 1983.

• Pascal phù hợp cho cả những ứng dụng khoa học và kinh doanh bởi vì nó có những tính năng để thao tác không chỉ với các con số mà còn vectors,ma trận, chuỗi các ký tự, tập hợp, bản nghi, tập tin và danh sách chương trình

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

Page 51: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

PROGRAM SUMNUMS (INPUT, OUTPUT);(* PROGRAM TO COMPUTE THE SUM OF 10 NUMBERS *)(* DECLARATION OF VARIABLES *)VAR SUM, N : REAL;VAR I: INTEGER;(*MAIN PROGRAM LOGIC STARTS HERE *)BEGIN

SUM:= 0;FOR I:= 1 TO 10 DOBE GIN

READ (N);SUM:= SUM + N;

END;WRITELN (“THE SUM OF GIVEN NUMBERS =”, SUM);

END

Page 52: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

5) PL / 1:• PL/1 viết tắt của “Programming Language One”. Nó được thiết

kế bởi IBM năm 1964. PL / 1 đã được chuẩn hóa theo chuẩn ANSI vào năm 1976

• Mục tiêu chính của các nhà thiết kế là thiết kế một ngôn ngữ thông dụng thông có thể được sử dụng cho bất cứ loai ứng dụng nào

• Các tính năng của PL/1 để:1. Để lập trình các ứng dụng kinh doanh và ứng dụng khoa học. 2. Các tính năng khác như là thao tác với chuỗi ký tự, xử lý danh sách,

kiểu dữ liệu con trỏ, thực thi các tác vụ đông thời và xử lý các trường hợp ngoại lệ cho các chương trình hệ thống và các loại ứng dụng khác

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

Page 53: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO

SUMNUMS:PROCEDURE (MAIN); /*PROGRAM TO COMPUTE THE SUM OF 10

NUMBERS */DECLARE (SUM, N) FIXED; DECLARE I FIXED.SUM = 0;DO I=1 TO 10;GET(N);

Ví dụ của chương trình PL/1

Page 54: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

C and C++• Ngôn ngữ C đã được phát triển năm 1972 tại tại phòng

thí nghiệm Bell của AT & T, Mỹ bởi Dennis Ritchie và Brian Kemiglian.

• Mục tiêu của họ là phát triển một ngôn ngữ có những ưu điểm của ngôn ngữ lập trình cấp cao với hiệu quả của ngôn ngữ máy.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 55: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

1) C and C++Ngôn ngữ C có các tính năng sau: 1. Được phát triển như là một ngôn ngữ biên dịch. 2. Hỗ trợ con trỏ với các toán tử con trỏ. Tính năng này

cho phép các nhà lập trình trực tiếp truy cập vào địa chỉ bộ nhớ.

3. Hỗ trợ các kiểu dữ liệu do người dùng định nghĩa. 4. Hỗ trợ các khái niệm lập trình mô đun và cấu trúc. 5. Hỗ trợ một thư viện phong phú các hàm chức năng, các

lập trình viên có thể sử dụng trực tiếp cho các mã của các ứng dụng.

6. Là ngôn ngữ nhỏ và ngắn gọn chỉ cung cấp những tính năng cần thiết bởi vậy một chương trình C có thể được phiên dịch bởi bộ chuyển đổi sang mã máy một cách hiệu quả

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 56: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• C+ + được phát triển bởi Bjarne Stroustrup tại phòng thí nghiệm Bell vào đầu những năm 1980.

• C++ chứa tất cả các yếu tố cơ bản của các ngôn ngữ C, nhưng đã được mở rộng thêm tính năng lập trình hướng đối tượng.

• Tuy nhiên, C+ + cũng khó khăn hơn để học so với C, vì học C+ + có nghĩa học tất cả mọi thứ về C. và sau đó học thiết kết và cài đặt hướng đối tượng với C+ +

• C+ + hoàn toàn tương thích với C. Chương trình C có thể được biên dịch như là chương trình C++

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 57: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

2) Java• Java là một ngôn ngữ chính được sử dụng cho

các ứng dụng dựa trên Internet. Được phát triển tại Sun Microsystems vào năm 1991 bởi một nhóm do James Gosling lãnh đạo.

• Ngôn ngữ đã được công bố chính thức vào tháng 5 năm 1995, và phiên bản phát hành thương mại đầu tiên đã được thực hiện trong năm 1996.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 58: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Java có các tính năng sau đây :1. Java sử dụng các khái niệm chỉ biên dịch một lần trong

đó có các chương trình Java được biên dịch máy byte code độc lập và được thông dịch bởi hệ thống “Java Runtime” tại thời gian thực thi của chương trình

2. Java được phát triển là một nhóm nhỏ của các tính năng trong C++ nên nó đơn giản, dễ cài đặt và dễ sử dụng. Một số các tính năng phức tạp của C++ như con trỏ và đa thừa kế không là một phần của Java. Do điều này, Java được coi là một ngôn ngữ lập trình hướng đối tượng hoàn toàn

3. Việc biên dịch được thực bởi máy độc lập.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 59: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

3) Ada• Ada là một ngôn ngữ đa mục đích được phát

triển và sử dụng chủ yếu bởi US Department of Defense (Doo) dành cho các ứng dụng quân sự.

• Nó đã được phát triển vào năm 1980 tại công ty máy tính Honeywell do một nhóm các nhà khoa học dẫn đầu bởi Ichbiah

• Ada được chuẩn hóa theo chuẩn của ANSI vào năm 1983.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 60: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Các tính năng của Ada: 1. Phù hợp cho việc viết các ứng dụng với đa tiến

trình xảy ra đồng thời vì các tính năng này rất phổ biến trong các ứng dụng quân sự.

2. Ngôn ngữ có khả năng xử lý lỗi tốt. 3. Ngôn ngữ hỗ trợ việc sử dụng các dữ liệu trừu

tượng trong việc thiết kế chương trình.4. Có thể viết các thủ tục chung mà có thể được tái

sử dụng một cách dễ dàng.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Thảo luận bằng cách nào để Ada có các tính năng đó

Page 61: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

4) ALGOL• ALGOL viết tắt của Ngôn ngữ ALG.Orithmic. • ALGOL được thiết kế chủ yếu đặc tả các

Thuật toán về khoa học tự nhiên thuộc lãnh vưc ứng dụng máy tính tại thời điểm đó.

• Được thiết kế bởi một nhóm quốc tế gồm các nhà khoa học và toán học từ Châu Âu và Hoa Kỳ.

• ALGOL 58 là phiên bản đầu tiên được phát hành năm 1958.

• Mới nhất và mạnh nhất trong các phiên bản là ALGOL 68 được phát hành vào năm 1968.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 62: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

4) ALGOLMột số tính năng chính của ALGOL:1. Cho phép đặt tên các biến với chiều dài bất kỳ. 2. Cho phép mảng có nhiều chiều.3. Cho phép lập trình viên xác định giới hạn thấp nhất của

mảng. 4. Hỗ trợ câu lệnh IF lồng nhau. mà không có trong

FORTRAN. 5. Có vòng lặp “FOR” trong FORTRAN'S lại là “DO”,

nhưng nó cũng có một biểu thức"do" cho phép sắp xếp những tiến trình con với những tham số.

6. Hình thức hóa khái niệm kiểu dữ liệu.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 63: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

4) ALGOLMột số tính năng chính của ALGOL:7. Các lệnh ghép thành một khối lệnh.8. Cặp Begin _End được ghép thành 1 khối trong đó các

biến là các biến cục bộ. 9. Cho phép các mảng động.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 64: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

4) ALGOL

• ALGOL là một ngôn ngữ lập trình không phổ biến • Với những tính năng rộng lớn và linh hoạt, sự phát triển

của một chương trình dịch cho ngôn ngữ đã trở thành một công việc vô cùng khó khăn.

• Ngôn ngữ được thiết kế đầu tiên là một cách để miêu tả thuật toán và các lệnh nhập/xuất của ngôn ngữ. Sự vắng mặt của thiết bị I/0 làm cho nó rất khó khăn để tạo một giao diện chương trình với thế giới bên ngoài.

• ALGO không tương thích và không hỗ trợ trên các hệ thống máy tính đầu tiên của IBM.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 65: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

5) RPG

• RPG viết tắt của Report Program Generator. • Là ngôn ngữ được thiết kế để phát sinh báo cáo

kết quả đầu ra từ tiến trình xử lý của các ứng dụng kinh doanh phổ biến.

• Ngôn ngữ được phát triển bởi IBM vào năm 1961. Các phiên bản RPG sau này được gọi là RPGII.

• Người lập trình viên sử dụng bảng mã hóa chi tiết để viết chương trình của mình để chỉ rõ đầu vào, sự tính toán, và đầu ra.

• RPG dễ dàng để học và sử dụng như COBOL. • Rpg chủ yếu được sử dụng để xử lý các ứng dụng

thương mại trên những máy vi tính nhỏ.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 66: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

6) LISP

• LISP viết tắt của LISt Processing. • Được phát triển vào năm 1959 bởi John McCarthy của

MIT. • Là ngôn ngữ thao tác với dữ liệu không phải là số mà là

các biểu tượng, ký hiệu và chuỗi văn bản. • Tất cả chức năng để tính toán trong một ngôn ngữ lập

trình đã được hoàn thành bằng cách sử dụng các hàm. • LISP được sử dụng rộng rãi trong các lĩnh vực mô

hình

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 67: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

7) PROLOG

• PROLOG được hiểu là lập trình logic được phát triển sớm vào năm 1970, bởi một nhóm gồm các nhà khoa học của Trường Đại học Aix-Marseille và Đại học Edinburgh. Trình thông dịch đầu tiên của nó được phát triển tại Marseille vào năm 1972.

• PROLOG là 1 ngôn ngữ không theo thủ tục. Các lập trình viên chỉ rõ làm cái gì và thoát ra khỏi hệ thống để tính toán phương pháp để làm việc bằng tay.

• Cho phép lập trình viên phải tập trung vào các vấn đề kỹ thuật.

• Được biết đến như là vấn đề hướng đối tượng hay ngôn ngữ đặc tả - hướng đối tượng.

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 68: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

7) PROLOG

• Không còn được sử dụng rộng rãi vì 2 lý do sau đây :– Ngôn ngữ lập trình logic đã được chứng minh là

tính hiệu quả không cao– Ngôn ngữ lập trình logic chỉ có thể được sử dụng

hiệu quả cho 1 vài ứng dụng tương đối nhỏ .

MỘT SỐ NGÔN NGỮ LẬP TRÌNH CẤP CAO KHÁC

Page 69: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

• Một số đặc điểm quan trọng cho một ngôn ngữ lập trình tốt :1. Tính đơn giản2. Tính tự nhiên3. Sự trừu tượng hóa4. Tính hiệu quả5. Có cấu trúc6. Tính chắc chắn7. Tính cục bộ8. Tính mở rộng9. Phù hợp cho các môi trường

ĐẶC TRƯNG CỦA MỘT NGÔN NGỮ LẬP TRÌNH

Page 70: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

1) Chương trình con:• Là một chương trình đã được viết bằng cách nó có thể

được đưa vào sử dụng trong các chương trình khác và được sử dụng bất cứ khi nào cần thiết mà không phải viết lại. Các chương trình con gọi là thủ tục con, thủ tục phụ và các hàm tùy theo ngôn ngữ lập trình.

• Cấu trúc của một chương trình con bao gồm một tiêu đề và thân. Mỗi tiêu đề của chương con bao gồm tên con và có thể có một danh sách các tham số. Thân chương trình con chứa đựng tập hợp các chỉ thị thực hiện các tác vụ của chương trình con .

• Sau khi đã tạo ra, một chương trình con có thể được sử dụng bởi các chương trình khác tại bất cứ điểm nào trong chương trình.

CÁC KHÁI NIỆM LIÊN QUAN KHÁC

Page 71: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Các thuận lợi của chương trình con:1. Dễ dàng viết các chương trình bởi vì các lập trình viên có

thể viết mã ngắn hơn. 2. Chỉ cần 1 bản sao mã chương trình con được giữ lại trong

hệ thống nên tiết kiệm không gian lưu trữ hệ thống và tốn ít bộ nhớ trong quá trình chạy một chương trình.

3. Cho phép chương trình xây dựng trong một modular thích hợp.

4. Thiết kế modular hay hệ thống phần mềm trong hình thức chương trình con cũng cung cấp khả năng biên dịch một phần của chương trình mà không cần biên dịch toàn bộ chương trình.

5. Thuận lợi trong việc bảo dưỡng, gỡ lỗi, tối ưu hóa hiệu suất, đọc nó và hoàn thiện nó.

CÁC KHÁI NIỆM LIÊN QUAN KHÁC

Page 72: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

2) Bộ tiền xử lý• Một ngôn ngữ xử lý là cần thiết khi thêm các

câu lệnh dịch vào một chuỗi các câu lệnh của ngôn ngữ trước khi chương trình có thể biên dịch thành công bởi một ngôn ngữ biên dịch như một ngôn ngữ được biết đến là bộ tiền xử lý.

CÁC KHÁI NIỆM LIÊN QUAN KHÁC

Page 73: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

2) Bộ tiền xử lý

CÁC KHÁI NIỆM LIÊN QUAN KHÁC

Minh họa sử dụng của bộ tiền xử lý

Page 74: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

3) Ngôn ngữ kịch bản - scripting • Các câu lệnh được sử dụng để hướng dẫn máy

tính làm một số công việc. • Một chương trình được viết bằng ngôn ngữ

scripting thường được gọi là một tập lệnh. • Ngôn ngữ scripting hỗ trợ các biến và kiểm

soát cấu trúc đơn giản để cho phép các lập trình viên viết scripts, có thể thực thi điều kiện hay lặp lại một số lệnh.Với các tính năng này ngôn ngữ script được sử dụng để các xác định các lệnh phức tạp.

CÁC KHÁI NIỆM LIÊN QUAN KHÁC

Page 75: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

3) Ngôn ngữ kịch bản - scripting • Ngôn ngữ scripting thực hiện được trong môi trường

cho các ứng dụng phức tạp nhưng vẫn đủ linh hoạt để sử dụng trong một phạm vi khác nhau.

• Ngôn ngữ scripting thì diễn dịch chứ không phải là biên soạn. Vì vậy một tập lệnh có thể tương tác được với một chương trình đang chạy và thay đổi trong quá trình chạy.

• Để kiểm soát một chương trình đang chạy, scripts có thể xử lý dữ liệu trước và dữ liệu sau.

• Thường cho phép lập trình viên gọi ra các thành phần ứng dụng cá nhân một cách trực tiếp.

• Ngôn ngữ scripting được gọi là Unix Shell Script, Pert, Tcl, và Python.

CÁC KHÁI NIỆM LIÊN QUAN KHÁC

Page 76: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

4) Ngôn ngữ thế hệ thứ 4• Ngôn ngữ thế hệ thứ tư là ngôn ngữ không thủ

tục. Một ngôn ngữ thủ tục.• Yêu cầu các lập trình viên phải đánh vần các

bước trong việc xử lý các thủ tục cần thiết để đạt được kết quả mong muốn.

• Ngôn ngữ không thủ tục cho phép người sử dụng dễ dàng chỉ định “làm gì”, kết quả có thể được mô tả chi tiết “như thế nào “.

• Với tính linh hoạt rất nhiều lập trình viên chuyên nghiệp dễ dàng và nhanh chóng để viết một chương trình.

CÁC KHÁI NIỆM LIÊN QUAN KHÁC

Page 77: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

4) Ngôn ngữ thế hệ thứ 4• Thân thiện với người dùng sau một hay hai ngày đào

tạo và thực hành. • Ngôn ngữ thế hệ thứ tư sử dụng tiếng anh. • Ngôn ngữ thế hệ thứ tư cũng bao gồm các tính năng

hạn chế về khả năng toán học, tự động báo cáo định danh, sắp xếp thứ tự, và ghi lại sự lựa chọn bằng các tiêu chuẩn.

• Một số ngôn ngữ thế hệ thứ tư thường được gọi là ý tưởng của ADR, phần mềm AG's Natural 2, Cinmon's Mantis, Mathematica Products Group's RAMIS II và Information Builders' FOCUS.

CÁC KHÁI NIỆM LIÊN QUAN KHÁC

Page 78: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

CÁC KHÁI NIỆM LIÊN QUAN KHÁC

Chương trình viết bằng ngôn ngữ thế hệ thứ 4

Kết quả sự thực thi của ngôn ngữ thế hệ thứ 4

Page 79: 12.1.Tương tự với ngôn ngữ tự nhiên 12.2.Ngôn ngữ máy tính 12.3.Hợp ngữ 12.4.Ngôn ngữ cấp cao

Câu hỏi và bài tập

• Giáo trình trang 426 và bài tập trang 45