User Tag List

+ Trả lời chủ đề
Trang 1/2 12 CuốiCuối
Hiện kết quả từ 1 tới 10 của 12

Chủ đề: Khái niệm về ngôn ngữ lập trình

  1. #1
    LionKing
    Guest

    Mặc định

    Note: Sưu tầm và chỉnh sửa

    Phần 1. Khái niệm về ngôn ngữ lập trình & chương trình máy tính

    Con người liên lạc với nhau thông qua ngôn ngữ (tiếng, chữ viết, hành động...), tạo ra các mẫu từ ngữ, âm thanh và hình ảnh. Ngôn ngữ lập trình cũng tương tự như vậy, đó là một tập từ ngữ và ký hiệu cho phép lập trình viên hoặc người dùng có thể nói chuyện với máy tính.

    Cũng giống như tiếng Anh, tiếng Tây Ban Nha hoặc tiếng Trung Quốc và những ngôn ngữ tiếng nói khác, ngôn ngữ lập trình cũng có các luật được gọi là cú pháp (syntax) để đảm bảo ngôn ngữ đó được vận dụng một cách chính xác.

    Ðó là một tập các chỉ thị (instruction) được sắp xếp theo một trật tự định trước nhằm hướng dẫn máy tính thực hiện các thao tác, hành động cần thiết để đáp ứng một mục tiêu đã định trước của con người như truy xuất dữ liệu, tìm kiếm, giải bài toán, ...Các chỉ thị này có thể được viết bằng nhiều ngôn ngữ lập trình khác nhau.

  2. #2
    LionKing
    Guest

    Mặc định

    Phần 2. Các loại ngôn ngữ lập trình thông dụng

    Có hàng trăm loại ngôn ngữ lập trình khác nhau, mỗi loại ngôn ngữ đều có cú pháp riêng của nó. Một số ngôn ngữ thì được phát triển để dùng trên các loại máy tính chuyên biệt, một số ngôn ngữ khác thì - do sự thành công của nó - đã trở thành chuẩn và được áp dụng trên đa số các máy tính. Ngôn ngữ lập trình có thể được phân chia thành 3 loại chính :

    Ngôn ngữ máy (hay ngôn ngữ cấp thấp)

    Ngôn ngữ máy (mã máy) là ngôn ngữ nền tảng của bộ vi xử lý. Các chương trình được viết trong tất cả các loại ngôn ngữ khác cuối cùng đều được chuyển thành ngôn ngữ máy trước khi chương trình đó được thi hành.

    Vì tập lệnh của ngôn ngữ máy phụ thuộc vào loại vi xử lý nên ngôn ngữ máy sẽ khác nhau trên những máy tính có sử dụng bộ vi xử lý khác nhau.

    Ưu điểm của viết chương trình bằng ngôn ngữ máy là lập trình viên có thể điều khiển máy tính trực tiếp và đạt được chính xác điều mình muốn làm. Do đó, các chương trình ngôn ngữ máy được viết tốt là những chương trình rất hiệu quả (tốc độ thi hành nhanh, kích thước nhỏ).

    Nhuợc điểm của chương trình ngôn ngữ máy là thông thường sẽ mất rất nhiều thời gian để viết, rất khó đọc, theo dõi để tìm lỗi. Thêm vào đó, bởi vì chương trình được viết bằng tập lệnh phụ thuộc vào bộ vi xử lý nên chương trình chỉ chạy được trên những máy tính có cùng bộ vi xử lý mà thôi. Ngôn ngữ máy cũng được gọi là ngôn ngữ cấp thấp (low-level language)

    Hợp ngữ

    - Hợp ngữ được phát triển nhằm giúp các lập trình viên dễ nhớ các chỉ thị của chương trình hơn.

    - Đây là thứ ngôn ngữ đầu tiên tương đối độc lập đối với các quá trình thực xảy ra trong các bộ vi xử lý

    - Qua một tập hữu hạn các lệnh được nhận biết nhờ các từ gợi nhớ sơ đẳng, người lập trình có thể trực tiếp can thiệp vào quá trình di chuyển dữ liệu, sửa đổi dữ liệu, điều khiển thiết bị...

    - Công việc còn lại của trình dịch Assembler rất ít, phần lớn nhiệm vụ của nó là ánh xạ các lệnh gợi nhớ trong chương trình nguồn tới một tập cố định các lệnh của bộ vi xử lý, một số thao tác xử lý macro

    - Hợp ngữ tương tự như ngôn ngữ máy nhưng lại sử dụng các ký hiệu gợi nhớ (mnemonics hay mã lệnh hình thức - symbolic operation code) để biểu diễn cho các mã lệnh của máy. Một đặc điểm khác nữa là hợp ngữ thông thường cho phép định địa chỉ hình thức (symbolic addressing), nghĩa là một vị trí bộ nhớ trong máy tính có thể được tham chiếu tới thông qua một cái tên hoặc ký hiệu, chẳng hạn như TOTAL thay vì phải sử dụng địa chỉ thực sự của nó (bằng con số nhị phân) trong ngôn ngữ máy.

    - Các chương trình hợp ngữ còn bao gồm các chỉ thị vĩ mô (macro instruction) có thể tạo ra nhiều lệnh mã máy. Các chương trình hợp ngữ được chuyển sang mã máy thông qua một chương trình đặc biệt gọi là trình hợp dịch (assembler). Mặc dù hợp ngữ tương đối dễ dùng hơn mã máy nhưng hợp ngữ vẫn được xem là ngôn ngữ cấp thấp bởi vì nó vẫn còn rất gần với từng thiết kế của máy tính.

    - Để có được một chương trình hoàn chỉnh, người lập trình sẽ phải tìm hiểu thấu đáo tập lệnh, vì số lệnh, các chi tiết kỹ thuật cho tập lệnh có thể rất khác nhau giữa các bộ vi xử lý; định hình rõ ràng trình tự các thao tác; khả năng mà trình dịch có thể làm được; và nhất là xác định mức độ cần thiết của các thủ thuật lập trình. Chẳng hạn, trong khi các bộ vi xử lý dòng Intel (x86 phổ dụng trong các máy PC) thường có khoảng 8 thanh ghi đa năng, 6 thanh ghi đoạn, một thanh ghi con trỏ lệnh, cờ... thì các bộ vi xử lý dòng Motorola (MC680x0 phổ dụng trong các máy MacIntosh, các máy trạm của Sun, trong các hệ thống máy tính nhiều bộ vi xử lý, và trong rất nhiều máy PC) thì lại có tới khoảng 8 thanh ghi dữ liệu 80 bit, khoảng ngần ấy số thanh ghi địa chỉ cùng hàng tá thanh ghi với rất nhiều công dụng khác nhau, chế độ làm việc khác nhau

    - Chính vì tính chỉ định phần cứng cao như vậy mà hiệu quả làm việc của một người thông qua hợp ngữ phụ thuộc rất nhiều vào kinh nghiệm làm việc, theo đó các chương trình này rất khó bảo trì, khó kiểm soát khi số thao tác của chương trình tăng, và đôi khi còn khó hiểu đối với chính người viết ra nó nếu không có các văn bản bảo trì được ghi chép cẩn thận. Nhưng bù lại, các chương trình thực hiện bằng hợp ngữ nói chung thường có kích thước rất khiêm tốn, chạy nhanh nhất tính trên cùng một trình tự thao tác cụ thể so với các ngôn ngữ khác.

    - Chính vì những đặc điểm trên, các lập trình viên dễ dàng đọc và dễ học ngôn ngữ cấp cao hơn so với ngôn ngữ máy hoặc hợp ngữ. Một lợi điểm quan trọng là ngôn ngữ cấp cao thông thường không phụ thuộc vào máy tính, nghĩa là các chương trình viết bằng ngôn ngữ cấp cao có thể chạy trên các loại máy tính khác nhau (sử dụng các bộ vi xử lý khác nhau).

    Ngôn ngữ cấp cao

    - Cuộc cách mạng của ngôn ngữ máy tính bắt đầu với sự phát triển của ngôn ngữ cấp cao vào cuối thập kỷ 1950 và 1960.

    - Ngôn ngữ cấp cao gần gũi hơn với ý niệm ngôn ngữ mà hầu hết mọi người đều biết, nó bao gồm các danh từ, động từ, ký hiệu toán học, liên hệ và các thao tác luận lý. Các yếu tố này có thể được phối hợp, liên kết với nhau tạo thành một hình thức của câu. Các "câu" này được gọi là các mệnh đề của chương trình (program statement).

  3. #3
    LionKing
    Guest

    Mặc định

    Phần 3: Các ngôn ngữ lập trình thông dụng

    Mặc dù đã có hàng trăm ngôn ngữ lập trình được sinh ra, chỉ có một số ít là được sử dụng rộng rãi và được xem là một chuẩn công nghiệp. Các ngôn ngữ này đều có thể được sử dụng trên nhiều loại máy tính khác nhau.

    3.1 BASIC

    - Viết tắt của cụm từ Beginner's All-Purpose Symbolic Instruction Code, được phát triển bởi John Kermeny và Thomas Kurtz vào năm 1964 tại trường đại học Dartmouth.

    - Ban đầu, họ thiết kế BASIC là một ngôn ngữ lập trình đơn giản, có tính tương tác để các sinh viên học tập và sử dụng. BASIC đã trở thành một trong những ngôn ngữ lập trình thông dụng nhất được sử dụng trên các máy vi tính và máy tính mini ngày nay.

    - Basic vốn là một ngôn ngữ phi cấu trúc, nó được phát triển để giúp người lập trình đỡ phần vất vả khi làm việc trên các bộ vi xử lý khác nhau. Với nó, người lập trình không phải lo lắng nhiều về sự khác nhau trong chi tiết kỹ thuật của từng bộ vi xử lý cụ thể, họ chỉ cần bận tâm tới việc cấu trúc sao cho chương trình của họ được tối ưu

    - Để có được tính khả chuyển trên nhiều loại vi xử lý, các chương trình Basic cần có một chương trình thông dịch để kích hoạt, trình thông dịch này có nhiệm vụ ánh xạ mã đầu ra của trình dịch Basic vào tập lệnh cụ thể của bộ vi xử lý khi chạy chương trình

    - Người ta đã từng đưa trình thông dịch này vào trong phần cứng, lưu trữ lâu dài trong các bộ nhớ chỉ đọc (ROM), và cung cấp các khả năng tương tác tương đối thuận tiện, giúp người lập trình thiết kế và gỡ rối nhanh chóng các chương trình Basic

    - Ngày nay, Basic đã được cải tiến nhiều, về cả trình dịch lẫn bản thân ngôn ngữ, các ứng dụng của Microsoft thường dùng Basic như một công cụ để người sử dụng tuỳ biến chúng theo nhu cầu. Vì chạy thông dịch cho nên các ứng dụng viết bằng Basic chạy không nhanh, nhưng vì tính phổ cập, rất nhiều nhà phát triển công cụ vẫn hỗ trợ nó. Sản phẩm hỗ trợ Basic ở mức cao được nói đến ở đây là Visual Basic của Microsoft. Đây là một công cụ phát triển được Công ty này rất ưu ái, hiện nó đang được ưu chuộng trong lĩnh vực phát triển ứng dụng trên Windows. Visual Basic được hỗ trợ rất nhiều khả năng về cơ sở dữ liệu, các kỹ thuật phát triển phần mềm mới như OLE, COM, DCOM...

    - Nếu như bạn chưa có ý định trở thành nhà phát triển phần mềm ứng dụng thì cũng nên biết tới Basic, bởi vì hầu hết các ứng dụng lớn ngày này như Notes, bao gồm cả các phần mềm xử lý bảng tính, văn bản của Mirosoft đều có sử dụng macro lệnh được thiết kế dựa trên Basic, cho phép người sử dụng sửa đổi, bổ sung các tính năng mới theo nhu cầu.


    3.2 COBOL
    - viết tắt của COmmon Business Oriented Language, được giới thiệu vào năm 1960. Ðược hỗ trợ bởi bộ quốc phòng Hoa Kỳ
    - COBOL được phát triển bởi một hội đồng bao gồm các đại diện từ phía chính phủ và công nghiệp. Grace M.Hopper là người chính yếu trong hội đồng và được xem là nhà phát triển chính của ngôn ngữ COBOL. COBOL đã từng là một trong những ngôn ngữ được dùng rộng rãi nhất cho các ứng dụng thương mại.
    - Bằng cách dùng một hình thức tựa tiếng Anh, các câu lệnh của COBOL được sắp xếp vào trong các câu và nhóm lại thành từng đoạn (paragraph). Hình thức tiếng Anh giúp COBOL dễ viết và đọc nhưng cũng làm cho chương trình nguồn dài hơn. COBOL rất tốt trong việc xử lý các tập tin lớn và thực hiện nhưng phép tính thương mại tương đối đơn giản.

    3.3 C

    - Được phát triển bởi tác giả Dennis Ritchie tại phòng thí nghiệm Bell vào năm 1972.
    - Ban đầu, C được thiết kế như là một ngôn ngữ để viết các phần mềm hệ thống, nhưng ngày nay, nó được xem là một ngôn ngữ công dụng chung.

    - C là một ngôn ngữ lập trình mạnh mẽ đòi hỏi kỹ năng lập trình chuyên nghiệp mới có thể sử dụng hiệu quả được. Nhu cầu dùng C để phát triển nhiều loại phần mềm kể cả các ứng thương mại đang gia tăng. -
    - Các chương trình C thường được dùng với hệ điều hành Unix (phần lớn hệ điều hành Unix được viết bằng C).

    3.4 FORTRAN

    - Viết tắt của FORmula TRANslator được phát triển bởi một nhóm lập trình viên của công ty IBM dưới sự lãnh đạo của John Backus.
    - Công bố vào năm 1957, FORTRAN được thiết kế như là một ngôn ngữ lập trình dành cho các nhà khoa học, kỹ sư và toán học.

    - FORTRAN được xem như là ngôn ngữ lập trình cấp cao đầu tiên và được chú ý bởi khả năng của nó cho phép dễ dàng diễn đạt và tính toán các phương trình toán học.

    3.5 PASCAL

    - Ngôn ngữ sẽ được sử dụng để giảng dạy trong giáo trình này, được phát triển vào năm 1968 bởi Niklaus Wirth, một nhà khoa học máy tính tại Zurich, Thụy Sĩ. Pascal được phát triển để giảng dạy lập trình.

    - Tên Pascal không phải là từ viết tắt, đó là tên của một nhà toán học, Blaise Pascal (1623 - 1662) người đầu tiên tạo ra máy tính. Pascal, dùng trong cả máy tính cá nhân và máy tính lớn là một trong những ngôn ngữ lập trình đầu tiên được phát triển trong đó khuyến khích phương pháp lập trình cấu trúc.

    - Đây là thứ ngôn ngữ vỡ lòng cho hầu hết những người bắt đầu tiếp xúc với máy tính. Nó được biết tới không chỉ vì là một trong số các ngôn ngữ cấu trúc ra đời đầu tiên trên thế giới, mà còn là vì tính dễ đọc, dễ tiếp cận của nó. Nếu bạn biết tiếng Anh, không nhất thiết phải biết về tin học, khi đọc một chương trình viết trong ngôn ngữ này bạn sẽ thấy ngay về cơ bản nó đang nói về một quá trình làm việc nào đó

    - Với thứ ngôn ngữ này, người lập trình khỏi phải đau đầu vì phải tổ chức lấy chương trình, thay vào đó họ sẽ dùng các câu lệnh tiếng Anh rất dễ nhớ, dễ sử dụng. Việc xây dựng một chương trình rất giống với việc mô phỏng một quá trình hoạt động, có đầu ra đầu vào, mã nguồn của một chương trình như thế rất dễ đọc, dễ sửa đổi. Tất nhiên, trình dịch sẽ phải làm việc vất vả hơn bởi nó phải phân giải cả một dãy lệnh vốn chỉ dễ hiểu đối với con người nhưng lại... không thể hiểu nổi đối với các bộ vi xử lý. Hầu hết các ngôn ngữ lập trình cấu trúc (tất nhiên trong đó có Pascal) đều lấy việc dịch sang hợp ngữ làm một bước trung gian, theo đó các cấu trúc lệnh if...then, case...of, v.v. được chuyển thành các khối mã nguồn Assembly. Tóm lại, việc cấu trúc chi tiết cho một chương trình cụ thể được thực hiện tự động bởi trình dịch, lúc này các thủ thuật lập trình Assembly của người lập trình không còn có thể áp dụng vào đây, đôi khi nó còn máy móc làm phình to mã cho dù đã sử dụng tới cả chục thuật toán tối ưu

    - Hầu hết các công cụ phát triển có hỗ trợ Pascal ngày nay đều đưa ra các khả năng kết nối mới cho nó, mã trình có thể được viết riêng rẽ trên nhiều tệp rồi kết nối, hoặc được nạp từ thư viện động... nhưng nói chung, đây là ngôn ngữ chỉ phù hợp với các ứng dụng nhỏ và trung bình, phổ dụng trong lĩnh vực đào tạo. Nếu bạn là người mới tiếp xúc với máy tính, muốn tìm hiểu cách hoạt động của một chương trình thì bạn hãy chọn ngôn ngữ này.

    3.6 DELPHI (Borland)

    - Chỉ là một công cụ phát triển ứng dụng, nó được xây dựng bằng lõi Pascal

    - Với công cụ này, sau một vài tiếng đồng hồ đọc help, nhất là có ai đó hướng dẫn đôi chút, bạn hoàn toàn có thể tự viết cho mình các ứng dụng đơn giản như trình xem tệp .AVI, nghe nhạc, các thao tác tính toán, lưu trữ đơn giản... Nó tỏ ra rất thích hợp với những bạn thích khám phá nhưng không muốn tốn quá nhiều thời gian nghiền ngẫm

    3.8 C language

    - Là ngôn ngữ lập trình cấu trúc như Pascal và là thứ công cụ mạnh đã từng được sử dụng để thiết kế hầu hết các hệ điều hành trên thế giới

    - Các hệ điều hành như UNIX, AMOEBA... đều thực thi bằng C, và nói chung đây là thứ ngôn ngữ có tính khả chuyển tương đối cao cho nên các hệ điều hành này có thể chạy trên rất nhiều phần cứng khác nhau, ngay cả với WINDOWS cũng vậy, rất nhiều module của nó cũng được xây dựng bằng C.

    3.9 C++ language

    - Là một bước phát triển tiếp theo của C trong xu thế 'đối tượng hoá' ngôn ngữ

    - Nói như vậy là bởi hầu hết các trình dịch C++ đều lấy C làm nền cho tất cả các định hướng nhằm tận dụng các ưu thế mà mô hình thiết kế hướng đối tượng mang lại

    - Các nhà cung cấp trình dịch C đều muốn rằng sản phẩm của họ được các nhà phát triển công cụ ưa dùng, thế nhưng các nhà cung cấp công cụ phát triển lại muốn các trình dịch hướng theo mô hình thiết kế vốn muôn hình muôn vẻ mà họ đưa ra. Cứ như thế, C++ phát triển trong sự thiếu nhất quán, hệ thống từ khoá không được hỗ trợ đầy đủ, đôi khi không thống nhất, cách cấu trúc chương trình cũng không giống nhau mặc dù chúng giống nhau về mô hình.

    - Ngày nay, hầu hết các công cụ phát triển hệ thống mạnh như Visual C++, C++Builder, Visual Age... đều hỗ trợ song song cả C lẫn C++. Nói chung đây là các công cụ mạnh, thể hiện được ưu thế của chúng trong từng môi trường phát triển cụ thể; ví dụ Visual C++ thích hợp với những người muốn phát triển các ứng dụng nhất là các ứng dụng gắn với Windows, C++Builder thân thiện ngay cả với những người không nhiều kinh nghiệm trong lĩnh vực lập trình, ...

    - Để tìm cho mình một trình dịch C++ phù hợp hãy lựa chọn; chẳng hạn, nếu bạn cần hướng theo việc xây dựng các ứng dụng phục vụ, có liên quan tới các dịch vụ chuẩn của Windows, không nhất thiết phải có màn hình giao tiếp phức tạp, hoặc cần có các ứng dụng can thiệp sâu vào hệ thống... bạn hãy lựa chọn Visual C++. Công cụ này đưa ra khá nhiều mẫu (wizard), theo khung định sẵn đó bạn chỉ cần thực thi các chi tiết là đã có một ứng dụng hoàn chỉnh rồi. Còn nếu bạn không đủ thời gian cần thiết để nghiền ngẫm cả đống các văn bản công bố từ Microsoft, mà lại muốn có các ứng dụng mang tính bề mặt, nhanh, đầy tính tương tác, bạn hãy sử dụng C++Builder hay một số sản phẩm tương tự từ IBM, Symantec...

    3.10 JAVA

    - Là ngôn ngữ thế hệ mới, thế hệ năm, nó kế thừa hầu hết những 'tư chất' tốt đẹp của các bậc tiền bối, hướng đối tượng từ mô hình thiết kế tới mô hình thực thi, hỗ trợ đa luồng một cách rất tinh tế, độ tin cậy cao, tính khả chuyển tuyệt vời

    - Java nay không còn là một cơn sốt bình thường, nó là một xu thế song song tồn tại với các mô hình lập trình hiện có, ngày càng nhiều lĩnh vực mà nó có mặt

    - Ban đầu, mục tiêu của các nhà thiết kế của ngôn ngữ này là "Web đi tới đâu, Java đi tới đó", nay thì sao, nó đang len lỏi vào cả các hệ thống đầy tính thương mại như các hệ quản trị dữ liệu của ORACLE, rồi cả các hệ thống phục vụ cực lớn... Với phiên bản 2, từ tên ấn bản JDK được đổi thành SDK, Sun dần lộ rõ những ham muốn rất lớn lao trong việc đưa Java vào đời sống tin học của mọi người trên thế giới.

    - Java là ngôn ngữ mạnh, về cả mô hình thiết kế lẫn tính năng. Nếu bạn muốn thiết kế các trang Web sống động, bạn hãy chọn nó, một khối mã .CLASS vài KB có thể làm được nhiều điều hơn cả 100KB ảnh, nó là giải pháp cho một đường truyền tốc độ thấp.

    - Nếu bạn muốn thiết kế các chương trình phân tán, Java là một lựa chọn tốt, nó có một lượng thư viện mạng được tổ chức hợp lý, thân thiện với người lập trình. Với nó bạn có thể tự thiết kế lấy các giao thức (ngay cả các giao thức lạ lẫm chưa từng được nhắc tới trong RFC), các ứng dụng phục vụ, và các ứng dụng sử dụng dịch vụ... mà không đòi hỏi mất quá nhiều thời gian tìm hiểu hệ thống, tìm kiếm các công bố kỹ thuật.

    - Nếu bạn cần viết các ứng dụng mà mã của chúng có thể được sử dụng lại một cách linh hoạt, trên nhiều loại phần cứng, tốn ít thời gian bảo trì...và hợp 'thời' nhất, bạn cũng nên chọn Java. Với các ngôn ngữ khác, việc sử dụng lại mã rất khó, ví dụ bạn đã có một tệp .dll, cùng với hàng tá chi tiết kỹ thuật kèm theo bạn cũng rất khó sử dụng lượng thư viện có trong đó, đấy là chưa tính tới việc mã thư viện động này chỉ có thể sử dụng được trên các hệ thống Windows. Với Java thì lại khác, mô hình thiết kế của nó cho phép mã của mỗi lớp được gói trong một tệp .CLASS riêng, được kiểm soát trong không gian tên bởi hệ thống chạy Java, và được nạp một cách tường minh mỗi khi chương trình cần tới các hành vi của chúng. Có thể xem môi trường chạy Java lúc này là một cái giỏ táo, mỗi quả táo là một đối tượng, vết kích hoạt của một chương trình Java rất giống như lối của các con sâu, đục xuyên từ quả này sang quả khác... ứng với một con sâu, chương trình có một luồng kích hoạt, nhiều con sâu ứng với một chương trình Java đa luồng (multithread).

    - Môi trường kích hoạt Java có xu hướng phân tán, các đối tượng kích hoạt có thể không cùng nằm trên một máy duy nhất, theo đó nó có thể nằm rảI rác đâu đó trên mạng, chúng 'liên kết' với nhau để hình thành một chương trình thông qua mạng... Thế nhưng, khi các ưu thế trên không có trong định hướng của bạn về một công cụ lập trình, bạn đừng nên sử dụng nó. Thứ nhất, Java chạy thông dịch, tốc độ chậm dù đã được cải thiện nhờ cơ chế dịch JIT (một cơ chế nhận biết để ánh xạ một cách thông minh khối mã đầu vào cần thông dịch và khối mã đầu ra cần kích hoạt nhằm tiết kiệm thời gian dịch), và dù có mong đợi thế nào thì Java vẫn sẽ chạy thông dịch. Thứ hai, bản thân ngôn ngữ này đang trong thời gian hoàn thiện; hoàn thiện về hệ thống từ khoá, hoàn thiện về cách tổ chức máy ảo, hoàn thiện về thư viện...

  4. #4
    LionKing
    Guest

    Mặc định

    Phần 4 Các loại ngôn ngữ lập trình khác

    ALGOL (ALGOrithmetic Language).
    Ngôn ngữ lập trình cấu trúc dùng cho các ứng dụng khoa học và toán học.

    APL(A Programming Language).
    Một ngôn ngữ mạnh mẽ, dễ dùng, rất tốt trong việc xử lý dữ liệu được lưu dưới dạng bảng (ma trận)

    FORTH
    Tương tự như C, tạo ra các mã chương trình nhanh và hiệu quả. Ban đầu được phát triển để điều khiển kính viễn vọng không gian.

    LISP, LISt Processing
    Ngôn ngữ trí tuệ nhân tạo thông dụng.

    LOGO
    Chủ yếu được biết đến như là một công cụ để dạy khả năng giải quyết vấn đề.

    MODULA-3, tương tự như PASCAL.
    Dùng chủ yếu để phát triển các phần mềm hệ thống.

    PILOT, Programmed Inquiry Learning Or Teaching
    Dùng bởi các nhà giáo dục để viết các chương trình hướng dẫn CAD.

    PL/I, Programming Language/ One.
    Ngôn ngữ thương mại và khoa học phối hợp nhiều chức năng của FORTRAN và COBOL.

    PROLOG, PROgramming LOgic.
    Dùng trong trí tuệ nhân tạo.

    RPG, Report Program Generator.
    Dùng các mẫu đặc biệt để giúp người dùng xác định dữ liệu vào, dữ liệu ra và các yêu cầu tính toán của một chương trình.

    ADA, lấy tên của Augusta Ada Bryon
    Người được xem là đã viết chương trình đầu tiên, được thiết kế để phục vụ cho việc viết, bảo trì các chương trình lớn trong một khoảng thời gian dài.

  5. #5
    LionKing
    Guest

    Mặc định

    Phần 5: Trình thông dịch và biên dịch

    - Mọi chương trình được viết bằng các ngôn ngữ không phải là ngôn ngữ máy cuối cùng đều phải được chuyển đổi sang ngôn ngữ máy trước khi được thi hành.

    - Chương trình ngôn ngữ cấp cao được dịch sang ngôn ngữ máy bằng một trong hai cách : bằng trình biên dịch (compiler) hoặc trình thông dịch (interpreter).

    5.1 Trình biên dịch :

    - Sẽ chuyển đổi toàn bộ chương trình sang mã máy, rồi chứa kết quả vào đĩa để có thể thi hành về sau.

    - Chương trình ngôn ngữ cấp cao được chuyển đổi được gọi là chương trình nguồn (source program) và chương trình ngôn ngữ máy được tạo ra được gọi là chương trình đối tượng (object program) hoặc mã đối tượng (object code).

    - Khi người dùng muốn chạy chương trình, chương trình đối tượng sẽ được nạp lên bộ nhớ chính của CPU và các chỉ thị của chương trình sẽ được thi hành. Khi được hướng dẫn bởi các chỉ thị của chương trình, CPU sẽ truy xuất dữ liệu và tạo ra các kết quả. Trình biên dịch sẽ kiểm tra cú pháp chương trình, thực hiện các phép kiểm tra logic và đảm bảo các dữ liệu sắp được sử dụng trong các phép so sánh, tính toán đã được định nghĩa một cách hợp lý ở một nơi nào đó trong chương trình.

    - Một chức năng quan trọng của trình biên dịch là nó sẽ tạo ra một danh sách lỗi của tất cả mệnh đề trong chương trình vi phạm cú pháp của ngôn ngữ. Danh sách này giúp lập trình viên dễ dàng sửa đổi chương trình.

    - Do ngôn ngữ máy phụ thuộc vào bộ vi xử lý nên các máy tính khác nhau sẽ cần có các trình biên dịch khác nhau đối với cùng một ngôn ngữ cấp cao. Ví dụ, một máy mainframe, máy mini và máy tính cá nhân cần có các trình biên dịch khác nhau để biên dịch cùng một chương trình nguồn sang mã máy của từng loại máy này.

    5.2 Trình thông dịch :

    - Thay vì chuyển đổi toàn bộ chương trình nguồn như trình biên dịch, trình thông dịch chỉ chuyển đổi một mệnh đề của chương trình và thực hiện đoạn mã kết quả ngay, sau đó nó tiếp tục chuyển đổi mệnh đề thứ 2 rồi thi hành đoạn mã kết quả thứ 2 và cứ thế.

    - Khi sử dụng trình thông dịch, mỗi lần chạy chương trình là mỗi lần chương trình nguồn được thông dịch sang ngôn ngữ máy. Không có chương trình đối tượng nào được tạo ra.

    - Các trình thông dịch thường được dùng trên các máy tính cá nhân không có đủ bộ nhớ hoặc sức mạnh tính toán cần thiết để dùng trình biên dịch.

    - Lợi điểm của trình thông dịch là lập trình viên vẫn có thể chạy một chương trình vẫn còn lỗi cú pháp. Chỉ đến lúc thông dịch đến câu lệnh có lỗi cú pháp, quá trình thi hành chương trình mới bị ngừng lại và trình thông dịch sẽ thông báo lỗi.

    - Ðiểm bất lợi là các chương trình thông dịch chạy không nhanh bằng các chương trình được biên dịch vì quá trình chuyển đổi sang ngôn ngữ máy được thực hiện cùng với quá trình thi hành chương trình. Vì lý do này, ngày nay, đa số các ngôn ngữ cấp cao đều dùng trình biên dịch.

  6. #6
    LionKing
    Guest

    Mặc định

    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    Phần 6: Lập trình có cấu trúc

    Lập trình cấu trúc là một phương pháp lập trình có các đặc trưng cơ bản sau : tính đơn thể, cấu trúc điều khiển và tính vào/ra đơn. Tuân thủ theo nguyên tắc lập trình có cấu trúc sẽ giúp các chương trình dễ viết, dễ đọc, dễ hiểu, dễ kiểm lỗi và dễ hiệu chỉnh.

    Tính đơn thể (modules) :

    - Với lập trình cấu trúc, các vấn đề trong lập trình được phân rã (chia nhỏ) thành những phần nhỏ hơn gọi là các đơn thể. Mỗi đơn thể, được gọi là một chương trình con trong các ngôn ngữ lập trình, sẽ thực hiện một nhiệm vụ định trước trong chương trình. Ðiểm lợi chính của kỹ thuật này là nó đơn giản hóa việc phát triển chương trình vì mỗi đơn thể chương trình có thể được phát triển một cách độc lập. Khi các đơn thể được lắp ghép lại, chúng tạo thành một chương trình hoàn chỉnh tạo ra được kết quả mong muốn.

    - Sơ đồ cấu trúc (structure chart) hay còn gọi là sơ đồ phân cấp (hierarchy chart) thường được dùng để phân rã và biểu diễn cho các đơn thể trong chương trình. Khi một quá trình phân rã chương trình hoàn tất, toàn bộ cấu trúc của chương trình sẽ được biểu diễn bằng một sơ đồ phân cấp.

    Cấu trúc điều khiển (control structure) :

    Trong lập trình cấu trúc, người ta sử dụng 3 cấu trúc điều khiển để tạo nên logic của chương trình. Mọi vấn đề logic đều có thể giải quyết được bằng cách phối hợp 3 cấu trúc này. 3 cấu trúc này là : cấu trúc tuần tự (sequence), cấu trúc chọn (selection) và cấu trúc lặp (iteration).

    Cấu trúc tuần tự : trong cấu trúc này, việc các quá trình được thực hiện tuần tự, từ quá trình này đến quá trình theo sau nó.

    Cấu trúc chọn : hay còn gọi là cấu trúc nếu … thì …ngược lại (if….then…else) cho phép các lập trình viên diễn đạt được các logic điều kiện trong chương trình. Ý nghĩa của cấu trúc này là nếu điều kiện là đúng thì thực hiện quá trình ứng với điều kiện đúng, ngược lại, thực hiện quá trình ứng với điều kiện sai.

    Một dạng khác của cấu trúc chọn là cấu trúc case. Cấu trúc case được dùng khi một điều kiện được kiểm tra có thể dẫn đến 2 hay nhiều quá trình xử lý khác nhau. Trong một chương trình, menu là một ví dụ về cấu trúc case vì nó cung cấp nhiều chọn lựa xử lý khác nhau.

    Cấu trúc lặp : (iteration structure hoặc looping structure) : cho phép thực hiện nhiều lần một quá trình dựa trên một điều kiện cho trước. Có 2 dạng cơ bản của cấu trúc lặp là cấu trúc lặp for và while. Cấu trúc lặp for cho phép lặp lại một quá trình xử lý một số lần xác định trước. Còn cấu trúc lặp while thì lặp lại quá trình xử lý cho đến lúc điều kiện kiểm tra không còn đúng nữa.


    Vào/ra đơn( single entry/exit) :

    - Đây là một khái niệm quan trọng trong lập trình cấu trúc. Vào/ ra đơn nghĩa là chỉ có một điểm vào và một điểm ra đối với mỗi cấu trúc trong 3 cấu trúc ở trên. Ðiểm vào là điểm bắt đầu cấu trúc điều khiển và điểm ra là điểm kết thúc cấu trúc điều khiển.

    - Tính chất này cải thiện đáng kể logic của một chương trình, bởi vì, khi đọc một chương trình, lập trình viên có thể đảm bảo rằng cho dù có chuyện gì xảy ra trong cấu trúc đi nữa thì cấu trúc điều khiển chỉ đi ra ở một điểm duy nhất. Trước khi có lập trình cấu trúc, nhiều lập trình viên hay có thói quen chuyển điều khiển đến những phần khác trong chương trình màkhông tuân theo luật vào/ra đơn. Ðiều này sẽ dẫn đến một thiết kế chương trình tồi, cực kỳ khó khăn để đọc và kiểm tra lỗi cũng như hiệu chỉnh. Chương trình viết theo lối này sẽ giống như một mớ dây rối !!


    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  7. #7
    LionKing
    Guest

    Mặc định

    Phần 7. Lập trình hướng đối tượng

    - Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một tiếp cận mới cho việc phát triển phần mềm cho phép lập trình viên tạo ra các đối tượng (object), một phương pháp kết hợp cả dữ liệu và các câu lệnh của chương trình.

    -Theo kiểu lập trình truyền thống, người ta thường lưu trữ dữ liệu - chẳng hạn như các tập tin - độc lập với chương trình thao tác trên dữ liệu đó. Do đó, mỗi chương trình phải tự định nghĩa cách thức sử dụng dữ liệu cho chính nó. Ðiều này thường dẫn đến sự trùng lắp mã lệnh, hơn nữa, mỗi lần dữ liệu thay đổi thì mã chương trình phải thay đổi theo.

    - Với lập trình hướng đối tượng, các câu lệnh của chương trình cũng như dữ liệu được kết hợp trong các đối tượng mà sau đó có thể được dùng đi dùng lại nhiều lần bất cứ khi nào ta cần. Các lệnh đặc biệt gọi là phương thức (method) sẽ định nghĩa cách thức phản ứng của đối tượng khi đối tượng đó được dùng trong chương trình.

    - Khi dùng lập trình hướng đối tượng, các lập trình viên sẽ định nghĩa ra các lớp đối tượng (class). Mỗi lớp sẽ có những phương thức đặc trưng cho lớp đó. Ngoài ra, các lớp đối tượng còn có khả năng truyền những phương thức của nó cho những lớp thấp hơn gọi là thừa kế (inheritance). Một dẫn xuất (instance) của đối tượng sẽ chứa tất cả phương thức từ các lớp cao hơn cộng với các phương thức đặc trưng của nó. Khi một đối tượng nhận được một chỉ thị để thực hiện điều gì, người ta chỉ thị đó là một thông điệp (message). Không giống như lập trình truyền thống, thông điệp không cần phải chỉ rõ cho đối tượng biết phải thực hiện như thế nào mà chỉ cần bảo đối tượng phải cung cấp kết quả gì. Còn thực hiện như thế nào sẽ được định nghĩa trong các phương thức của đối tượng đó hoặc thừa kế từ các cấp cao hơn.


    - Liên quan đến lập trình hướng đối tượng là các phần mềm hướng đối tượng (object-oriented software) và hệ điều hành hướng đối tượng (object-oriented operating system).

    Phần mềm hướng đối tượng là phần mềm sử dụng phương pháp lập trình hướng đối tượng.

    Còn hệ điều hành hướng đối tượng là hệ điều hành được thiết kế đặc biệt để chạy các ứng dụng hướng đối tượng.

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  8. #8
    nguyenthanhtungtinbk
    Guest

    Mặc định

    Bài viết của bác hay lắm, nhưng ngắn gọn hơn chút thì tốt hơn.

  9. #9
    LionKing
    Guest

    Mặc định

    Thanks bác nguyenthanhtung!

    Ban đầu tui cũng chỉ định tóm gọn thui cho mọi nguời dễ đọc,

    nhưng sau sợ có những chỗ mọi người không hiểu nên giải thích đầy đủ luôn.

    Mong rằng mọi người sẽ có cái nhìn "Tổng quan về Ngôn ngữ lập trình"

    Điều mà mọi nguời vẫn hay gặp khó khăn phải không bác nguyenthanhtung.

  10. #10
    LionKing
    Guest

    Mặc định

    Bổ sung thêm:

    - Mọi người có thể đọc từng bài không cần tuần tự hoặc hết tất cả các bài.

    - Hãy xem qua và đọc những gì cảm thấy thực sự cần thiết.

    - Mong các bạn đóng góp thêm/

+ Trả lời chủ đề
Trang 1/2 12 CuốiCuối

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Từ khóa (Tag) của chủ đề này

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube