1 Phát triển hệ thống 1 1 Giới thiệu 2



tải về 1.95 Mb.
trang5/20
Chuyển đổi dữ liệu30.08.2016
Kích1.95 Mb.
#28837
1   2   3   4   5   6   7   8   9   ...   20

1.4Ngôn ngữ lập trình

1.4.1Thuộc tính chương trình


(1) Dùng lại được (reusable)

  • Để thực hiện chương trình, thông thường chương trình phải được lưu lại vào bộ nhớ chính bằng bộ nạp (thao tác này được gọi là "nạp lại"). Chương trình, một khi đã được nạp vào, có thể được dùng lặp đi lặp lại mà không cần thao tác cất giữ lại, được gọi là “chương trình dùng lại được" Trong chương trình dùng lại được, việc khởi đầu và những thao tác khác có liên quan đều được thực hiện trước việc kích hoạt chương trình để duy trì tính toàn vẹn của xử lí. Do đó, chương trình này không thể được nhiều tiến trình sử dụng đồng thời.

(2) Đồng dụng (reentrant)

  • Tương phản với chương trình dùng lại mà không cho phép việc dùng đồng thời, những chương trình có thể tạo ra kết quả đúng ngay cả khi được nhiều tiến trình sử dụng đồng thời thì được gọi là "chương trình đồng dụng."

  • Trong các chương trình đồng dụng, phần cho các biến và phần cho các lệnh được đặt tách biệt nhau. Vậy phần cho biến được cung cấp cho từng tiến trình một cách tách biệt, trong khi phần cho lệnh lại được dùng chung bởi tiến trình liên quan tới xử lí đồng thời.

(3) Đệ qui (recursive)

  • Một chương trình có khả năng tự gọi (tự thực hiện) chính nó được gọi là "chương trình đệ qui." Việc có khả năng tự gọi đến chính mình không đảm bảo rằng các tiến trình khác có thể gọi nó. Do đó, chương trình đệ qui không phải bao giờ cũng là chương trình dùng lại được.

(4) Khả năng tái định vị (re-locatable)

  • Chương trình định cho thực hiện được lưu giữ trong bộ nhớ chính bằng bộ nạp. Các chương trình có thể được lưu giữ tại bất kì vị trí nào trong không gian bộ nhớ chính để thực hiện được gọi là "chương trình khả tái định vị."

  • Chương trình có vị trí trong bộ nhớ chính có thể được thay đổi ngay cả khi nó đang được thực hiện được gọi là "chương trình khả tái định vị động."

(5) Chèn lấp (Overlay)

  • "Chèn lấp" là phương pháp được dùng để thực hiện một chương trình chiếm bộ nhớ lớn hơn dung lượng bộ nhớ chính. Theo phương pháp này, chương trình được chia thành một số đoạn, mỗi đoạn không được thực hiện đồng thời. Do đó, trong khi thực hiện, đoạn gốc nạp vào một trong những đoạn loại trừ lẫn nhau này từ thiết bị bộ nhớ phụ (xem Hình 1-3-1).

  • Hình 1-3-1 Phương pháp chèn lấp




1.4.2Kiểu dữ liệu


  • Kiểu dữ liệu là các yếu tố nền tảng của cấu trúc dữ liệu mà phần mềm xử lí và có thể chủ yếu được phân loại thành kiểu dữ liệu cơ sở và kiểu cấu trúc. Việc dùng một kiểu được công bố bằng một câu lệnh đặc tả của ngôn ngữ lập trình.

(1) Kiểu dữ liệu cơ sở

  • Kiểu dữ liệu cơ sở được xác định như tập các kiểu dữ liệu cho chỉ một khoản mục dữ liệu, như kiểu nguyên, kiểu dữ liệu số thực, kiểu logic và kiểu kí tự.

  • Kiểu số nguyên

  • :

  • Tập các số nguyên. 1 2 3

  • Kiểu logic

  • :

  • "True" hay "false." 1 ( hay T ), 0 ( hay F)

  • Kiểu kí tự

  • :

  • Tập các kí tự. A B C , a) b) c) d) e)

  • Con trỏ

  • :

  • Chỉ số để trỏ tới dữ liệu.109 109 Data
    Địa chỉ để cất giữ dữ liệu

(2) Kiểu cấu trúc

  • Kiểu cấu trúc được suy ra bằng việc tổ hợp các kiểu dữ liệu cơ sở.

  • Kiểu mảng: chỉ ra một mảng có một số hữu hạn các khoản mục dữ liệu với cùng kiểu và cùng kích cỡ.



    • 1

    • 2

    • 3

    • 4

    • 5

    • 6

    • 7

    • 8

    • 12

    • 101

    • 1

    • 45

    • 32

    • 128

    • 64

    • 512

  • Kiểu bản ghi: chỉ ra một kết tập gồm một số hữu hạn những khoản mục dữ liệu khác nhau, mỗi khoản mục có cùng kích cỡ và kiểu đã định sẵn.



    • Số hiệu

    • Tên

    • Tuổi

    • Nơi sinh

    • Sở thích

    • 6873

    • Song Tùng

    • 45

    • Hải Hưng

    • Đọc thơ cổ

    • 7245

    • Chí Hiếu

    • 31

    • Hà Nội

    • Du hành



(3) Kiểu dữ liệu trừu tượng

  • Kiểu dữ liệu trừu tượng được định nghĩa cho các thực thể có chứa dữ liệu và các thao tác trên dữ liệu. Các thao tác là các hàm hay thủ tục. Trong việc dùng kiểu dữ liệu trừu tượng, chỉ cho phép dùng tham chiếu tới tên kiểu và việc gọi tới thao tác.

    • Thao tác

    • Dữ liệu

    • Đẩy xuống

    • Giá trị con trỏ ngăn xếp

    • Bật ra


1.4.3Cấu trúc điều khiển


  • Cấu trúc điều khiển của chương trình, hay của thuật toán, được thiết kế dựa trên định lí cấu trúc, bởi vì thiết kế dùng định lí này là có hiệu quả trong việc phát triển chương trình với các đặc trưng sau, làm năng suất và chất lượng phần mềm tăng lên.

  • - Cấu trúc logic rõ ràng

  • - Chính xác

  • - Dễ đọc

  • - Dễ duy trì

  • "Định lí cấu trúc" được xác định như sau:

  • "Với các chương trình (gọi là chương trình đúng) được thiết kế để bao gồm các đơn vị cấu trúc mà mỗi một trong chúng đều có một lối vào và lối ra, thì bất kì logic nào cũng có thể được mô tả bằng việc tổ hợp ba đơn vị cấu trúc cơ sở."

  • Các chi tiết được mô tả dưới đây:

(1) Cấu trúc cơ sở

  •  Cấu trúc tuần tự (kiểu trình tự)

  • Trong cấu trúc trình tự, các hàm (lệnh trong chương trình) được thực hiện tuần tự theo một chiều.

    • Hình 1-3-2 Ví dụ về cấu trúc tuần tự








  •  Cấu trúc tuyển chọn (kiểu If-then-else)

  • Trong cấu trúc tuyển chọn, một trong hai chức năng được chọn lựa tuỳ theo liệu điều kiện có được đáp ứng hay không.



    • Hình 1-3-3

    • Cấu trúc tuyển chọn













  •  Cấu trúc lặp (kiểu Do-While)

  • Trong cấu trúc lặp (Kiểu Do-While), nếu điều kiện là "đúng" thì cùng chức năng đó được thực hiện lặp lại. Nếu điều kiện là "sai" thì việc xử lí ra khỏi chu trình.



    • Hình 1-3-4

    • Cấu trúc lặp
      (kiểu Do-While)



  • Nếu bất kì thuật toán nào cũng có thể được mô tả bằng ba cấu trúc trên, thì việc dùng câu lệnh GO TO, vẫn là nguyên nhân lớn nhất làm cho chương trình thành phức tạp, sẽ là không cần thiết. Điểm này sẽ được mô tả về sau.

(2) Các cấu trúc phụ

  • Bên cạnh ba cấu trúc trên, hai cấu trúc sau đây cũng được dùng để làm cho chương trình dễ hiểu hơn.

  •  Kiểu Repeat-Until

  • Trong kiểu Repeat-Until, một điều kiện được kiểm tra sau khi thực hiện một chức năng. Sau đó, nếu điều kiện này là "sai," thì việc thực hiện chức năng đó được lặp lại, còn nếu là "đúng" thì thao tác đi ra ngoài chu trình.

    • Hình 1-3-5

    • Cấu trúc lặp
      (kiểu Repeat-Until)





  •  Cấu trúc đa nhánh (CASE)

  • Cấu trúc đa nhánh được dùng khi một hay nhiều chức năng được thực hiện tùy theo kết quả của việc kiểm tra điều kiện.

  • Hình 1-3-6

  • Cấu trúc đa nhánh (CASE)



(3) Lập trình không GO TO

  • Việc dùng các câu lệnh GO TO là nhân tố lớn nhất trong việc làm cho chương trình thành phức tạp. Việc dùng câu lệnh GO TO dường như thuận tiện. Cho nên chúng thường được dùng một cách bất cẩn. Tuy nhiên, nếu các câu lệnh này bị lạm dụng, thì định lí cấu trúc không còn được giữ nữa.

  • Do đó, việc dùng các câu lệnh GO TO nên được tránh nếu có thể được (điều này không có nghĩa là việc dùng chúng là bị cấm), và những thuật toán nên được mô tả bằng việc tổ hợp các cấu trúc cơ sở.

(4) Thủ tục và hàm

  • Các đơn vị tạo nên chương trình là thủ tục và hàm. Có những thủ tục và hàm được hệ thống xử lí ngôn ngữ cung cấp, và cũng có những thủ tục và hàm do người dùng tạo ra. Cả hai đều được chương trình gọi để thực hiện. Với một thủ tục, kết quả đã xử lí được trả lại qua đối, trong khi với hàm thì kết quả được trả lại như giá trị của hàm.

1.4.4Phân tích cú pháp


  • Các qui tắc cú pháp để mô tả chương trình được ngôn ngữ lập trình cung cấp. Dựa trên các qui tắc này, trình biên dịch phân tích các chương trình nguồn do người dùng tạo ra và thực hiện việc dịch. Việc phân tích cấu trúc của chương trình dựa trên các qui tắc cú pháp của ngôn ngữ được gọi là phân tích cú pháp. Ngôn ngữ chúng ta thường dùng trong trao đổi con người được gọi là ngôn ngữ tự nhiên, trong khi ngôn ngữ lập trình là ngôn ngữ nhân tạo.

(1) Ngôn ngữ hình thức

  • Trong ngôn ngữ tự nhiên, từ và câu có một số nghĩa khác nhau. Bên cạnh đó, tồn tại một số mức độ tự do trong cấu trúc câu. Do đó, khó mà phân tích một cách máy móc các câu tự nhiên. Cũng khó cho máy tính làm việc diễn giải do phải xét tới các nhân tố gián tiếp như bầu không khí và ngữ cảnh hội thoại, cảm tính con người, môi trường bao quanh, v.v. Với máy tính ngày nay, vẫn còn khó xác định nghĩa. Ngôn ngữ hình thức được thiết kế để cho không có sự mơ hồ nào còn lại trong diễn giải.

  •  Định nghĩa ngôn ngữ hình thức

  • Ngôn ngữ hình thức được định nghĩa bằng văn phạm sinh và ô tô mát. Văn phạm sinh là tên chung cho các văn phạm do Chomsky đề nghị. Nói một cách đơn giản, nó nghĩa là các qui tắc để sinh ra ngôn ngữ. Nói cách khác, ô tô mát có thể đoán nhận chỉ ngôn ngữ hình thức.

    • Hình 1-3-7

    • Định nghĩa ngôn ngữ













  • a. Các kiểu và văn phạm của ngôn ngữ hình thức

  • Chomsky đã đề nghị bốn ngôn ngữ hình thức sau. Ô tô mát tương ứng với mỗi một trong bốn ngôn ngữ này.

    • Hình 1-3-8

    • Các kiểu ngôn ngữ hình thức




    • Kiểu ngôn ngữ

    • Ô tô mát đoán nhận















    • Văn phạm cấu trúc câu
      (ngôn ngữ kiểu 0-)




    • Máy Turing







    • Ngôn ngữ cảm ngữ cảnh
      (ngôn ngữ kiểu 1)




    • Ô tô mát hữu hạn tuyến tính







    • Ngôn ngữ phi ngữ cảnh (ngôn ngữ kiểu 2)

    • BNF

    • Ô tô mát đẩy xuống







    • Văn phạm chính qui
      (ngôn ngữ kiểu 3)

    • Đơn giản nhất về mặt lí thuyết

    • Ô tô mát hữu hạn

  • b. Các thao tác trong ngôn ngữ

  • Văn phạm cấu trúc câu được mô tả bằng bốn phần tử N, T, P và S. Chẳng hạn, số thực được sinh ra như sau.

  • N: non-terminal symbol = { , , , , }

  • T: Terminal symbol = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, E,. }

  • P: Generative rules =

  • {  0

  •  1

  •  2 

  •  3 

  •  4 

  •  5

  •  6

  • 7

  •  8

  •  9









  • .

  • . E

  • E

  •  0

  • }



  • S: start symbol = { }



  • Ví dụ: Sinh ra số thực 123 . ; từ 

  • . ; từ 

  • . 3 ; từ 

  • . 3 ; từ 

  • . 2 3 ; từ 

  • . 2 3 ; từ 

  • . 2 3 ; từ 

  •  1. 2 3 ; từ 

  • Kí hiệu không kết thúc chỉ xuất hiện trong việc sinh (viết lại), trong khi kí hiệu kết thúc xuất hiện ở cuối.

(2) Biểu thức chính qui

  • Biểu thức chính qui là cách mô tả cho các ngôn ngữ chính qui. Khi dùng chỉ dãy kí tự là không đủ, thì biểu thức chính qui có hiệu quả cho việc mô tả hình mẫu này một cách gọn gàng.

  • N: non-terminal symbol = { , , , , }

  • T: Terminal symbol = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, E,. }

  • P: Generative rules = {  { 0  1  2  3  4  5  6  7  8  9 } 

  • { 0  1  2  3  4  5  6  7  8  9 }

  • ; " | " chỉ phân cách dữ liệu phía phải

  • .

  • { 0  1  2  3  4  5  6  7  8  9 }

  • { 0  1  2  3  4  5  6  7  8  9 }

  • . 

  • E

  • E

  • { 0  1  2  3  4  5  6  7  8  9 } 

  • < real number >  { 0  1  2  3  4  5  6  7  8  9 }

  • }



  • S: kí hiệu bắt đầu = { }



  • Ví dụ: Sinh ra số thực 1.23 3 ; từ 

  • 23 ; từ 

  • . 23 ; từ 

  •  1.23 ; từ 



(3) BNF (Dạng chuẩn Backus Naur)

  • BNF, cũng còn được gọi là Dạng chuẩn Backus Naur, đưa ra một cách mô tả để xác định các định dạng của văn phạm phi ngữ cảnh. Số thực được mô tả như sau.

  • :: = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 8 | 9 ;

  • Tại đây, " | " chỉ ra 'hoặc'.

  • :: = |

  • :: =

  • :: =

  • :: = . |

  • . E |

  • E



(4) Kí pháp Balan

  • Kí pháp Ba lan, cách diễn tả các công thức, đặt toán tử lên trước toán hạng. Kí pháp này cũng còn được gọi là kí pháp viết đầu. Chẳng hạn, "1 + 2" được diễn tả là "+ 12." Mặt khác, kí pháp ("1 + 2") thường được dùng được gọi là kí pháp viết giữa. Trong trình biên dịch có dùng kí pháp viết sau ("12 +"), cũng còn được gọi là kí pháp Balan ngược (Hình 4.42). Với kí pháp này, toán tử được đặt sau toán hạng. Trong trình biên dịch, kí pháp Ba lan ngược được dùng nhiều nhất, bởi vì, với kí pháp này, các toán hạng và toán tử, tạo nên các cấu phần của một công thức, được đặt theo thứ tự của các phép toán, kết quả là làm cho các phép toán được hiệu quả. Do đó, kí pháp viết sau đôi khi đơn giản được gọi là kí pháp Ba lan.











  • Hình 1-3-9

    Ví dụ về các phép toán dùng kí pháp Balan ngược











(5) Xử lí ngôn ngữ tự nhiên

  • Ngôn ngữ tự nhiên bao gồm nhiều cách diễn đạt nhập nhằng. Do đó, ngày nay chỉ một phần của nó mới được xử lí bằng máy tính. Việc xử lí ngôn ngữ tự nhiên phần lớn vẫn ở giai đoạn nghiên cứu. Trong xử lí ngôn ngữ tự nhiên, việc phân tích "nghĩa", "ý định" và "ngữ cảnh" cần làm thêm bên cạnh việc xử lí cú pháp, từ và câu. Cho nên, việc xử lí là phức tạp hơn ngôn ngữ hình thức. Nói riêng, việc dùng cơ sở tri thức trở thành điều bản chất để giải quyết sự nhập nhằng.

  • 1. Xử lí hình vị : Xử lí để tìm các từ (hình vị) từ một câu đã cho, và xác định phần tiếng nói của chúng.

  • 2. Xử lí cú pháp : Xử lí để áp dụng các qui tắc cú pháp và tìm ra cấu trúc cú pháp.

  • 3. Xử lí ngữ nghĩa : Xử lí để tìm ra cấu trúc ngữ nghĩa của câu bằng việc dùng các từ điển và cơ sở tri thức.

  • 4. Xử lí ngữ cảnh : Xử lí để diễn giải mối quan hệ giữa câu và phát âm như "nó," "cái đó" v.v. và phân tích các từ viết tắt và mối quan hệ nguyên nhân hậu quả giữa các câu.

  • 5. Xử lí ý định : Xử lí để tìm ra ý định của câu bằng việc tính tới tình huống, thói quen và nền tảng văn hoá.









  • Hình 1-3-10

    Ví dụ về xử lí ngôn ngữ tự nhiên






  • Danh từ mạo từ danh từ mạo từ động từ

    (Thì hiện tại)























1.4.5Phân loại về ngôn ngữ lập trình


  • Hình 1-3-11 là một phân loại thô về các ngôn ngữ lập trình.

(1) Ngôn ngữ cấp thấp

  • Các ngôn ngữ máy, và các ngôn ngữ lập trình có tương ứng một-một giữa các lệnh của chúng và lệnh của ngôn ngữ máy, được gọi là ngôn ngữ cấp thấp. Hợp ngữ thuộc vào ngôn ngữ cấp thấp. Các chương trình được viết trong hợp ngữ có các đặc trưng sau:

  • Cung cấp tốc độ thực hiện chương trình cao.

  • Cung cấp năng suất phần mềm thấp, nếu so với ngôn ngữ cấp cao, bởi vì nó dùng các kí hiệu chữ để mô tả chương trình.

  • Người lập trình phải có tri thức về phần cứng, bởi vì ngôn ngữ này có quan hệ chặt chẽ với các chức năng phần cứng.

  • Các chương trình phải được viết lại khi phần cứng bị thay đổi.

  • Với những đặc trưng như vậy, hợp ngữ chỉ được dùng trong xử lí điều khiển và các lĩnh vực khác nơi cần tới tốc độ xử lí cao. Ngôn ngữ cấp cao được dùng chủ yếu trong phát triển phần mềm.
































  • Hình 1-3-11 Phân loại ngôn ngữ lập trình




















(2) Ngôn ngữ cấp cao

  • Ngôn ngữ cấp cao đã được phát triển để giải quyết các vấn đề mà ngôn ngữ cấp thấp đặt ra. Nó cũng còn được gọi là ngôn ngữ hướng vấn đề.

  • Ngôn ngữ cấp cao có các đặc trưng sau:

  • Nó cung cấp sự dễ dàng trong việc mô tả các thủ tục xử lí và thích hợp cho việc giải quyết vấn đề.

  • So với hợp ngữ, nó có cấu trúc gần ngôn ngữ tự nhiên hơn.

  • Nó ít phụ thuộc vào phần cứng đặc biệt (thích hợp cho việc dùng trong nhiều ứng dụng).

  • Một lệnh có thể chứa nhiều lệnh máy. Cho nên, số các bước chương trình (số các lệnh) có thể ngắn hơn.

  • Dùng ngôn ngữ lập trình cấp cao làm giảm thời gian tạo chương trình, làm cho việc sửa chương trình và thêm chức năng dễ dàng hơn, kết quả là dẫn tới làm tăng năng suất phát triển phần mềm. Tuy nhiên, ngôn ngữ cấp cao cần phần mềm để vận hành trực tiếp các chức năng phần cứng, đôi khi đưa tới việc làm giảm hiệu quả xử lí.

  • Các ngôn ngữ cấp cao vạn năng hiện đang được dùng rộng rãi sẽ được mô tả chi tiết trong mục sau.

(3) Ngôn ngữ thủ tục

  • Để mô tả các thuật toán chỉ ra các thủ tục xử lí giải quyết một vấn đề, thì cần phải sử dụng tới các lệnh có dùng ngôn ngữ thủ tục. Nhiều ngôn ngữ cấp cao là ngôn ngữ thủ tục.



  • Hình 1-3-12

    Ngôn ngữ thủ tục







(4) Ngôn ngữ phi thủ tục

  • Ngôn ngữ phi thủ tục cho phép chương trình được sinh ra mà không phải mô tả thuật toán. Với ngôn ngữ này, chương trình được sinh ra bằng việc cung cấp cái vào, cái ra và điều kiện xử lí để giải quyết vấn đề, và bằng việc chọn các trình xử lí cần thiết do ngôn ngữ này cung cấp trước.

  • Ngôn ngữ phi thủ tục có các đặc trưng sau:

  • Không dùng thuật toán nào, ngôn ngữ vẫn cho phép những người với kĩ thuật lập trình yếu tạo ra được chương trình.

  • Nó thường có năng suất cao do việc áp dụng các hình mẫu đã định trước vào thủ tục xử lí, nhưng lại kém linh hoạt trong việc sinh ra chương trình.

  • Ngôn ngữ phi thủ tục được phân loại thành các ngôn ngữ phụ thuộc vào định dạng mô tả và vào các nhân tố khác:

  • Ngôn ngữ dạng biểu bảng

  • Việc viết các yêu cầu xử lí theo định dạng đã xác định trước bằng ngôn ngữ dạng biểu bảng sẽ tự động sinh ra chương trình tương ứng.

  • Ngôn ngữ hàm

  • Với ngôn ngữ hàm, việc tổ hợp các hàm sinh ra chương trình. LISP cho xử lí danh sách và APL cho tính toán khoa học và kĩ nghệ là các ngôn ngữ hàm.

  • Ngôn ngữ logic

  • Với ngôn ngữ logic, chương trình được sinh ra từ các biểu thức logic dựa trên logic mệnh đề. Một ví dụ về kiểu ngôn ngữ này là Prolog, một ngôn ngữ lập trình cho trí tuệ nhân tạo.

  • Ngôn ngữ hướng đối tượng

  • Với một ngôn ngữ hướng đối tượng, chương trình được tạo ra bằng việc xem xét mọi thứ được chương trình xử lí như các đối tượng. Các ngôn ngữ hướng đối tượng điển hình bao gồm Smalltalk, C++, và Java thích hợp cho việc dùng mạng.



(5) Ngôn ngữ thế hệ thứ tư (4 GL)

  • Người dùng thường phàn nàn, "Chức năng được yêu cầu thì lại không cung cấp", khi việc phát triển phần mềm cho việc tổng hợp các chức năng đến cuối cùng mới hoàn thành.

  • Những lí do chính đằng sau tình huống này bao gồm:

  • Người phát triển hệ thống không hiểu kĩ những thao tác cần được tổng hợp lại.

  • Khách hàng không cung cấp đúng nội dung của các thao tác cần được hệ thống hoá cho việc sáng tạo của người phát triển hệ thống.

  • Việc tạo ra chương trình do những người trong phòng ban của người dùng thực hiện, người đã đầu tư vào những thao tác này, là một giải pháp cho vấn đề này. Tuy nhiên, việc giải quyết ngôn ngữ cấp cao để định ra chương trình đòi hỏi một khối lượng đào tạo kĩ thuật đáng kể.

  • Để giải quyết tình huống như vậy, người ta đã tạo ra một ngôn ngữ lập trình, cho phép mọi người không có tri thức và kinh nghiệm về chương trình tạo ra được chương trình một cách dễ dàng. Ngôn ngữ này được gọi là ngôn ngữ thế hệ thứ tư.

  • Ngôn ngữ thế hệ thứ tư là thế hệ kế tiếp của ngôn ngữ cấp cao (ngôn ngữ thế hệ ba). Với ngôn ngữ cấp cao trước đây, thủ tục để giải quyết vấn đề trong các thao tác ứng dụng được mô tả bằng các lệnh, trong khi đó, với ngôn ngữ thế hệ thứ tư, việc xử lí các thao tác được thực hiện bằng các hướng dẫn có tham biến. Nói cách khác, ngôn ngữ mới này dự tính sinh ra các thủ tục xử lí để giải quyết vấn đề một cách tự động nhiều nhất có thể được, làm giảm số các hướng dẫn sinh ra chương trình.

(6) Ngôn ngữ script

  • Với việc sử dụng rộng rãi máy tính, xu hướng chuyển sang "tính toán người dùng cuối" mà trong đó phòng ban người dùng tự mình phát triển hệ thống đã phát triển mạnh. Ngôn ngữ script là ngôn ngữ lập trình do người dùng cuối sử dụng để phát triển những chương trình như vậy.

  • Bản chất hướng biến cố là đặc trưng quan trọng nhất của ngôn ngữ script. Chương trình đợi cho dữ liệu được người dùng đưa vào từ bàn phím hay chuột. Khi phát hiện ra cái vào, chương trình bắt đầu xử lí.

  • Ngày nay, các môi trường phát triển nâng cao có dùng GUI đã được cung cấp cho ngôn ngữ này. Nó cũng còn được dùng như công cụ để chuyên biệt hoá phần mềm ứng dụng. HTML (Hyper Text Markup Language), ngôn ngữ soạn thảo văn bản để tạo ra các tệp hiển thị được trên trình duyệt WWW (World Wide Web - Mạng toàn cầu) trên Internet, đã được sử dụng rộng rãi.

(7) Ngôn ngữ hướng vấn đề chuyên dụng

  • Ngày nay, chúng ta phát triển các chương trình máy tính bằng các ngôn ngữ lập trình, và dùng máy tính để giải quyết vấn đề trong nhiều miền đa dạng. Tuy nhiên, những xử lí trong một số miền lại phức tạp và cao cấp đến mức phải mất vài giờ tới vài chục giờ để hoàn thành những tính toán cần thiết. Ngôn ngữ hướng vấn đề chuyên dụng đã được phát triển nhằm vào việc chỉ xử lí cho các thao tác được dùng trong những miền đặc biệt này.

  • Ngôn ngữ hướng vấn đề chuyên dụng có các đặc trưng sau:

  • Vì các chương trình được dùng trong miền đặc biệt là có giới hạn, nên nó cho phép những chương trình cần thiết được phát triển nhanh hơn và chính xác hơn trong những miền có giới hạn đó, nếu so với việc dùng các ngôn ngữ vạn năng.

  • Thông thường, người làm phần mềm cung cấp các ngôn ngữ như vậy theo kiểu gói phần mềm. Do đó, việc dùng chúng là một ưu thế cho người dùng về độ tin cậy và chi phí phát triển .

  • Tri thức đặc biệt trong các miền mà ngôn ngữ này được dùng là cần thiết.

  • Ngôn ngữ này không được dùng cho những miền bên ngoài những miền mà nó đã được phát triển.

  • Sau đây là các ngôn ngữ chính trong phân loại các ngôn ngữ hướng vấn đề chuyên dụng:

  • GPSS (General Purpose Simulation System - Hệ thống mô phỏng vạn năng)

  • Ngôn ngữ được dùng cho việc mô phỏng một hiện tượng trên máy tính được gọi là ngôn ngữ mô phỏng. GPSS là ngôn ngữ mô phỏng do IBM phát triển và được sử dụng rộng rãi cho các mục đích mô phỏng rời rạc.

  • FORMAC (FORmula MAnipulation Compiler - Trình biên dịch thao tác công thức)

  • Đây là ngôn ngữ lập trình để thực hiện việc thao tác các công thức phức tạp và cao cấp chủ yếu dùng trong thuỷ động lực và thiên văn. Trong ngôn ngữ này, các hàm thao tác công thức cấp cao, như giải quyết các phép toán vi phân và biến đổi công thức, được bổ sung thêm vào FORTRAN, một ngôn ngữ lập trình cho tính toán khoa học và kĩ thuật.

  • COGO (COordinate GeOmetry - Hình học phối hợp)

  • Đây là ngôn ngữ lập trình để phân tích và thiết kế cấu trúc các toà nhà.

1.4.6Kiểu và đặc trưng của ngôn ngữ lập trình


  • Các ngôn ngữ lập trình cấp cao khác nhau đã được phát triển. Số lượng chúng đã vượt quá vài trăm ngôn ngữ. Việc nâng cấp cho người lập trình đối với ngôn ngữ cấp cao còn dễ hơn so với ngôn ngữ cấp thấp. Do đó, ngôn ngữ cấp cao được dùng trong nhiều miền.

(1) FORTRAN (Formula Translator - Bộ biến đổi công thức)

  • FORTRAN được John Backus (người Mĩ) và những người khác thiết kế năm 1954. Sau đó nó thực tế đã được IBM phát triển, dựa trên tài liệu thiết kế đó, và những công ti khác cùng IBM đã đóng vai trò chính cho sự phát triển. FORTRAN đã được công bố là trình biên dịch đầu tiên trên thế giới vào năm 1957. Trong những ngày mà FORTRAN được phát triển, máy tính hầu hết được dùng cho các tính toán khoa học và kĩ nghệ, nhằm xử lí các tính toán phức tạp với tốc độ cao. Do đó, FORTRAN đã thiết lập ra vị trí của nó như một ngôn ngữ lập trình cho các tính toán khoa học và kĩ nghệ.

  • <Đặc trưng>

  • Nó cho phép diễn đạt các bài toán và thuật toán số cũng như các thao tác logic, cả hai đều cần cho tính toán khoa học kĩ nghệ.

  • Nhóm các hàm, như hàm lượng giác, hàm luỹ thừa và hàm lô ga rit, cũng được cung cấp theo ngôn ngữ.

  • Cấu trúc của ngôn ngữ là đơn giản.

  • Nó sử dụng cấu trúc tĩnh và không đệ qui.



  • Hình 1-3-13

    • Chương trình ví dụ về

    • FORTRAN

    • C CHUONG TRINH MAU

    • INTEGER I, J, K

    • 10 CONTINUE

    • READ(5,100) I, J, K

    • 100 FORMAT(3I5)

    • IF (I.EQ.0) GO TO 20

    • L = I * J - K

    • 200 FORMAT(1H, I8)

    • GO TO 10

    • 20 STOP

    • END



(2) COBOL (COmmon Business Oriented Language - Ngôn ngữ hướng nghiệp vụ chung)

  • Việc phát triển của COBOL đã được bắt đầu vào năm 1959 như một trình biên dịch cho việc xử lí nghiệp vụ bởi CODASYL (COnference on DAta SYstems Language - Hội thảo về ngôn ngữ hệ thống dữ liệu), một tổ chức các nhà chế tạo máy tính và người dùng máy tính, cùng với Bộ quốc phòng Mĩ làm trung tâm nỗ lực nghiên cứu và phát triển.

  • Bản đặc tả đã được công bố vào năm 1960, và đặc tả ANSI (American National Standards Institute - Viện chuẩn quốc gia Mĩ) đã được thiết lập năm 1968. Tại Nhật, JIS COBOL đã được thiết lập năm 1972. Nó đã được sử dụng rộng rãi như trình biên dịch cho việc xử lí nghiệp vụ có dùng các máy tính vạn năng.

  • <Đặc trưng>

  • Việc dùng cách diễn đạt gần với câu tiếng Anh đưa ra tính dễ đọc tài liệu.

  • Nó cho phép các cấu trúc tệp được dùng cho việc đưa vào/đưa ra được định nghĩa chặt chẽ.

  • Hỗ trợ cho các phương pháp tổ chức tệp đa dạng tạo khả năng các thao tác vào/ra tệp hiệu quả.

  • Nhiều chức năng xử lí nghiệp vụ, như phân lớp và gộp và chức năng sinh báo cáo cũng được cung cấp.



    • Hình 1-3-14

    • Chương trình ví dụ về COBOL

    • IDENTIFICATION DIVISION.

    • PROGRAM-ID. SAMPLE.

    • ENVIRONMENT DIVISION.

    • DATA DIVISION.

    • WORKING-STORAGE SECTION.

    • 01 INPUT-AREA.

    • 03 I PIC 9(3).

    • 03 FILLER PIC X(1).

    • 03 J PIC 9(3).

    • 03 FILLER PIC X(1).

    • 03 K PIC 9(3).

    • 03 FILLER PIC X(69).

    • 01 INSATSU.

    • 03 L PIC …..,…9.

    • PROCEDURE DIVISION

    • BATDAU.





(3) BASIC (Beginner's All purpose Symbolic Instruction Code - Mã lệnh kí hiệu vạn năng cho người mới bắt đầu)

  • BASIC được phát triển năm 1965 như một ngôn ngữ lập trình để dậy học sinh tại trường đại học Dartmouth College của Mĩ. Khi máy tính cá nhân được dùng rộng rãi thì BASIC đã được chấp nhận là ngôn ngữ cấp cao cho phép dễ sử dụng.

  • <Đặc trưng>

Nó sử dụng phương pháp thông dịch theo đó việc dịch chương trình và thực hiện chương trình được tiến hành đồng thời.

Việc dùng phương pháp thông dịch làm cho tốc độ thực hiện chậm hơn nếu so với việc dùng ngôn ngữ biên dịch.

Số dòng được đặt vào trước từng dòng lệnh.

Việc dùng các mô tả gần với từ tiếng Anh làm cho việc học ngôn ngữ được dễ dàng.



Các giá trị mặc định được tự động thêm vào, ngay cả khi các mô tả cho khai báo kiểu biến hay định dạng cái ra bị bỏ sót.



  • Hình 1-3-15

  • Chương trình ví dụ về

  • việc dùng BASIC

  • 10 INPUT I, J, K

  • 20 IF I = 0 THEN END

  • 30 L = I* J - K

  • 40 LPRINT L

  • 50 GO TO 10

(4) Ngôn ngữ lập trình C

  • Ngôn ngữ lập trình C là ngôn ngữ biên dịch cho mô tả hệ thống được W. Kernighan và D. Ritchie tại Bell Laboratories của AT&T phát triển năm 1969 như ngôn ngữ cho việc phát triển hệ điều hành có tên UNIX.

  • Ban đầu, ngôn ngữ này đã được dùng riêng cho UNIX trên máy PDP-11, máy tính mini của DEC. Tuy nhiên bởi tính ích lợi của nó nên ngôn ngữ C ngày nay được dùng rộng rãi trên nhiều máy tính kể cả trạm làm việc và máy tính cá nhân. Ngôn ngữ C dựa trên tài liệu, "Ngôn ngữ lập trình C," do Kernighan và Ritchie viết, được gọi là ngôn ngữ C K&R. Mặt khác, còn có ANSI, đã thiết lập năm 1989 một đặc tả chuẩn của ngôn ngữ này, bao hàm những chức năng cải tiến và mở rộng. Ngôn ngữ C tuân thủ với đặc tả đó được gọi là "ANSI-C."

  • <Đặc trưng>

  • Nó cho phép các biểu thức đơn giản.

  • Nhiều toán tử, cấu trúc dữ liệu và cấu trúc điều khiển được cung cấp.

  • Nó cho phép các thao tác bit gần với các thao tác bit của ngôn ngữ cấp thấp.

  • Vài ràng buộc bị áp đặt lên định dạng chương trình hay phươmg pháp phi định dạng được sử dụng.

  • Cung cấp tính khả chuyển cao.

  • Ngôn ngữ C++, con cháu của C có chứa các chức năng hướng đối tượng, đang được sử dụng rộng rãi.



  • Hình 1-3-16

  • Chương trình thí dụ về

  • ngôn ngữ C

  • #include

  • main()

  • {

  • int x, y;

  • printf("Số đưa vào = ");

  • scanf("%d", &x) ;

  • y = x % 2 ;

  • if ( y == 0) printf( "Số chẵn\n") ;

  • else printf("Số lẻ\n") ;

  • }

(5) Các ngôn ngữ cấp cao khác

  • Bên cạnh FORTRAN, COBOL, BASIC và ngôn ngữ C, các ngôn ngữ lập trình khác cũng đã được phát triển với nhiều mục đích. Các đặc trưng của những ngôn ngữ lập trình chính được mô tả dưới đây:

  •  ALGOL (ALGOrithmic language - ngôn ngữ thuật toán)

  • ALGOL là ngôn ngữ lập trình được phát triển cho các tính toán khoa học và kĩ nghệ.

  • <Đặc trưng>

  • Chương trình được mô tả theo các qui tắc cú pháp được gọi là kí pháp Backus.

  • Cho phép gọi đệ qui.

  • Ngôn ngữ này được thiết kế dựa trên khái niệm về lập trình có cấu trúc.

  • Mặc dầu ngôn ngữ này có những đặc trưng cao cấp như mô tả ở trên, ALGOL lại khó được dùng bởi vì FORTRAN cũng nhằm vào cùng mục đích đó.

  •  Pascal

  • Pascal là ngôn ngữ lập trình cho giảng dạy lập trình và nó bao gồm các đặc trưng của ALGOL.

  • <Đặc trưng>

  • Nó cung cấp các cấu trúc điều khiển dựa trên lập trình có cấu trúc.

  • Bản thân chương trình là dễ đọc, bởi vì ngôn ngữ này đã được phát triển cho việc dậy lập trình.

  • Cung cấp nhiều cấu trúc dữ liệu.

  •  Ada

  • Ada, ngôn ngữ lập trình do Bộ quốc phòng Mĩ phát triển, có các đặc trưng sau:

  • <Đặc trưng>

  • Ngôn ngữ này dựa trên Pascal với nhiều cải tiến được thêm vào nó.

  • Độ tin cậy cao cung cấp cho việc phát triển các phần mềm cỡ lớn.

  • Cung cấp khả năng dễ bảo trì và thực hiện có hiệu quả.

  •  LISP (LISt Processor)

  • LISP, ngôn ngữ lập trình có các đặc trưng sau:

  • <Đặc trưng>

  • Nó là ngôn ngữ lập trình phi thủ tục.

  • Cả dữ liệu và chương trình đều có cấu trúc danh sách.

  • Chương trình được mô tả bằng việc tổ hợp các hàm chuẩn do hệ thống cung cấp và những hàm do người dùng định nghĩa.

  •  Prolog (Programming in logic - lập trình theo logic)

  • Prolog là ngôn ngữ cho nghiên cứu và phát triển về trí tuệ nhân tạo.

  • <Đặc trưng>

  • Nó là ngôn ngữ logic mệnh đề.

  • Cung cấp các hàm suy diễn.

  •  APL (A Programming Language )

  • APL, do IBM phát triển, có các đặc trưng sau:

  • <Đặc trưng>

  • Nó cung cấp kí pháp dựa trên kí pháp toán học thông thường.

  • Các phép toán số học và logic có thể được mở rộng cho các vectơ, ma trận và cấu trúc cây.

  • Chương trình có thể được mô tả bằng việc tổ hợp các kí tự đặc biệt và các kí hiệu.

  •  PL/I (Programming Language/One)

  • PL/I, được IBM và tổ chức người dùng của nó cùng phát triển, dành cho cả tính toán khoa học và kĩ nghệ lẫn xử lí nghiệp vụ.

  • <Đặc trưng>

  • Nó dùng cấu trúc lồng nhau với các khối được dùng làm đơn vị chương trình.

  • Nó cho phép các phép toán bit và các phép toán danh sách cho dữ liệu.

(6) Ngôn ngữ hướng đối tượng và các ngôn ngữ lập trình khác

  • Visual Basic

  • Visual Basic, một ngôn ngữ trực quan điển hình, là BASIC nhưng có thể chạy trong môi trường Windows. Giao diện người dùng là quan trọng cho chương trình tương tác. Visual Basic cung cấp một môi trường để phát triển các ứng dụng cung cấp cách tương tác thích hợp cho môi trường đồ hoạ Windows.

  • <Đặc trưng>

  • Visual Basic, một sản phẩm của Microsoft, có liên hệ chặt chẽ với Windows.

  • Các chương trình được sinh ra cùng Visual Basic có thể được chạy trực tiếp trong Windows.

  •  C++

  • C++, do B. Straustrap và những người khác tại Bell Laboratories phát triển, đã được tạo ra bằng việc bổ sung thêm các khái niệm hướng đối tượng vào ngôn ngữ C.

  • <Đặc trưng>

  • Nó cung cấp sự tương hợp hoàn toàn với ngôn ngữ C.

  • Nó bao gồm các khái niệm về "lớp," "kế thừa," và "hàm ảo," được dùng trong lập trình hướng đối tượng.

  •  Java

  • Java là ngôn ngữ hướng đối tượng kiểu thông dịch dựa trên ngôn ngữ C và C++. Chạy Java trên trình duyệt WWW trên Internet tạo khả năng cho các thao tác tương tác.

  • <Đặc trưng>

  • Ngôn ngữ này có thể chạy trên bất kì nền nào.

  • Độ an toàn được nâng cao và có cung cấp các chức năng kết mạng.

  • Cung cấp các chức năng động.

  •  Perl (Practical Extraction and Report Language - Ngôn ngữ báo cáo và trích rút thực hành)

  • Perl, ngôn ngữ thông dịch do Larry Wall phát triển cho xử lí văn bản, được dùng trên các hệ điều hành họ UNIX và trên Windows. Nó chịu ảnh hưởng lớn của ngôn ngữ C và script vỏ.

  • <Đặc trưng>

  • Nó được dùng như ngôn ngữ chuẩn cho các chương trình CGI (Common Gateway Interface) chạy trên các nguồn phục vụ WWW.

  • Nó là ngôn ngữ script tương tác.

  •  SGML (Standard Generalized Markup Language - Ngôn ngữ đánh dấu tổng quát chuẩn)

  • SGML là ngôn ngữ để mô tả cấu trúc logic và cấu trúc ngữ nghĩa của tài liệu bằng các thẻ đơn giản (các dấu hiệu).

  • <Đặc trưng>

  • Nó đã dược phát triển như một ngôn ngữ để cho phép các tài liệu điện tử được xử lí trên máy tính. Tuy nhiên, việc đảm bảo sự phức tạp của nó đã ngăn cản không cho phép nó được sử dụng rộng rãi.

  •  HTML (Hyper Text Markup Language - Ngôn ngữ đánh dấu siêu văn bản)

  • HTML là ngôn ngữ để mô tả siêu văn bản được dùng trên WWW và các ứng dụng khác.

  • <Đặc trưng>

  • - Nó là phiên bản mở rộng của SGML.

  • - Việc dùng các thẻ tạo khả năng đặc tả dễ dàng cho các tệp ảnh hoặc các liên kết.

  •  XML (eXtensible Markup Language - Ngôn ngữ đánh dấu mở rộng)

  • XML, được đặt vào vị trí là ngôn ngữ kế tục HTML, là ngôn ngữ mô tả trang trong tiến trình được chuẩn hoá. XML là ngôn ngữ tổ hợp những điểm mạnh của cả HTM và SGML trong đó các chức năng móc nối của HTML được mở rộng và SGML được tối ưu cho sử dụng Internet. Công trình chuẩn hoá của liên đoàn WWW về XML đã được hoàn tất vào tháng 12/1997.

  • <Đặc trưng>

  • - So với HTML, nó cung cấp mức độ tự do và linh hoạt cao hơn cho người dùng.

  • - Các ứng dụng được trông đợi để bao gồm cả trao đổi dữ liệu trong thương mại điện tử, lưu giữ tài liệu xí nghiệp, và truyền phát BS số thức.

  •  PostScript

  • PostScript là ngôn ngữ mô tả trang do Adobe Systems phát triển. PostScript được dùng như chuẩn mặc định trong xuất bản tại bàn (chế bản điện tử).

  • <Đặc trưng>

  • Các mô tả là độc lập với hiệu năng của thiết bị đưa ra.

  • Việc nhúng một bộ thông dịch PostScript vào máy in tạo khả năng in ra nhiều kiểu fonts với tốc độ cao.

  • Khi phần mềm thông dịch PostScript được dùng, thì máy in thường có thể tạo ra cùng chất lượng như máy in có nhúng PostScript.


tải về 1.95 Mb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9   ...   20




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương