En programación de computadoras , un comentario es una explicación o anotación legible por el programador en el código fuente de un programa de computadora . Se agregan con el propósito de hacer que el código fuente sea más fácil de entender para los humanos y, por lo general, los compiladores e intérpretes los ignoran . [1] [2] La sintaxis de los comentarios en varios lenguajes de programación varía considerablemente.
A veces los comentarios también se procesan de diversas maneras para generar documentación externa al propio código fuente mediante generadores de documentación , o se utilizan para la integración con sistemas de gestión de código fuente y otros tipos de herramientas de programación externas .
La flexibilidad que proporcionan los comentarios permite un amplio grado de variabilidad, pero las convenciones formales para su uso suelen formar parte de las guías de estilo de programación .
Los comentarios generalmente tienen el formato de comentarios de bloque (también llamados comentarios de prólogo o comentarios de secuencia ) o comentarios de línea (también llamados comentarios en línea ). [3]
Los comentarios de bloque delimitan una región del código fuente que puede abarcar varias líneas o parte de una sola línea. Esta región se especifica con un delimitador de inicio y un delimitador de final . Algunos lenguajes de programación (como MATLAB ) permiten que los comentarios de bloque se aniden recursivamente unos dentro de otros, pero otros (como Java ) no lo hacen. [4] [5] [6]
Los comentarios de línea comienzan con un delimitador de comentarios y continúan hasta el final de la línea o, en algunos casos, comienzan en una columna específica (desplazamiento de línea de caracteres) en el código fuente y continúan hasta el final de la línea. [6]
Algunos lenguajes de programación emplean comentarios de bloque y de línea con diferentes delimitadores de comentarios. Por ejemplo, C++ tiene comentarios de bloque delimitados por /*
y */
que pueden abarcar varias líneas y comentarios de línea delimitados por //
. Otros idiomas solo admiten un tipo de comentario. Por ejemplo, los comentarios de Ada son comentarios de línea: comienzan --
y continúan hasta el final de la línea. [6]
La mejor manera de utilizar los comentarios está sujeta a controversia; diferentes comentaristas han ofrecido puntos de vista variados y a veces opuestos. [7] [8] Hay muchas formas diferentes de escribir comentarios y muchos comentaristas ofrecen consejos contradictorios. [8]
Los comentarios se pueden utilizar como una forma de pseudocódigo para describir la intención antes de escribir el código real. En este caso, debería explicar la lógica detrás del código en lugar del código en sí.
/* recorre todos los elementos devueltos por el servidor (deben procesarse cronológicamente)*/ for ( i = ( numElementsReturned - 1 ); i >= 0 ; i -- ) { /* procesa los datos de cada elemento */ updatePattern ( i , Elementos devueltos [ i ]); }
Si se deja este tipo de comentario, se simplifica el proceso de revisión al permitir una comparación directa del código con los resultados previstos. Una falacia lógica común es que el código que es fácil de entender hace lo que se supone que debe hacer.
Los comentarios se pueden utilizar para resumir el código o para explicar la intención del programador. Según esta escuela de pensamiento, reformular el código en un inglés sencillo se considera superfluo; la necesidad de volver a explicar el código puede ser una señal de que es demasiado complejo y debe reescribirse, o que el nombre es incorrecto.
Los comentarios también se pueden utilizar para explicar por qué un bloque de código no parece ajustarse a las convenciones o mejores prácticas. Esto es especialmente cierto en el caso de proyectos que implican muy poco tiempo de desarrollo o corrección de errores. Por ejemplo:
' La segunda variable está atenuada debido a errores del servidor producidos al reutilizar los datos del formulario. No hay documentación disponible sobre el problema del comportamiento del servidor, por lo que solo debemos codificarlo. vtx = servidor . mappath ( "configuración local" )
A veces el código fuente contiene una solución novedosa o notable para un problema específico. En tales casos, los comentarios pueden contener una explicación de la metodología. Dichas explicaciones pueden incluir diagramas y pruebas matemáticas formales. Esto puede constituir una explicación del código, más que una clarificación de su intención; pero otros encargados de mantener la base del código pueden encontrar crucial esa explicación. Esto podría ser especialmente cierto en el caso de dominios problemáticos altamente especializados; o optimizaciones, construcciones o llamadas a funciones raramente utilizadas. [11]
Por ejemplo, un programador puede agregar un comentario para explicar por qué se eligió una ordenación por inserción en lugar de una ordenación rápida , ya que la primera es, en teoría, más lenta que la segunda. Esto podría escribirse de la siguiente manera:
lista = [ f ( b ), f ( b ), f ( c ), f ( d ), f ( a ), ... ] ; // Necesita una clasificación estable. Además, el rendimiento realmente no importa. inserción_sort ( lista );
Se pueden insertar logotipos , diagramas y diagramas de flujo que consisten en construcciones artísticas ASCII en el código fuente con formato de comentario. [12] Además, los avisos de derechos de autor pueden incorporarse dentro del código fuente como comentarios. Los datos binarios también se pueden codificar en comentarios mediante un proceso conocido como codificación de binario a texto , aunque esta práctica es poco común y normalmente se relega a archivos de recursos externos.
El siguiente fragmento de código es un diagrama ASCII simple que muestra el flujo de proceso para un script de administración del sistema contenido en un archivo de script de Windows que se ejecuta en Windows Script Host . Aunque una sección que marca el código aparece como un comentario, el diagrama en sí aparece en realidad en una sección CDATA XML , que técnicamente se considera distinta de los comentarios, pero que puede servir para propósitos similares. [13]
<!-- comenzar: wsf_resource_nodes --> <resource id= "ProcessDiagram000" > <![CDATA[ HostApp (Main_process) | V script.wsf (app_cmd) --> ClientApp (async_run, lote_process) | | V mru.ini (mru_history) ]]> </resource>
Aunque este diagrama idéntico podría fácilmente haberse incluido como comentario, el ejemplo ilustra un caso en el que un programador puede optar por no utilizar comentarios como forma de incluir recursos en el código fuente. [13]
Los comentarios en un programa de computadora a menudo almacenan metadatos sobre un archivo de programa.
En particular, muchos mantenedores de software incluyen pautas de envío en los comentarios para ayudar a las personas que leen el código fuente de ese programa a enviar cualquier mejora que realicen al mantenedor.
Otros metadatos incluyen: el nombre del creador de la versión original del archivo del programa y la fecha en que se creó la primera versión, el nombre del responsable actual del programa, los nombres de otras personas que han editado el archivo del programa hasta el momento. , la URL de la documentación sobre cómo utilizar el programa, el nombre de la licencia de software para este archivo de programa, etc.
Cuando un algoritmo en alguna sección del programa se basa en una descripción de un libro u otra referencia, se pueden usar comentarios para dar el número de página y el título del libro o Solicitud de comentarios u otra referencia.
Una práctica común de los desarrolladores es comentar un fragmento de código, es decir, agregar una sintaxis de comentario que hace que ese bloque de código se convierta en un comentario, de modo que no se ejecute en el programa final. Esto se puede hacer para excluir ciertos fragmentos de código del programa final o (más comúnmente) se puede usar para encontrar la fuente de un error. Al comentar sistemáticamente y ejecutar partes del programa, se puede determinar el origen de un error, lo que permite corregirlo.
Muchos IDE permiten agregar o eliminar rápidamente dichos comentarios con opciones de menú únicas o combinaciones de teclas. El programador sólo tiene que marcar la parte del texto que quiere (des)comentar y elegir la opción adecuada.
Las herramientas de programación a veces almacenan documentación y metadatos en comentarios. [14] Estos pueden incluir posiciones de inserción para la inclusión automática del archivo de encabezado, comandos para configurar el modo de resaltado de sintaxis del archivo , [15] o el número de revisión del archivo . [16] Estos comentarios de control funcional también se denominan comúnmente anotaciones . Mantener la documentación dentro de los comentarios del código fuente se considera una forma de simplificar el proceso de documentación, así como de aumentar las posibilidades de que la documentación se mantenga actualizada con los cambios en el código. [17]
Ejemplos de generadores de documentación incluyen los programas Javadoc para usar con Java , Ddoc para D , Doxygen para C , C++ , Java, IDL , Visual Expert para PL/SQL , Transact-SQL , PowerBuilder y PHPDoc para PHP . Las formas de cadena de documentación son compatibles con Python , Lisp , Elixir y Clojure . [18]
C# , F# y Visual Basic .NET implementan una característica similar llamada "Comentarios XML" que IntelliSense lee desde el ensamblado .NET compilado . [19]
Ocasionalmente, los elementos de sintaxis que originalmente estaban destinados a ser comentarios se reutilizan para transmitir información adicional a un programa, como " comentarios condicionales ". Estos "comentarios candentes" pueden ser la única solución práctica que mantiene la compatibilidad con versiones anteriores, pero en general se los considera una chapuza . [20]
Hay casos en los que los caracteres de comentario normales se utilizan para crear una directiva especial para un editor o intérprete.
Dos ejemplos de esto dirigiendo a un intérprete son:
#!
– utilizado en la primera línea de un script para señalar el intérprete que se utilizará.El siguiente script para un sistema tipo Unix muestra ambos usos:
#!/usr/bin/env python3 # -*- codificación: UTF-8 -*- imprimir ( "Prueba" )
Algo similar es el uso de comentarios en C para comunicar a un compilador que una "falla" predeterminada en una declaración de caso se ha realizado deliberadamente:
cambiar ( comando ) { caso CMD_SHOW_HELP_AND_EXIT : do_show_help (); /* Caer a través */ caso CMD_EXIT : hacer_salir (); romper ; caso CMD_OTHER : hacer_otro (); romper ; /* ... etc. ... */ }
Insertar un /* Fall thru */
comentario de este tipo para lectores humanos ya era una convención común, pero en 2017 el compilador gcc comenzó a buscar estos (u otros indicios de intención deliberada) y, si no los encontraba, emitía: "advertencia: esta declaración puede fallar". [23]
Muchos editores e IDE leerán comentarios con formato especial. Por ejemplo, la característica "modeline" de Vim ; lo que cambiaría su manejo de pestañas al editar una fuente con este comentario incluido cerca de la parte superior del archivo:
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4
A veces, los programadores agregan comentarios como una forma de aliviar el estrés comentando sobre herramientas de desarrollo, competidores, empleadores, condiciones laborales o la calidad del código mismo. [24] La aparición de este fenómeno se puede ver fácilmente en los recursos en línea que rastrean las malas palabras en el código fuente. [25]
Existen varios puntos de vista normativos y opiniones de larga data sobre el uso adecuado de los comentarios en el código fuente. [26] [27] Algunos de estos son informales y se basan en preferencias personales, mientras que otros se publican o promulgan como pautas formales para una comunidad en particular. [28]
Los expertos tienen diferentes puntos de vista sobre si los comentarios son apropiados en el código fuente y cuándo. [9] [29] Algunos afirman que el código fuente debe escribirse con pocos comentarios, basándose en que el código fuente debe explicarse por sí mismo o documentarse por sí mismo . [9] Otros sugieren que el código debería comentarse extensamente (no es raro que más del 50% de los caracteres que no son espacios en blanco en el código fuente estén contenidos en comentarios). [30] [31]
Entre estos puntos de vista está la afirmación de que los comentarios no son ni beneficiosos ni perjudiciales por sí mismos, y lo que importa es que sean correctos y estén sincronizados con el código fuente, y que se omitan si son superfluos, excesivos, difíciles de mantener o inútiles. [32] [33]
Los comentarios a veces se utilizan para documentar contratos en el enfoque de programación de diseño por contrato .
Dependiendo del público objetivo del código y otras consideraciones, el nivel de detalle y descripción puede variar considerablemente.
Por ejemplo, el siguiente comentario de Java sería adecuado en un texto introductorio diseñado para enseñar programación inicial:
Cadena s = "Wikipedia" ; /* Asigna el valor "Wikipedia" a la variable s. */
Sin embargo, este nivel de detalle no sería apropiado en el contexto del código de producción u otras situaciones que involucren a desarrolladores experimentados. Descripciones tan rudimentarias son incompatibles con la directriz: "Buenos comentarios... aclaran la intención". [10] Además, para entornos de codificación profesionales, el nivel de detalle normalmente está bien definido para cumplir con un requisito de rendimiento específico definido por las operaciones comerciales. [31]
Hay muchas alternativas estilísticas disponibles al considerar cómo deberían aparecer los comentarios en el código fuente. Para proyectos más grandes que involucran a un equipo de desarrolladores, los estilos de comentarios se acuerdan antes de que comience el proyecto o evolucionan como una cuestión de convención o necesidad a medida que el proyecto crece. Por lo general, los programadores prefieren estilos que sean consistentes, no obstructivos, fáciles de modificar y difíciles de romper. [34]
Los siguientes fragmentos de código en C demuestran sólo un pequeño ejemplo de cómo los comentarios pueden variar estilísticamente, sin dejar de transmitir la misma información básica:
/* Este es el cuerpo del comentario. Variación uno. */
/***************************\ * * * Este es el cuerpo del comentario. * *Variación Dos. * * * \***************************/
Factores como las preferencias personales, la flexibilidad de las herramientas de programación y otras consideraciones tienden a influir en las variantes estilísticas utilizadas en el código fuente. Por ejemplo, la Variación Dos podría no ser preferida entre los programadores que no tienen editores de código fuente que puedan automatizar la alineación y la apariencia visual del texto en los comentarios.
El consultor de software y comentarista de tecnología Allen Holub [35] es un experto que aboga por alinear los bordes izquierdos de los comentarios: [36]
/* Este es el estilo recomendado por Holub para C y C++. *Se demuestra en ''Enough Rope'', en la regla 29. */
/* Esta es otra forma de hacerlo, también en C. ** Es más fácil de hacer en editores que no aplican sangría automáticamente desde la segunda ** hasta la última línea del comentario a un espacio de la primera. **También se usa en el libro de Holub, en la regla 31. */
El uso de /* y */ como delimitadores de comentarios de bloque se heredó de PL/I al lenguaje de programación B, el predecesor inmediato del lenguaje de programación C. [37]
Los comentarios de línea generalmente utilizan un delimitador arbitrario o una secuencia de tokens para indicar el comienzo de un comentario y un carácter de nueva línea para indicar el final de un comentario.
En este ejemplo, se ignora todo el texto desde los caracteres ASCII // hasta el final de la línea.
// ------------------------- // Este es el cuerpo del comentario. // -------------------------
A menudo, un comentario de este tipo tiene que comenzar en el extremo izquierdo y extenderse a toda la línea. Sin embargo, en muchos idiomas, también es posible poner un comentario en línea con una línea de comando para agregarle un comentario, como en este ejemplo de Perl:
imprimir $s . "\n" ; # Agregar un carácter de nueva línea después de imprimir
Si un lenguaje permite tanto comentarios de línea como comentarios de bloque, los equipos de programación pueden decidir una convención para usarlos de manera diferente: por ejemplo, comentarios de línea sólo para comentarios menores y comentarios de bloque para describir abstracciones de nivel superior.
Los programadores pueden utilizar etiquetas informales en los comentarios para ayudar a indexar problemas comunes. Luego es posible buscarlos con herramientas de programación comunes, como la utilidad grep de Unix o incluso resaltar la sintaxis en los editores de texto . A veces se los denomina "etiquetas de código" [38] [39] o "tokens", y las herramientas de desarrollo pueden incluso ayudarle a enumerarlos todos. [40]
Estas etiquetas difieren mucho, pero pueden incluir:
Las convenciones tipográficas para especificar comentarios varían ampliamente. Además, los lenguajes de programación individuales a veces ofrecen variantes únicas.
El lenguaje de programación Ada utiliza '--' para indicar un comentario hasta el final de la línea.
Por ejemplo:
- la tarea del controlador de tránsito aéreo toma solicitudes para el tipo de tarea de despegue y aterrizaje Controlador ( My_Runway : Runway_Access ) es - entradas de tareas para mensajes sincrónicos que pasan la entrada Request_Takeoff ( ID : en Airplane_ID ; Despegue : fuera de Runway_Access ); entrada Request_Approach ( ID : en Airplane_ID ; Approach : fuera Runway_Access ); controlador final ;
APL utiliza ⍝
para indicar un comentario hasta el final de la línea.
Por ejemplo:
⍝ Ahora suma los números: c ← a + b ⍝ suma
En dialectos que tienen las primitivas ⊣
("izquierda") y ⊢
("derecha"), los comentarios a menudo pueden estar dentro de declaraciones o separadas, en forma de cadenas ignoradas:
d ← 2 × c ⊣ 'donde' ⊢ c ← a + 'enlazado' ⊢ b
Esta sección del código AppleScript muestra los dos estilos de comentarios utilizados en ese idioma.
(* Este programa muestra un saludo. *) al saludar ( myGreeting ), muestra el cuadro de diálogo myGreeting & "world!" saludo final - Mostrar el saludo saludar ( "Hola" )
En este clásico fragmento de código BASIC temprano, la palabra clave REM ( "Remark" ) se utiliza para agregar comentarios.
10 REM Este programa BÁSICO muestra el uso de las declaraciones PRINT y GOTO. 15 REM Llena la pantalla con la frase "HOLA" 20 PRINT "HOLA" 30 GOTO 20
En Microsoft BASIC posteriores, incluidos Quick Basic , Q Basic , Visual Basic , Visual Basic .NET y VB Script ; y en descendientes como FreeBASIC y Gambas, cualquier texto en una línea después de un carácter ' (apóstrofe) también se trata como un comentario.
Un ejemplo en Visual Basic .NET:
Clase pública Form1 Sub botón privado1_Click ( remitente como objeto , e como EventArgs ) Maneja el botón1 . Haga clic en ' El siguiente código se ejecuta cuando el usuario ' hace clic en el botón en la ventana del programa. Los comentarios rem todavía existen. Buzon de mensaje . Show ( "Hola, mundo" ) 'Mostrar una ventana emergente con un saludo End Sub End Class
Este fragmento de código C demuestra el uso de un comentario de prólogo o "comentario de bloque" para describir el propósito de una declaración condicional . El comentario explica términos y conceptos clave e incluye una breve firma del programador autor del código.
/* * Verifique si estamos por encima de nuestro límite máximo de procesos, pero asegúrese de * excluir la raíz. Esto es necesario para hacer posible que los usuarios y * amigos establezcan el límite de procesos por usuario en algo menor * que la cantidad de procesos que está ejecutando root. -- Rik */ if ( atomic_read ( & p -> usuario -> procesos ) >= p -> rlim [ RLIMIT_NPROC ]. rlim_cur && ! capaz ( CAP_SYS_ADMIN ) && ! capaz ( CAP_SYS_RESOURCE )) goto bad_fork_free ;
Desde C99, también es posible utilizar la sintaxis // de C++, que indica un comentario de una sola línea.
La disponibilidad de comentarios de bloque permite marcar rupturas estructurales, es decir, violaciones admisibles de la regla de entrada y salida única de la programación estructurada , de forma visible, como en el siguiente ejemplo:
Borde estático edge_any ( Nodo n , Nodo m ) { // Devuelve si hay algún borde entre los nodos $n y $m. Borde e ; for ( e = n -> bordes ; e ; e = e -> siguiente ) { if ( e -> dst == m ) { /*********/ return e ; } } for ( e = m -> bordes ; e ; e = e -> siguiente ) { if ( e -> dst == n ) { /*****/ break ; } } devolver mi ; }
En muchos idiomas que carecen de un comentario de bloque, por ejemplo, awk , puedes usar secuencias de separadores de declaraciones como ;
en su lugar. Pero es imposible en lenguajes que usan sangría como una indicación rígida de la estructura de bloque prevista, como Python .
El signo de exclamación ( ! ) se puede utilizar para marcar comentarios en el modo de configuración de un enrutador Cisco; sin embargo, dichos comentarios no se guardan en la memoria no volátil (que contiene la configuración de inicio), ni se muestran mediante el comando "show run". . [41] [42]
Es posible insertar contenido legible por humanos que en realidad forma parte de la configuración y se puede guardar en la configuración de inicio de NVRAM a través de:
! Pegue el texto a continuación para redirigir el tráfico manualmenteconfiguración tintgi0/2no cerrarruta ip 0.0.0.0 0.0.0.0 gi0/2 nombre ISP2sin ruta ip 0.0.0.0 0.0.0.0 gi0/1 nombre ISP1intgi0/1cerrarsalida
ColdFusion utiliza comentarios similares a los comentarios HTML , pero en lugar de dos guiones, utiliza tres. Estos comentarios son capturados por el motor ColdFusion y no impresos en el navegador.
Estos comentarios se pueden anidar.
<!--- Esto imprime "Hola mundo" en el navegador. <!--- Este es un comentario utilizado dentro del primero. ---> ---> <cfoutput> Hola mundo < br /> </cfoutput>
D utiliza comentarios de estilo C++, así como comentarios multilínea anidados de estilo D, que comienzan con '/+' y terminan con '+/'.
// Este es un comentario de una sola línea. /* Este es un comentario de varias líneas.*/ /+ Este es un /+ anidado +/ comentario +/
Este fragmento de código de Fortran IV demuestra cómo se usan los comentarios en ese lenguaje, que está muy orientado a columnas. Una letra "C" en la columna 1 hace que toda la línea se trate como un comentario.
C C Las líneas que comienzan con 'C' (en la primera columna o 'comentario') son comentarios C ESCRIBIR ( 6 , 610 ) 610 FORMATO ( 12 H HOLA MUNDO ) FIN
Tenga en cuenta que las columnas de una línea se tratan como cuatro campos: del 1 al 5 es el campo de etiqueta, 6 hace que la línea se tome como una continuación de la declaración anterior; y las declaraciones y afirmaciones van del 7 al 72.
Este fragmento de código Fortran demuestra cómo se usan los comentarios en ese idioma, y los comentarios mismos describen las reglas básicas de formato.
!* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ! * Todos los caracteres después de un signo de exclamación se consideran comentarios * !* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * programa comment_test print '( A ) ' , ' Hola mundo' ! Fortran 90 introdujo la opción de comentarios en línea. programa final
Los comentarios de línea en Haskell comienzan con '--' (dos guiones) hasta el final de la línea, y los comentarios de varias líneas comienzan con '{-' y terminan con '-}'.
{- este es un comentario en más líneas -} -- y este es un comentario en una línea putStrLn "Wikipedia" -- este es otro comentario
Haskell también proporciona un método de programación alfabetizado para comentar conocido como "Bird Style". [43] En esto, todas las líneas que comienzan con > se interpretan como código, todo lo demás se considera un comentario. Un requisito adicional es que siempre dejes una línea en blanco antes y después del bloque de código:
En estilo Bird debes dejar un espacio en blanco antes del código.> hecho :: Entero -> Entero > hecho 0 = 1 > hecho ( n + 1 ) = ( n + 1 ) * hecho n Y también debes dejar una línea en blanco después del código.
La programación alfabetizada también se puede realizar en Haskell, utilizando LaTeX . Se puede utilizar el entorno de código en lugar del estilo de Richard Bird: en el estilo LaTeX esto es equivalente al ejemplo anterior, el entorno de código podría definirse en el preámbulo de LaTeX. Aquí hay una definición simple:
\usepackage { textualmente } \newenvironment { código }{ \verbatim }{ \endverbatim }
más tarde
% el archivo fuente LaTeX
El \verbo |fact n| la llamada a función calcula $ n ! $ si $ n \ge 0 $ , aquí hay una definición: \\ \begin { code } fact :: Entero -> Entero fact 0 = 1 fact ( n + 1 ) = ( n + 1 ) * fact n \end { código }
Aquí más explicaciones usando el marcado \LaTeX {}
Este fragmento de código Java muestra un comentario de bloque utilizado para describir el setToolTipText
método. El formato es coherente con los estándares Javadoc de Sun Microsystems . El comentario está diseñado para ser leído por el procesador Javadoc.
/** * Este es un comentario de bloque en Java. * El método setToolTipText registra el texto para mostrar en una información sobre herramientas. * El texto se muestra cuando el cursor permanece sobre el componente. * * @param text La cadena que se mostrará. Si 'texto' es nulo, * la información sobre herramientas está desactivada para este componente. */ public void setToolTipText ( String text ) { // Este es un comentario en línea en Java. TODO: Escribe código para este método. }
JavaScript usa // para preceder a los comentarios y /* */ para comentarios de varias líneas.
// Un comentario de JavaScript de una sola línea var iNum = 100 ; var iDos = 2 ; // Un comentario al final de la línea /* comentario JavaScript de varias líneas */
El lenguaje de programación Lua utiliza guiones dobles --
para comentarios de una sola línea de manera similar a los lenguajes Ada , Eiffel , Haskell , SQL y VHDL . Lua también tiene comentarios en bloque, que comienzan --[[
y continúan hasta un cierre.]]
Por ejemplo:
--[[Un comentario largo de varias líneas ]] print ( 20 ) -- imprime el resultado
Una técnica común para comentar un fragmento de código, [44] es encerrar el código entre --[[
y --]]
, como se muestra a continuación:
--[[ print(10) --]] -- ninguna acción (comentado)
En este caso, es posible reactivar el código agregando un guión único a la primera línea:
---[[ imprimir ( 10 ) --]] --> 10
En el primer ejemplo, --[[
en la primera línea comienza un comentario largo y los dos guiones de la última línea todavía están dentro de ese comentario. En el segundo ejemplo, la secuencia ---[[
comienza con un comentario normal de una sola línea, de modo que la primera y la última línea se convierten en comentarios independientes. En este caso, los print
comentarios están fuera. En este caso, la última línea se convierte en un comentario independiente, ya que comienza con --
.
Los comentarios largos en Lua pueden ser más complejos que estos, como puedes leer en la sección llamada "Cadenas largas" cf Programación en Lua .
En el lenguaje de programación MATLAB , el carácter '%' indica un comentario de una sola línea. Los comentarios de varias líneas también están disponibles entre corchetes %{ y %} y se pueden anidar, por ejemplo
% Estas son las derivadas de cada término d = [ 0 - 1 0 ]; %{ %{ (Ejemplo de comentario anidado, la sangría es para cosmética (y se ignora).) % } Formamos la secuencia , siguiendo la fórmula de Taylor . Tenga en cuenta que estamos operando con un vector . %} seq = d .* ( x - c ) .^ n ./ ( factorial ( n )) % Sumamos para obtener la aproximación de Taylor approx = suma ( seq )
Nim usa el carácter '#' para comentarios en línea. Los comentarios de bloque de varias líneas se abren con '#[' y se cierran con ']#'. Se pueden anidar comentarios de bloques de varias líneas.
Nim también tiene comentarios de documentación que utilizan marcas mixtas de Markdown y ReStructuredText . Los comentarios de la documentación en línea usan '##' y los comentarios de la documentación en bloque de varias líneas se abren con '##[' y se cierran con ']##'. El compilador puede generar documentación HTML , LaTeX y JSON a partir de los comentarios de la documentación. Los comentarios de la documentación son parte del árbol de sintaxis abstracta y se pueden extraer mediante macros. [45]
## Documentación del módulo *ReSTructuredText* y **MarkDown** # Este es un comentario, pero no es un comentario de documentación.tipo Gatito = objeto ## Documentación de tipo edad : int ## Documentación de campo proc purr ( self : Kitten ) = ## Documentación de la función echo "Purr Purr" # Este es un comentario, pero no es un comentario de documentación. # Este es un comentario, pero no es un comentario de documentación.
OCaml utiliza comentarios anidables, lo cual resulta útil al comentar un bloque de código.
codeLine (* nivel de comentario 1(*nivel de comentario 2*)*)
En Pascal y Delphi , los comentarios están delimitados por '{... }'. Las líneas de comentarios también pueden comenzar con '\\'. Como alternativa, para computadoras que no admiten estos caracteres, se permite '(* ... *)'. [46]
En la familia de lenguajes más moderna de Niklaus Wirth (incluidos Modula-2 y Oberon ), los comentarios están delimitados por '(* ... *)'. [47] [48]
Por ejemplo:
(* diagonales de prueba *) diferenciacolumna := pruebaColumna - columna ; si ( fila + diferenciacolumna = filaprueba ) o .......
Los comentarios se pueden anidar. // se puede incluir en un {} y {} se puede incluir en un (**).
Los comentarios de línea en Perl y muchos otros lenguajes de programación comienzan con un símbolo de almohadilla (#).
# Un ejemplo sencillo # my $s = "Wikipedia" ; # Establece la variable s en "Wikipedia". imprimir $s . "\n" ; # Agregar un carácter de nueva línea después de imprimir
En lugar de una construcción de comentarios de bloque normal, Perl utiliza Plain Old Documentation , un lenguaje de marcado para programación alfabetizada , [49] por ejemplo: [50]
=elemento Pod::List-E<gt>nuevo()Crea un nuevo objeto de lista. Las propiedades se pueden especificar mediante una referencia hash como esta: mi $lista = Pod::List->new({ -start => $., -indent => 4 });Consulte los métodos/propiedades individuales para obtener más detalles.= cortarsub nuevo { mi $this = cambio ; mi $clase = ref ( $this ) || $esto ; mis %params = @_ ; mi $self = { %params }; bendito $self , $class ; $self -> inicializar (); devolver $ uno mismo ; }
R solo admite comentarios en línea iniciados con el carácter almohadilla (#).
# Este es un comentario print ( "Esto no es un comentario" ) # Este es otro comentario
Raku (anteriormente llamado Perl 6) usa los mismos comentarios de línea y comentarios de documentación POD que Perl normal (consulte la sección Perl anterior), pero agrega un tipo de comentario de bloque configurable: "comentarios multilínea/incrustados". [51]
Estos comienzan con un carácter de almohadilla, seguido de una comilla invertida, y luego un carácter entre corchetes de apertura, y terminan con el carácter entre corchetes de cierre correspondiente. [51] El contenido no sólo puede abarcar varias líneas, sino que también puede incrustarse en línea.
#`{{ "comentando" esta versión toggle-case(Str:D $s)Alterna entre mayúsculas y minúsculas de cada carácter en una cadena: my Str $toggled-string = toggle-case("¡MI NOMBRE ES MICHAEL!");}}sub toggle-case ( Str:D $s ) #`(esta versión de parens se usa ahora) { ...}
Los comentarios en PHP pueden estar en estilo C++ (tanto en línea como en bloque) o usar hashes. PHPDoc es un estilo adaptado de Javadoc y es un estándar común para documentar código PHP.
A partir de PHP 8, el signo # solo puede significar un comentario si no va seguido inmediatamente de '['. De lo contrario, significará un atributo de función, que se ejecuta hasta ']':
/** * Esta clase contiene una documentación de muestra. * * @author Desconocido */ #[ Atributo ] clase MiAtributo { const VALOR = 'valor' ; // Este es un comentario en línea. Comienza con '//', como en C++. valor $ privado ; # Este es un comentario en línea de estilo Unix, que comienza con '#'. función pública __construct ( $valor = nulo ) { $this -> valor = $valor ; } /* Este es un comentario de varias líneas. Estos comentarios no se pueden anidar. */}
Comentarios en Windows PowerShell
# Comentario de una sola línea Write-Host "¡Hola mundo!"<# Comentario de varias líneas #>Write-Host "¡Adiós mundo!"
Los comentarios en línea en Python usan el carácter almohadilla (#), como en los dos ejemplos de este código:
# Este programa imprime "Hola mundo" en la impresión de pantalla ( "¡Hola mundo!" ) # Tenga en cuenta la nueva sintaxis
Los comentarios de bloque, tal como se definen en este artículo, técnicamente no existen en Python. [52] Se puede utilizar un literal de cadena simple representado por una cadena entre comillas triples, [53] pero el intérprete no lo ignora de la misma manera que lo hace el comentario "#". [52] En los ejemplos siguientes, las cadenas entre comillas dobles triples actúan de esta manera como comentarios, pero también se tratan como cadenas de documentación :
""" Suponiendo que se trata del archivo mymodule.py, entonces esta cadena, al ser la primera declaración en el archivo, se convertirá en la cadena de documentación del módulo "mymodule" cuando se importe el archivo. """clase MiClase : """La cadena de documentación de la clase""" def my_method ( self ): """La cadena de documentación del método""" def my_function (): """La cadena de documentación de la función"""
Los comentarios en línea en Ruby comienzan con el carácter #.
Para crear un comentario de varias líneas, se debe colocar "=begin" al comienzo de una línea, y luego se ignora todo hasta "=end" que comienza una línea. Incluir un espacio después del signo igual en este caso genera un error de sintaxis.
pone "Esto no es un comentario" # este es un comentariopone "Esto no es un comentario" =comenzarlo que sea que vaya en estas lineases solo para el lector humano=finpone "Esto no es un comentario"
Los comentarios estándar en SQL están en formato de una sola línea y utilizan dos guiones:
- Este es un comentario de una sola línea , seguido de una segunda línea SELECCIONE CONTAR ( * ) DE Autores DONDE Autores . nombre = 'Smith' ; -- Nota: sólo queremos 'smith' -- este comentario aparece después del código SQL
Alternativamente, Transact-SQL , MySQL , SQLite , PostgreSQL y Oracle admiten una sintaxis de formato de comentario idéntica al estilo de "comentario de bloque" utilizado en la sintaxis de C y Java . [54] [55] [56] [57] [58]
MySQL también admite comentarios desde el carácter almohadilla (#) hasta el final de la línea.
Los comentarios de una sola línea comienzan con dos barras diagonales (//):
// Este es un comentario.
Los comentarios de varias líneas comienzan con una barra diagonal seguida de un asterisco (/*) y terminan con un asterisco seguido de una barra diagonal (*/):
/* Esto también es un comentario pero está escrito en varias líneas. */
Los comentarios de varias líneas en Swift se pueden anidar dentro de otros comentarios de varias líneas. Para escribir comentarios anidados, inicie un bloque de comentarios de varias líneas y luego inicie un segundo comentario de varias líneas dentro del primer bloque. A continuación se cierra el segundo bloque, seguido del primero:
/* Este es el comienzo del primer comentario multilínea. /* Este es el segundo comentario multilínea anidado. */ Este es el final del primer comentario de varias líneas. */
Los comentarios en XML (o HTML) se introducen con
< !--
y puede extenderse en varias líneas hasta el terminador,
-->
Por ejemplo,
<!-- seleccione el contexto aquí --> <param name= "context" value= "public" />
Por compatibilidad con SGML , la cadena "--" (guión doble) no está permitida dentro de los comentarios.
En los idiomas interpretados, los comentarios son visibles para el usuario final del programa. En algunos casos, como las secciones de código que están "comentadas", esto puede presentar una vulnerabilidad de seguridad . [59]
Las comillas triples se tratan como cadenas normales, con la excepción de que pueden abarcar varias líneas.
Por cadenas regulares quiero decir que si no están asignadas a una variable, serán recolectadas inmediatamente como basura tan pronto como se ejecute el código.
por lo tanto, el intérprete no los ignora de la misma manera que #un comentario.