Dãy các lệnh để máy thực hiện một nhiệm vụ nào đó được gọi là gì
Show
Ngôn ngữ lập trình là ngôn ngữ hình thức bao gồm một tập hợp các lệnh tạo ra nhiều loại đầu ra khác nhau. Ngôn ngữ lập trình được sử dụng trong lập trình máy tính để thực hiện các thuật toán. Công cụ tô màu cú pháp (syntax highlighting) dùng màu sắc để giúp lập trình viên thấy nhiệm vụ của các từ khóa, số, và dòng chú thích (comment) trong mã nguồn. Chương trình này được viết trong ngôn ngữ Python, nó tính ra thể tích của hình nón. Từ khóa trong ngôn ngữ lập trình là các từ hay ký hiệu mà đã được ngôn ngữ đó gán cho một ý nghĩa xác định. Người lập trình sẽ không được phép dùng lại các từ khóa này dưới một ý nghĩa khác. Thường các từ khóa này được ngôn ngữ xác định dùng trong các kiểu dữ liệu cơ bản hay trong các dòng điều khiển. Ví dụ một số từ khóa trong C và C++: auto, float, return, char, if else, static, void... Các tên chuẩn hay tên cho trướcSửa đổiNgoài các từ khóa, một ngôn ngữ lập trình còn có khối lượng khá lớn các tên đã được định nghĩa hay được gán cho các ý nghĩa chuyên biệt gọi là các tên chuẩn. Các tên này có thể được dùng lại cho một ý nghĩa khác tùy theo người viết mã. Trong nhiều trường hợp sẽ phải có một cơ chế gọi để phân biệt là người lập trình muốn ám chỉ các tên đã bị tái dụng này dưới ý nghĩa nguyên thủy hay dưới ý nghĩa mới. Thường các tên được phép định nghĩa lại nằm trong hai loại chính là:
Ví dụ Trong C thì sin là tên của một hàm tính giá trị sin (trong thư viện math.h) nhưng người lập trình hoàn toàn có thể định nghĩa lại hàm này để cho nó có chức năng khác. Trong văn lệnh BASH thì biến toàn cục $PATH có thể được định nghĩa lại để dùng như là một biến địa phương.Các ký hiệuSửa đổiTrong mỗi ngôn ngữ đều cung cấp một hệ thống ký hiệu hay ký tự có ý nghĩa riêng. Tùy theo ngôn ngữ mà các ký hiệu này được phép định nghĩa lại hay không. Những ký hiệu được dùng trong hai trường hợp thường thấy nhất là
Ví dụ: Trong C/C++/Java/PHP thì các dấu ký hiệu '+', '-', '*', '/', '=' được dùng trong các phép toán theo thứ tự là cộng, trừ, nhân, chia và phép toán gán giá trị. Trong C thì các dấu '+', '-', '*', '/',... là không thể dùng lại cho ý nghĩa khác. Trong khi đó nếu dùng C++ thì người lập trình hoàn toàn có khả năng định nghĩa chúng lại thành những phép toán mới theo ý riêng và áp dụng cho các đối tượng mà người lập trình mong muốn (chẳng hạn như dùng phương pháp "quá tải toán tử"). Trong C, C++, PHP, Perl, Java và Pascal thì kết thúc các câu lệnh đơn giản thường bắt buộc phải dùng dấu ';'. Và điều này thì không nhất thiết nếu dùng văn lệnh BASH. Dấu ';' này giữ vai trò tương tự như dấu '.' trong Việt ngữ hay Anh ngữ. (Có điều là đại đa số các ngôn ngữ lập trình sẽ tuyệt đối không cho phép việc viết sai cú pháp.)Các luật cấm và ngoại lệSửa đổiMỗi ngôn ngữ, do hạn chế của môi trường và bản thân ngôn ngữ cũng như do mục tiêu sử dụng, có thể có một số luật cấm mà người lập trình không thể vi phạm. Những luật cấm này có thể có những cách xử lý khác nhau như là:
Các loại lỗi về ngôn ngữ khi lập trình thường xảy ra là Lỗi cú phápSửa đổi
Lỗi ý nghĩaSửa đổi
Các thành tố đặc trưng của ngôn ngữ OOPSửa đổiBài chi tiết: Lập trình hướng đối tượng
OOP là chữ viết tắt của Object Oriented Programming có nghĩa là Lập trình hướng đối tượng được phát minh năm 1965 bởi Ole-Johan Dahl và Kristen Nygaard trong ngôn ngữ Simula. So với phương pháp lập trình cổ điển, thì triết lý chính bên trong loại ngôn ngữ loại này là để tái dụng các khối mã nguồn và cung ứng cho các khối này một khả năng mới: chúng có thể có các hàm (gọi là các phương thức) và các dữ liệu (gọi là thuộc tính) nội tại. Khối mã như vậy được gọi là đối tượng. Các đối tượng thì độc lập với môi trường và có khả năng trả lời với yêu cầu bên ngoài tùy theo thiết kế của người lập trình. Với cách xây dựng này, mỗi đối tượng sẽ tương đương với một chương trình riêng có nhiều đặc tính mới mà quan trọng nhất là tính đa hình, tính đóng, tính trừu tượng và tính thừa kế. Thừa kếSửa đổiĐây là đặc tính cho phép tạo các đối tượng mới từ đối tượng ban đầu và lại có thể có thêm những đặc tính riêng mà đối tượng ban đầu không có. Cơ chế này cho phép người lập trình có thể tái sử dụng mã nguồn cũ và phát triển mã nguồn mới bằng cách tạo ra các đối tượng mới thừa kế đối tượng ban đầu. Đa hìnhSửa đổiTính đa hình được thể hiện trong lập trình hướng đối tượng rất đặc biệt. Người lập trình có thể định nghĩa một thuộc tính (chẳng hạn thông qua tên của các phương thức) cho một loạt các đối tượng gần nhau nhưng khi thi hành thì dùng cùng một tên gọi mà sự thi hành của mỗi đối tượng sẽ tự động xảy ra tương ứng theo từng đối tượng không bị nhầm lẫn. Ví dụ: khi định nghĩa hai đối tượng "hinh_vuong" và "hinh_tron" thì có một phương thức chung là "chu_vi". Khi gọi phương thức này thì nếu đối tượng là "hinh_vuong" nó sẽ tính theo công thức khác với khi đối tượng là "hinh_tron".Trừu tượngSửa đổiĐặc tính này cho phép xác định một đối tượng trừu tượng, nghĩa là đối tượng đó có thể có một số đặc điểm chung cho nhiều đối tượng nhưng bản thân đối tượng này có thể không có các biện pháp thi hành. Ví dụ: người lập trình có thể định nghĩa đối tượng "hinh" hoàn toàn trừu tượng không có đặc tính mà chỉ có các phương thức được đặt tên chẳng hạn như "chu_vi", "dien_tich". Để thực thi thì người lập trình buộc phải định nghĩa thêm các đối tượng cụ thể chẳng hạn định nghĩa "hinh_tron" và "hinh_vuông" dựa trên đối tượng "hinh" và hai định nghĩa mới này sẽ thừa kế mọi thuộc tính và phương thức của đối tượng "hinh".Đóng góiSửa đổiTính đóng gói ở đây dược hiểu là các dữ liệu (thuộc tính) và các hàm (phương thức) bên trong của mỗi đối tượng sẽ không cho phép người gọi dùng hay thay đổi một cách tự do mà chỉ có thể tương tác với đối tượng đó qua các phương thức được người lập trình cho phép. Tính đóng gói ở đây có thể so sánh với khái niệm "hộp đen", nghĩa là người ta có thể thấy các hành vi của đối tượng tùy theo yêu cầu của môi trường nhưng lại không thể biết được bộ máy bên trong thi hành ra sao. Một số thành tố thường thấy khác của một ngôn ngữ lập trình hiện đạiSửa đổiNhiều ngôn ngữ lập trình hiện đại, nhất là các ngôn ngữ viết cho Windows, thường có cung cấp thêm một số lượng rất lớn các thư viện bao gồm nhiều hàm để hỗ trợ giao diện người dùng và các thiết bị đầu cuối. Giao diện đồ họaSửa đổiCác ngôn ngữ chuẩn thường không đề cập tới sự cung cấp thư viện giúp cho việc thiết lập giao diện đồ họa (graphic interface). Nhưng hầu hết trong các ngôn ngữ hiện đại mà nhà sản xuất cung cấp cho các hệ điều hành đều có thêm thư viện các hàm và các biến toàn cục có thể dùng để nhanh chóng viết mã có giao diện phù hợp. Ví dụ như GDK (cho Linux), Java (cho mọi hệ), Visual C/C++/C# (cho Windows),... Và các thư viện này ngày nay đã trở thành các thành tố không thể thiếu cho người lập trình.Điều khiển theo sự kiệnSửa đổiTương tự trên, triết lý đằng sau của việc điều khiển theo sự kiện là để hỗ trợ cho việc đồng bộ sử dụng cùng lúc nhiều thiết bị đầu cuối như là chuột, bàn phím, máy in,... Việc nhận một mệnh lệnh từ chuột hay từ bàn phím phải được lập tức đồng bộ và thay đổi giao diện tức thời để cập nhật hoá. Thời gian thựcSửa đổiBản thân một ngôn ngữ sẽ không nói rõ là có hỗ trợ cho tính năng này hay không. Phản ứng và cập nhật dữ liệu theo thời gian thực là một hướng phát triển nhằm đáp ứng các nhu cầu đồng bộ hoá nhanh dữ liệu mà chúng có thể chia sẻ cho nhiều nơi hay là để thỏa mãn nhu cầu cần thiết đồng bộ hóa dữ liệu của các dịch vụ (ngân hàng, hàng không và quân sự chẳng hạn). Hỗ trợ hệ điều hànhSửa đổiNgoài các hỗ trợ cho các giao diện thì ngày nay hầu hết các hệ điều hành (Linux/UNIX, Netware và Windows) đều có khả năng đa luồng (multithreading) hay đa nhiệm (multitasking). Những khả năng này nâng cao hiệu quả của máy tính. Các ngôn ngữ, do đó thường có thêm các hàm, thủ tục hay các biến cho phép người lập trình tận dụng chúng. Việc viết mã cho kiến trúc đa luồng và đa nhiệm không đơn giản như viết mã cho các hệ thống thông thường. Người lập trình ngoài kỹ năng viết mã, còn phải luyện tập cách xử lý và đồng bộ nhiều thao tác được thi hành đồng thời trong một chương trình mà không gây ra ách tắc hay vi phạm các nguyên tắc quản lý bộ nhớ hay các quy tắc lập trình theo đa luồng hay đa nhiệm. Lưu ý: Hầu hết các hệ điều hành hỗ trợ kiến trúc đa luồng hay đa nhiệm đều có khả năng thực thi những chương trình được tạo ra từ mã viết theo kiểu thông thường mà không đá động tới các chức năng đa luồng hay đa nhiệm. Điểm khác nhau là khi không dùng tới các ưu điểm đa luồng hay đa nhiệm thì chương trình đó sẽ không tận dụng được ưu thế phần cứng và phần mềm hỗ trợ (thường thì chương trình đó chạy chậm hơn) Phương ngữ và hiện thựcSửa đổiMột phương ngữ (tiếng Anh: dialect) của một ngôn ngữ lập trình hay ngôn ngữ trao đổi dữ liệu là một biến thể (tương đổi nhỏ) hay phần mở rộng của ngôn ngữ đó mà không làm thay đổi bản chất bên trong của nó. Lịch sửSửa đổiBài chi tiết: Lịch sử các ngôn ngữ lập trình
Xem thêmSửa đổi
Chỉ dẫnSửa đổiTham khảoSửa đổi
Nguồn tham khảoSửa đổi
Đọc thêmSửa đổi
Liên kết ngoàiSửa đổi |