✨Comment (lập trình máy tính)

Comment (lập trình máy tính)

thumb|Minh họa mã nguồn [[Java (programming language)|Java với comment mở đầu được biểu thị bằng màu đỏ và comment nội dòng bằng màu lục. Mã chương trình là bằng màu lam.]]Trong lập trình máy tính, comment là phần giải thích, chú thích hay chú giải mà lập trình viên có thể đọc được trong mã nguồn của một chương trình máy tính. Chúng được thêm vào với mục đích là làm cho mã nguồn dễ hiểu hơn cho con người, và nói chung trình biên dịch và trình thông dịch đều bỏ qua chúng. Cú pháp của comment trong nhiều loại ngôn ngữ lập trình thì đều có sự khác nhau rõ rệt.

Comment đôi khi được xử lý bằng nhiều cách khác nhau để tạo sinh tài liệu ra bên ngoài bản thân mã nguồn bằng các trình tạo sinh tài liệu, hoặc được sử dụng cho việc tích hợp với hệ quản lý mã nguồn và các loại công cụ lập trình bên ngoài khác.

Do có tính linh hoạt nên comment có thể được sử dụng theo nhiều lối đa dạng khác nhau, nhưng thường thì các hướng dẫn phong cách lập trình lại có những quy ước chính quy riêng cho comment.

Tổng quan

Comment hay được định dạng thành comment khối (còn được gọi là comment mở đầu hay comment luồng) hoặc được định dạng thành comment dòng (còn được gọi là comment nội dòng).

Comment khối thì phân định một vùng mã nguồn có thể trải ra nhiều dòng, hoặc là phân định một phần của một dòng đơn. Vùng này được chỉ định bằng một dấu định giới bắt đầu và một dấu định giới kết thúc. Một số ngôn ngữ lập trình (như MATLAB) cho chép comment khối được lồng đệ quy vào trong các comment khối khác, nhưng những ngôn ngữ khác (như Java) thì lại không.

Comment dòng thì bắt đầu bằng một dấu định giới comment và tiếp tục cho đến hết dòng, hoặc trong một số tình huống thì bắt đầu tại một cột nhất định (dịch sâu vào trong dòng ký tự) trong mã nguồn, và tiếp tục cho đến hết dòng. Có nhiều cách khác nhau để viết comment và nhiều người viết comment đều đưa ra những đề xuất mâu thuẫn nhau.''
(Code tệ thì viết lại chứ đừng chú giải cho nó.)

: "Good comments don't repeat the code or explain it. They clarify its intent. Comments should explain, at a higher level of abstraction than the code, what you're trying to do."
(Comment tốt là comment không lặp lại code hoặc giải thích lại code, comment tốt là comment làm rõ ý định của code. Comment nên giải thích ra những gì mà mình đang muốn làm ở một mức độ trừu tượng cao hơn bản thân cái code đấy.) Comment cũng có thể được dùng để giải thích lý do vì sao một khối code nào đó lại trông không hợp quy ước hoặc không hợp cách làm tốt nhất. Trong những project có thời gian phát triển rất ngắn, hoặc trong việc sửa bug, thì điều này cực kỳ đúng. Ví dụ:' Second variable dim because of server errors produced when reuse form data. No ' documentation available on server behavior issue, so just coding around it. vtx = server.mappath("local settings")

Mô tả thuật toán

Đôi khi mã nguồn có chứa giải pháp mới mẻ hoặc đáng lưu ý cho vấn đề đặc thù. Trong những trường hợp như vậy, comment có thể chứa phần giải thích về phương pháp đó. Những giải thích như vậy có thể chứa các biểu đồ với các chứng minh toán học hình thức. Việc này làm nên phần giải thích cho code chứ không phải để làm rõ cho ý định của code, những ai có tác vụ bảo trì codebase thì comment giải thích như vậy có thể lại cực kỳ hữu ích. Có lẽ đặc biệt đúng nhất trong trường hợp ở những lĩnh vực có vấn đề mang tính đặc thù cao; hay những phép tối ưu hóa, những kiến tạo hoặc những lời gọi hàm hiếm khi được dùng.

Ví dụ, lập trình viên có thể thêm comment để giải thích tại sao lại lựa chọn sắp xếp chèn thay vì chọn quicksort mặc dù sắp xếp chèn về lý thuyết là chậm hơn. Comment có thể được viết như sau: list = [f (b), f (b), f (c), f (d), f (a), ...]; // Chỗ này cần thuật toán 'sắp xếp ổn định', code chạy chậm cũng không sao. insertion_sort (list);

Bao chứa tài nguyên

Người ta có thể chèn logo, biểu đồ, lưu đồ với cấu trúc tranh ASCII vào mã nguồn theo định dạng comment. Hơn nữa, người ta còn có thể đính yết thị bản quyền vào làm comment bên trong mã nguồn. Dữ liệu nhị phân cũng có thể được biên mã thành dạng văn bản vào trong comment qua một quá trình gọi là biên mã nhị phân sang văn bản, có điều lối làm như vậy thì không phổ biến và thường hay được chuyển ra file tài nguyên bên ngoài hơn.

Đoạn code sau đây là một biểu đồ ASCII đơn giản miêu tả quy trình xử lý cho một script quản trị hệ thống được chứa trong một Windows Script File chạy dưới Windows Script Host. Mặc dù được định dạng trông như comment, phần biểu đồ đây thực ra là nằm trong phần CDATA của XML, phần này về mặc kĩ thuật thì không phải là comment, nhưng có thể dùng cho mục đích tương tự.

ClientApp (async_run, batch_process) | | V mru.ini (mru_history) ]]> Mặc dù có thể dễ dàng viết một biểu đồ giống hệt vậy ở dạng comment chuẩn của XML, thì ví dụ đây vẫn minh họa một trường hợp mà lập trình viên có thể chọn hướng không sử dụng comment làm phương pháp bao chứa tài nguyên trong mã nguồn. Ví dụ như chèn vị trí để tự động bao kèm tập tin header, chèn lệnh để thiết đặt chế độ tô màu cú pháp cho tập tin, hay lưu trữ 'số hiệu bản chỉnh sửa' của tập tin. Những comment điều khiển chức năng đấy còn hay được gọi là chú thích. Việc kèm tài liệu ngay bên trong comment của mã nguồn thì được coi là một cách để đơn giản hóa quá trình tạo tài liệu, cũng như đảm bảo phần tài liệu sẽ luôn được cập nhận đồng bộ với thay đổi trong code.

Ví dụ trình tạo sinh tài liệu thì bao gồm những chương trình như Javadoc để dùng cho Java; Ddoc cho D Doxygen cho C, C++, Java, IDL Visual Expert cho PL/SQL, Transact-SQL, PowerBuilder và PHPDoc cho PHP. Python, Lisp, Elixir, và Clojure thì còn hỗ trợ các dạng docstring nữa.

C#, F# với Visual Basic .NET thực hiện một tính năng tương tự được gọi là "XML Comments", IntelliSense sử dụng những comment đó để tạo sinh tài liệu hướng dẫn cho từng lớp, từng phương thức, v.v. nhằm gợi ý cú pháp cho lập trình viên.

Mở rộng cú pháp

Có những thành phần cú pháp vốn dĩ chỉ được trù định làm comment bình thường thì thỉnh thoảng còn được tái mục đích để truyền tải thông tin bổ sung cho chương trình, chẳng hạn như "comment điều kiện". Những "comment nóng" kiểu như vậy cho dù bị nhiều người coi là giải pháp tạm bợ nhưng đôi khi lại chính là giải pháp thiết thực duy nhất để duy trì tính tương thích ngược.

Chỉ thị

Có trường hợp các ký tự comment bình thường thì được tận dụng để tạo ra chỉ thị đặc biệt dành cho trình soạn thảo hoặc trình biên dịch.

Hai ví dụ comment chỉ thị cho trình thông dịch là:

  • Tổ hợp ký tự "shebang" của Unix – #! – dùng ở dòng đầu tiên của script để chỉ định trình thông dịch nào được sử dụng.
  • "Comment phép" để nhận biết encoding mà file mã nguồn đang sử dụng.

Dưới đây là script dành cho hệ thống kiểu Unix minh họa cho cả hai ví dụ vừa nêu:

!/usr/bin/env python3

-- coding: UTF-8 --

print("Testing")

Kiểu sử dụng comment dưới đây cũng tương tự như vậy, dùng trong C để báo cho trình biên dịch rằng cơ chế "fallthrough" được dùng trong câu lệnh case ở đây là do chủ ý của lập trình viên mà làm chứ không phải do sơ suất: switch (command) { case CMD_SHOW_HELP_AND_EXIT: do_show_help(); /* Fall thru */ case CMD_EXIT: do_exit(); break; case CMD_OTHER: do_other(); break; /* ... etc. ... */ } Việc chèn comment /* Fall thru */ thế này để ra hiệu cho người đọc thì đã là quy ước chung hồi giờ, nhưng vào năm 2017, trình biên dịch gcc bắt đầu nhìn đến những comment này (và những comment khác dùng để ra dấu là lập trình viên chủ ý), và nếu không tìm thấy, thì sẽ thông báo: "warning: this statement may fall through" (cảnh báo: lệnh này có thể "rớt xuyên").

Many editors and IDEs will read specially formatted comments. For example, the "modeline" feature of Vim; which would change its handling of tabs while editing a source with this comment included near the top of the file:

Nhiều trình soạn thảo và IDE cũng đọc những comment có định dạng đặc biệt thế này. Ví dụ, tính năng "modeline" của Vim, dùng để thay đổi cách xử trí phím tab khi chỉnh sửa file mã nguồn mà có đính comment như thế này ở phần đầu của file:

vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4

Xoa dịu stress

Đôi khi lập trình viên sẽ thêm comment như là một cách giải tỏa stress bằng cách bình luận về các công cụ phát triển, các đổi thủ cạnh tranh, chủ lao động, điều kiện làm việc, hoặc về chính chất lượng của code. Có thể dễ dàng thấy được sự hiện diện của hiện tượng này từ các nguồn thông tin trực tuyến có truy vết các từ ngữ thô tục trong mã nguồn.

Quan điểm quy phạm

Có nhiều quan điểm quy phạm khác nhau cùng với những ý kiến lâu đời về chuyện dùng comment sao cho đúng cách trong mã nguồn. Một số trong đó thì mang tính phi chính quy và dựa trên sở thích cá nhân, còn số khác thì được xuất bản hoặc được truyền bá làm hướng dẫn chính quy cho cộng đồng riêng biệt.

Nhu cầu comment

Các chuyên gia không hề có quan điểm cố định về việc liệu có, và khi nào, thích hợp dùng comment trong mã nguồn. Một số thì khẳng định rằng mã nguồn nên có ít comment, trên cơ sở mã nguồn nên có tính tự giải thích hay tự đóng luôn vai trò làm tài liệu.

Giữa những quan điểm đó còn có những lập trường rằng comment bản thân nó chẳng có lợi cũng chẳng có hại, mà viết comment cho chính xác và giữ nó đồng bộ với mã nguồn, và lược bỏ đi nếu nó thừa thãi, không có ích hay gây khó cho bảo trì thì mới là điều đáng nói.

Comment đôi khi được dùng để viết tài liệu cho khế ước trong lối tiếp cận "thiết kế theo khế ước" trong lập trình.

Mức độ chi tiết

Tùy vào đối tượng nhắm đến của code cùng với những cân nhắc khác, mức độ chi tiết và mô tả có thể đổi khác đáng kể.

Ví dụ, comment Java sau đây thì sẽ phù hợp trong bài giới thiệu lập trình cho người mới: String s = "Wikipedia"; / Gán giá trị "Wikipedia" vào biến s. /

Nhưng mức độ chi tiết thế này sẽ lại không thích hợp trong bối cảnh của code sản xuất, hay trong những tình huống khác có sự góp mặt của các lập trình viên có kinh nghiệm. Những dòng comment sơ đẳng như vậy là trái với phương châm: "Comment tốt là comment ... làm rõ ý định của code."

Comment khối

Đoạn code trong C sau đây biểu thị một ví dụ nhỏ cho thấy comment có thể có thay đổi theo nhiều phong cách khác nhau, trong khi vẫn truyền tải cùng một thông tin cơ bản: / Đây là phần thân comment. Biến thể Một. /

/***************************\ * * * Đây là phần thân comment. * * Biến thể Hai. * * * \***************************/ Các yếu tố như sở thích cá nhân, tính linh hoạt của công cụ lập trình, và những cân nhắc khác thì có khuynh hướng làm ảnh hưởng lên các biến thể phong cách được sử dụng trong mã nguồn. Ví dụ, Biến thể Hai kia có thể không phải là lựa chọn ưa thích của một số trong số lập trình viên không có trong tay trình soạn thảo mã nguồn mà có tính năng tự động căn chỉnh và dàn bố cục cho văn bản trong comment.

Allen Holub, cố vấn phần mềm và là nhà bình luận công nghệ, là một chuyên gia có chủ trương canh chỉnh lề bên trái cho comment: /* Đây là phong cách được Holub khuyên dùng cho C và C++

  • Nó được diễn thị trong Enough Rope, trong quy tắc 29. */ /* Đây là một cách làm khác, cũng là trong C. ** Trong những trình soạn thảo mà không có tự động thụt một khoảng trắng so với ** dòng thứ nhất từ dòng thứ hai đến hết dòng cuối cùng thì cách này dễ hơn. ** Cách này cũng được dùng trong sách của Holub, ở quy tắc 31. */ Việc sử dụng /* với */ làm dấu định giới cho comment khối là kế thừa từ PL/I vào ngôn ngữ lập trình B – tiền thân trực tiếp của ngôn ngữ lập trình C.

Comment dòng

Comment dòng nói chung dùng dấu định giới hoặc chuỗi token nào đó để biểu thị chỗ bắt đầu của comment, và một kí tự 'dòng mới' để biểu thị chỗ kết thúc của comment.

Trong ví dụ này, toàn bộ phần văn bản từ nhóm kí tự ASCII // tới hết dòng đều bị bỏ qua. // ------------------------- // Đây là phần thân comment. // -------------------------

Loại comment như vậy hay bắt đầu từ ngoài cùng bên trái và kéo dài cho cả dòng. Tuy nhiên trong nhiều ngôn ngữ, cũng có thể đặt loại comment này vào chung dòng với dòng lệnh khác, như trong ví dụ Perl sau đây: print $s . "\n"; # Thêm một ký tự 'dòng mới' sau khi in Nếu ngôn ngữ cho phép cả comment dòng và comment khối, nhóm lập trình có thể quyết định ra quy ước sử dụng chúng tùy theo hoàn cảnh: ví dụ, chỉ dùng comment dòng để chú thích những vấn đề nhỏ, và dùng comment khối để mô tả những thứ trừu tượng mức cao hơn.

Tag

Lập trình viên có thể sử dụng các tag phi chính quy trong comment để trợ giúp cho việc lập chỉ mục các vấn đề thường thấy. Sau đó có thể tìm kiếm chúng bằng các công cụ lập trình thông dụng như tiện ích grep của Unix, thậm chí là tô sáng cú pháp cho chúng trong trình soạn thảo văn bản. Đôi khi người ta gọi chúng là "codetag" hoặc "token". Các tag như vậy có quy cách không cố định nhưng có thể bao gồm:

  • BUG – có bug cần phải được sửa.
  • FIXME – cần phải điều chỉnh lại cho đúng.
  • HACK – biểu thị giải pháp theo cách "đi đường vòng" vì không có cách nào hay và tốt hơn.
  • TODO – điều cần phải được giải quyết.
  • NOTE – dùng để làm nổi bật những chỗ cần đặc biệt chú ý vì dễ gây lầm lẫn
  • UNDONE – chỗ code là khôi phục lại của code hồi trước.
  • XXX – cảnh báo cho các lập trình viên khác về chỗ code có vấn đề hoặc code chỉ sai hướng.

Ví dụ

Ada

Ngôn ngữ lập trình Ada sử dụng '--' để biểu thị comment cho đến hết dòng.

Ví dụ: -- the air traffic controller task takes requests for takeoff and landing task type Controller (My_Runway: Runway_Access) is -- task entries for synchronous message passing entry Request_Takeoff (ID: in Airplane_ID; Takeoff: out Runway_Access); entry Request_Approach(ID: in Airplane_ID; Approach: out Runway_Access); end Controller;

APL

APL sử dụng để biểu thị comment cho đến hết dòng.

Ví dụ: ⍝ Now add the numbers: c←a+b ⍝ addition

Trong các phương ngữ mà có kí hiệu nguyên thủy ("left") và ("right"), comment thường hay có thể nằm trong hoặc chia tách các phần lệnh ra, "comment" này là ở dạng giá trị string và sẽ được bỏ qua. d←2×c ⊣'where'⊢ c←a+ 'bound'⊢ b

AppleScript

Đoạn code AppleScript sau đây cho thấy hai phong cách comment được dùng trong ngôn ngữ này: ( This program displays a greeting. ) on greet(myGreeting) display dialog myGreeting & " world!" end greet

-- Show the greeting greet("Hello")

BASIC

Trong đoạn code BASIC kinh điển đời đầu này, từ khóa REM được sử dụng để thêm comment. 10 REM This BASIC program shows the use of the PRINT and GOTO Statements. 15 REM It fills the screen with the phrase "HELLO" 20 PRINT "HELLO" 30 GOTO 20

Trong các ngôn ngữ BASIC sau này của Microsoft, bao gồm QuickBASIC, QBasic, Visual Basic, Visual Basic .NET, và VBScript; và trong thế hệ đời sau như FreeBASIC và Gambas, bất kì văn bản nào trên dòng mà nằm sau kí tự ' (dấu nháy đơn) thì đều được coi là comment.

Một ví dụ trong Visual Basic .NET: Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' The following code is executed when the user ' clicks the button in the program's window. rem comments still exist.

    MessageBox.Show("Hello, World") 'Show a pop-up window with a greeting
End Sub

End Class

C

Đoạn code C này diễn thị việc sử dụng comment mở đầu hay comment khối để mô tả mục đích của câu lệnh điều kiện bên dưới. Comment đấy giải thích các từ ngữ và khái niệm chủ đạo, và bao gồm luôn một chữ kí ngắn của lập trình viên là tác giả của đoạn code này. /*

  • Check if we are over our maximum process limit, but be sure to
  • exclude root. This is needed to make it possible for login and
  • friends to set the per-user process limit to something lower
  • than the amount of processes root is running. -- Rik */ if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur && !capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE)) goto bad_fork_free;Kể từ C99 thì cũng đã có thể sử dụng cú pháp // từ C++, biểu thị comment đơn dòng.

Cấu hình Cisco IOS và IOS-XE

Dấu chấm than (!) có thể được dùng để đánh dấu comment trong chế độ cấu hình của bộ định tuyến Cisco, tuy nhiên các comment như vậy không được lưu vào bộ nhớ điện tĩnh (trong đó chứa startup-config), cũng không hề được hiển thị bằng lệnh "show run".

Nhưng vẫn có thể chèn nội dung chú thích mà thực sự trở thành một phần của cấu hình, và có thể được lưu vào startup-config NVRAM thông qua:

  • Lệnh "description", dùng để thêm mô tả vào cấu hình của giao diện hoặc của BGP lân cận
  • Tham số "name", để thêm lời nhận xét vào một tuyến tĩnh
  • Lệnh "remark" trong danh sách truy cập

! Paste the text below to reroute traffic manually config t int gi0/2 no shut ip route 0.0.0.0 0.0.0.0 gi0/2 name ISP2 no ip route 0.0.0.0 0.0.0.0 gi0/1 name ISP1 int gi0/1 shut exit

ColdFusion

ColdFusion sử dụng comment tương tự như comment của HTML, nhưng thay vì hai dấu nối thì nó dùng ba dấu nối. ColdFusion engine sẽ tự động bỏ qua và không in các comment này lên trình duyệt.

Hello World

Fortran IV

Đoạn code Fortran IV này diễn thị cách comment được dùng trong ngôn ngữ đấy (một ngôn ngữ rất thiên về cột văn bản). Chữ cái "C" trong cột 1 khiến toàn bộ dòng được coi là comment. C C Dòng bắt đầu bằng 'C' (trong cột 'comment' tức cột đầu tiên) thì là comment C WRITE (6,610) 610 FORMAT(12H HELLO WORLD) END

Lưu ý rằng các cột của một dòng thì ngoài ra được coi như bốn trường: 1 tới 5 là trường nhãn, 6 khiến cho dòng trở thành phần tiếp tục của lệnh trước đó; còn khai báo và các lệnh thì ở từ 7 đến 72.

Fortran 90

Đoạn code Fortran này diễn thị cách comment được dùng trong ngôn ngữ đấy, nội dung comment ở đây mô tả luôn quy tắc định dạng cơ bản. ! ! Mọi kí tự sau dấu chấm than đều được coi là comment ! program comment_test print '(A)', 'Hello world' ! Fortran 90 hỗ trợ thêm comment nội dòng. end program

Haskell

Comment dòng trong Haskell bắt đầu bằng '--' (hai dấu nối) cho đến hết dòng, và comment nhiều dòng thì bắt đầu bằng '{-' và kết thúc bằng '-}'. {- đây là comment trên nhiều dòng -} -- còn đây là comment một dòng putStrLn "Wikipedia" -- đây cũng là comment một dòng

Haskell cũng cung cấp phương pháp lập trình văn chương để comment, có tên là "Phong cách Bird". Trong đó mọi dòng bắt đầu bằng > thì được coi là code, mọi thứ còn lại thì được coi là comment. Một yêu cầu bổ sung là lập trình viên phải luôn để lại một dòng trắng đằng trước và đằng sau khối code: Trong Phong cách Bird, bạn phải để lại một dòng trắng đằng trước code.

fact :: Integer -> Integer fact 0 = 1 fact (n+1) = (n+1) * fact n

Và bạn cũng phải để lại một dòng trắng đằng sau code nữa.

Literate programming can also be done in Haskell, using LaTeX. The code environment can be used instead of the Richard Bird's style: In LaTeX style this is equivalent to the above example, the code environment could be defined in the LaTeX preamble. Here is a simple definition:

Cũng có thể làm thế trong Haskell bằng LaTeX. Môi trường code có thể được định nghĩa trong phần tiền ngôn LaTeX. Dưới đây là định nghĩa đơn giản: \usepackage{verbatim} \newenvironment{code}{\verbatim}{\endverbatim}

sau đó trong % the LaTeX source file The \verb|fact n| function call computes $n!$ if $n\ge 0$, here is a definition:\\ \begin{code} fact :: Integer -> Integer fact 0 = 1 fact (n+1) = (n+1) * fact n \end{code} Here more explanation using \LaTeX{} markup

Java

Đoạn code Java này cho thấy một comment khối được dùng để mô tả cho phương thức setToolTipText. Cách định dạng ở đây là theo đúng với tiêu chuẩn Javadoc của Sun Microsystems. Comment này được thiết kế để cho bộ xử lý Javadoc đọc. /**

  • This is a block comment in Java.
  • The setToolTipText method registers the text to display in a tool tip.
  • The text is displayed when the cursor lingers over the component.
  • @param text The string to be displayed. If 'text' is null,
  • the tool tip is turned off for this component. */ public void setToolTipText(String text) { // This is an inline comment in Java. TODO: Write code for this method. }

JavaScript

JavaScript sử dụng // đặt trước comment và / / để tạo comment nhiều dòng. // Comment JavaScript một dòng đơn var iNum = 100; var iTwo = 2; // Comment ở cuối dòng / comment JavaScript nhiều dòng /

Lua

Ngôn ngữ lập trình Lua sử dụng dấu nối đôi -- cho comment một dòng theo cách tương tự với các ngôn ngữ Ada, Eiffel, Haskell, SQL và VHDL. Lua cũng có comment khối bắt đầu bằng -- và chạy cho đến đóng lại.

Ví dụ: --[[ Comment dài nhiều dòng ]] print(20) -- in kết quả

Kỷ thuật thông dụng để comment out một đoạn code là bao bọc code giữa ----, như sau: --[[ print(10) --]] -- no action (commented out) Trong trường hợp này, có thể kích hoạt lại code bằng cách thêm một dấu nối đơn vào dòng đầu tiên: ---[[ print(10) --]] --> 10 Trong ví dụ đầu tiên, --[[ ở dòng đầu tiên là bắt đầu một comment dài, và hai dấu nối ở dòng cuối vẫn ở bên trong comment đó. Trong ví dụ thứ ba, chuỗi ---[[ bắt đầu một comment một dòng đơn thông thường. Trong trường hợp này, lệnh print nằm ở ngoài comment và dòng cuối cùng trở thành comment độc lập vì nó bắt đầu bằng --.

MATLAB

Trong ngôn ngữ lập trình của MATLAB, kí tự '%' biểu thị comment một dòng. Comment nhiều dòng thì được biểu thị thông qua %{ và %} và có thể lồng vào nhau, ví dụ: % These are the derivatives for each term d = [0 -1 0];

%{ %{ (Example of a nested comment, indentation is for cosmetics (and ignored).) %} We form the sequence, following the Taylor formula. Note that we're operating on a vector. %} seq = d .* (x - c).^n ./(factorial(n))

% We add-up to get the Taylor approximation approx = sum(seq)

Nim

Nim sử dụng kí tự '#' cho comment nội dòng. Comment khối nhiều dòng mở đầu bằng '#[' và đóng lại bằng ']#', có thể lồng vào nhau.

Nim cũng có comment tài liệu trong đó sử dụng cú pháp đánh dấu pha trộn Markdown và ReStructuredText. Comment tài liệu nội dòng thì dùng '##' còn comment tài liệu khối nhiều dòng thì mở đầu bằng '##[' và đóng lại bằng ']##'. Trình biên dịch có thể tạo sinh ra tài liệu HTML, LaTeX và JSON từ comment tài liệu. Comment tài liệu là một phần của cây cú pháp trừu tượng và có thể được trích xuất bằng macro.

Tài liệu cho module ReSTructuredTextMarkDown

Đây là comment, nhưng không phải là comment tài liệu

type Kitten = object ## Tài liệu cho kiểu age: int ## Tài liệu cho trường

proc purr(self: Kitten) =

Tài liệu cho hàm

echo "Purr Purr" # Đây là comment, nhưng không phải là comment tài liệu

Đây là comment, nhưng không phải là comment tài liệu

OCaml

OCaml sử dụng comment có thể lồng nhau, có tính hữu ích khi đánh dấu comment cho khối code. codeLine( comment mức 1(comment mức 2))

Pascal

Trong họ ngôn ngữ Pascal của Niklaus Wirth (bao gồm Modula-2 and Oberon), comment được mở đầu bằng '(' và hoàn tất bằng ')'. Ví dụ: ( test diagonals ) columnDifference := testColumn - column; if (row + columnDifference = testRow) or .......

Trong các phương ngữ hiện đại của Pascal, '{' và '}' được dùng thay thế.

Perl

Comment dòng trong Perl và nhiều ngôn ngữ kịch bản khác thì bắt đầu bằng một kí hiệu dấu thăng (#).

A simple example

my $s = "Wikipedia"; # Sets the variable s to "Wikipedia". print $s . "\n"; # Add a newline character after printing

Instead of a regular block commenting construct, Perl uses Plain Old Documentation, a markup language for literate programming, for instance:

Thay vì kết cấu comment khối bình thường, Perl sử dụng Plain Old Documentation, một ngôn ngữ đánh dấu cho lập trình văn chương,

Nó bắt đầu bằng một kí tự dấu thăng, rồi một kí tự backtick theo sau, và sau đó là một số kí tự dấu ngoặc mở đầu, rồi kết thúc bằng kí tự dấu ngoặc đóng tương ứng. Chuỗi văn bản literal có thể được dùng cho mục đích tương tự, nhưng trình thông dịch không bỏ qua nó giống như comment dấu "#".

MySQL cũng hỗ trợ comment từ kí tự thăng (#) cho đến hết dòng.

Swift

Comment một dòng bắt đầu bằng hai dấu xiên tới (//): // Đây là comment.

Comment nhiều dòng bắt đầu bằng dấu xiên tới kèm với dấu hoa thị theo sau (/*), và kết thúc bằng dấu hoa thị kèm với dấu xiên tới (*/): /* Đây cũng là comment nhưng được viết ra nhiều dòng. */ Comment nhiều dòng trong Swift có thể được lồng vào các comment nhiều dòng khác. Lập trình viên viết comment lồng nhau bằng cách bắt đầu một khối comment nhiều dòng, rồi bắt đầu một comment nhiều dòng thứ hai bên trong khối đầu tiên. Rồi khối thứ hai được đóng lại, theo sau là quay lại phần của khối thứ nhất: /* Đây là bắt đầu của comment nhiều dòng thứ nhất. /* Đây là comment nhiều dòng thứ hai được lồng vào. */ Đây là kết thúc của comment nhiều dòng thứ nhất. */

XML (hoặc HTML)

Comment trong XML (hoặc HTML) bắt đầu bằng . Ví dụ:

Để tương thích với SGML, chuỗi "--" không được cho phép bên trong comment.
👁️ 3 | 🔗 | 💖 | ✨ | 🌍 | ⌚
thumb|Minh họa mã nguồn [[Java (programming language)|Java với comment **mở đầu** được biểu thị bằng màu **đỏ** và comment **nội dòng** bằng màu **lục**. **Mã chương trình** là bằng màu **lam**.]]Trong lập
phải|nhỏ|402x402px|[[Mã nguồn của một chương trình máy tính đơn giản được viết bằng ngôn ngữ lập trình C. Khi được biên dịch và chạy, nó sẽ cho kết quả "Hello, world!".]] **Ngôn ngữ lập trình**
**Pascal** là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh và thủ tục, được Niklaus Wirth phát triển vào năm 1970. Pascal là ngôn ngữ lập trình đặc biệt thích hợp
**Ruby** là một ngôn ngữ lập trình hướng đối tượng, có khả năng phản ứng. Theo tác giả, Ruby chịu ảnh hưởng bởi Perl, Smalltalk, Eiffel, Ada và Lisp. Ruby cung cấp nhiều mẫu hình
Trong lập trình máy tính, **Hợp ngữ** (hay **assembly**) thường được viết tắt là **asm** là bất kỳ ngôn ngữ lập trình cấp thấp nào có sự tương ứng rất mạnh giữa các tập lệnh
Trong lập trình, **minification** (còn được gọi là **minimisation** hoặc **minimization**) là quá trình loại bỏ các ký tự không cần thiết từ mã nguồn hoặc chương trình thông dịch hoặc ngôn ngữ đánh dấu
Trong lập trình máy tính, đặc biệt là khi sử dụng mô phạm lập trình mệnh lệnh, **assertion** (có thể dịch là **xác quyết**) là một vị ngữ (tức hàm có giá trị Boolean lên
**Novell, Inc** _(phát âm: /nvɛl/)_ là một công ty
**_The Hurt Locker_** (tựa tiếng Việt: **_Chiến dịch sói sa mạc_**) là một bộ phim giật gân chiến tranh năm 2008 của Mỹ, do Kathryn Bigelow đạo diễn và Mark Boal biên kịch. Phim có
MÔ TẢ SẢN PHẨMKích thước máy bay : 15x3x9.5cmKích thước bộ điều khiển :17,5×5.3×20.5cmTrọng lượng : 0,5 KG (gồm cả điều khiển và máy bay)Đạt tiêu chuẩn : DC 817780350 Vật liệu : Nhựa ABSNguồn
**_Mulholland Drive_** (hay cách điệu hóa **_Mulholland Dr._**) là một bộ phim điện ảnh thuộc thể loại neo-noir giật gân, bí ẩn và tâm lý của Mỹ và Pháp ra mắt năm 2001 do David
**Quảng cáo trực tuyến**, còn được gọi là **tiếp thị trực tuyến**, quảng cáo Internet, **quảng cáo** **kỹ thuật số** hoặc **quảng cáo web**, là một hình thức tiếp thị và quảng cáo sử dụng
Một **công dân kỹ thuật số** () là người có kỹ năng sử dụng công nghệ thông tin để giao tiếp với người khác, tham gia vào các hoạt động xã hội, kinh doanh và
**Cherilyn Sarkisian** (sinh ngày 20 tháng 5 năm 1946), thường được biết đến với nghệ danh **Cher** (), là một nữ ca sĩ, diễn viên và nhân vật truyền hình người Mỹ. Thường được giới
**_Carol_** là một bộ phim chính kịch lãng mạn 2015 do Todd Haynes đạo diễn. Kịch bản phim do Phyllis Nagy chắp bút, dựa trên cuốn tiểu thuyết lãng mạn _The Price of Salt_ của
**Tiếp thị nội dung** là một thuật ngữ bao gồm tất cả dạng thức marketing liên quan đến việc tạo và chia sẻ nội dung. Nội dung được tạo ra dùng để hướng khách hàng
**Trao đổi khóa Diffie–Hellman** (**D-H**) là một phương pháp trao đổi khóa được phát minh sớm nhất trong mật mã học. Phương pháp trao đổi khóa Diffie–Hellman cho phép hai bên (người, thực thể giao
**Euripides** () (khoảng 480 – 406 tr CN) là một trong ba nhà kịch vĩ đại của Athena thời Hy Lạp cổ điển, cùng với Aeschylus và Sophocles. Một số học giả cổ đại quy
**_Eastern Boys_** là một bộ phim Pháp năm 2013 được viết và đạo diễn bởi Robin Campillo. Phim được công chiếu tại Liên hoan phim quốc tế Venice lần thứ 70 trong phần Orizzonti và
**Yahoo! 360°** là một dịch vụ mạng xã hội của Yahoo! tương tự như Myspace, Blogger, Cyworld hay Xanga. Yahoo! 360° cung cấp cho người sử dụng những tính năng về mạng xã hội, blog
Nhân loại bước vào thiên niên kỷ mới cùng với những tiến bộ khoa học kỹ thuật đạt đỉnh cao của thời đại công nghệ số. Xung quanh chúng ta đầy đủ các loại đường
nhỏ|René Cassin nhỏ|Đài tưởng niệm René Cassin ở [[Forbach, Pháp]] **René Samuel Cassin** sinh ngày 5.10.1887 tại Bayonne, Pháp – qua đời ngày 20.2.1976 tại Paris, là luật gia, thẩm phán người Pháp và là
**Giao diện đồ họa Borland** (tiếng Anh: **Borland Graphics Interface**, viết tắt **BGI**) là thư viện đồ họa đi kèm với trình biên dịch Borland cho hệ điều hành DOS và các máy tính chạy
là một bộ phim điện ảnh Nhật Bản thuộc thể loại chính kịch ra mắt vào năm 2008 do Takita Yōjirō làm đạo diễn, với sự tham gia diễn xuất của các diễn viên chính
thế=Three running men carrying papers with the labels "Humbug News", "Fake News", and "Cheap Sensation".|nhỏ|275x275px| Các phóng viên với nhiều hình thức "tin giả" từ một minh họa năm 1894 của Frederick Burr Opper **Tin
**Richard Milhous Nixon** (9 tháng 1 năm 191322 tháng 4 năm 1994) là một chính trị gia và luật sư người Mỹ, từng giữ chức tổng thống Hoa Kỳ thứ 37 từ năm 1969 đến
**Tạ Khả Dần** (chữ Hán: 谢可寅, phiên âm: _Xie Keyin_, tên tiếng Anh: _Shaking Chloe_, sinh ngày 04 tháng 01 năm 1997 tại Thành Đô, Tứ Xuyên, Trung Quốc) là một diễn viên, ca sĩ,
Quốc hội Trung Quốc đã bỏ phiếu cho các luật về kiểm duyệt thông tin trên mạng Internet. Với luật này, chính quyền Trung Quốc đã sử dụng nhiều biện pháp khác nhau để thực
## Thời Pháp thuộc Dưới thời thực dân Pháp, báo chí bắt đầu xuất hiện ở Việt Nam và bị người Pháp áp dụng chế độ kiểm duyệt, nhất là với báo chí tiếng Việt.
**Lê Thị Bê La** (sinh ngày 20 tháng 10 năm 1987) Gần 20 năm tham gia diễn xuất, Lê Bê La đã góp mặt trong hơn 40 bộ phim lớn nhỏ và gặt hái được
**Eugen Joseph Weber** (24 tháng 4 năm 1925 ở Bucharest, România – 17 tháng 5 năm 2007 ở Brentwood, Los Angeles, California) là một sử gia người Mỹ gốc România với sự tập trung đặc