Articulo de referencia

Comentario (programación informática)

Código fuente Java con comentarios de bloque en rojo , comentarios de línea en verde y código del programa en azul . En programación informática , un comentario es un texto incr...

Código fuente Java con comentarios de bloque en rojo , comentarios de línea en verde y código del programa en azul .

En programación informática , un comentario es un texto incrustado en el código fuente que un traductor ( compilador o intérprete ) ignora. Generalmente, un comentario es una anotación destinada a facilitar la comprensión del código por parte del programador , a menudo explicando un aspecto que no es evidente en el código del programa (sin comentarios). [ 1 ] En este artículo, el término comentario se refiere al mismo concepto en un lenguaje de programación , un lenguaje de marcado , un archivo de configuración y cualquier contexto similar. [ 2 ] Algunas herramientas de desarrollo , además de un traductor de código fuente, analizan los comentarios para proporcionar funcionalidades como la generación de documentación de API , el análisis estático y la integración con el control de versiones . La sintaxis de los comentarios varía según el lenguaje de programación, pero existen patrones sintácticos recurrentes entre los lenguajes, así como aspectos similares relacionados con el contenido de los comentarios.

La flexibilidad que brindan los comentarios permite una amplia variabilidad en el estilo del contenido. Para promover la uniformidad, las convenciones de estilo suelen formar parte de una guía de estilo de programación . Sin embargo, las mejores prácticas son objeto de debate y contradictorias. [ 3 ] [ 4 ]

Atributos comunes

La compatibilidad con comentarios en el código la define cada lenguaje de programación. Las características varían según el lenguaje, pero existen varios atributos comunes que se aplican a todos.

La mayoría de los lenguajes admiten comentarios de bloque de varias líneas (también llamados flujos) y/o de una sola línea. Un comentario de bloque está delimitado por texto que marca el inicio y el final del texto del comentario. Puede abarcar varias líneas u ocupar cualquier parte de una línea. Algunos lenguajes permiten que los comentarios de bloque se aniden recursivamente unos dentro de otros, pero otros no. [ 5 ] [ 6 ] [ 7 ] Un comentario de línea termina al final de la línea de texto. En los lenguajes modernos, un comentario de línea comienza con un delimitador, pero algunos lenguajes más antiguos designan una columna en la que el texto subsiguiente se considera comentario. [ 7 ] Muchos lenguajes admiten comentarios de bloque y de línea , utilizando diferentes delimitadores para cada uno. Por ejemplo, C , C++ y sus muchos derivados admiten comentarios de bloque delimitados por /*y */comentarios de línea delimitados por //. Otros lenguajes admiten solo un tipo de comentario. [ 7 ]

Los comentarios también se pueden clasificar como prólogo o en línea según su posición y contenido con respecto al código del programa. Un comentario de prólogo es un comentario (o grupo de comentarios relacionados) ubicado cerca del inicio de un tema de programación asociado, como antes de la declaración de un símbolo o al principio de un archivo. Un comentario en línea es un comentario que se encuentra en la misma línea y a la derecha del código del programa al que se refiere. [ 8 ] Tanto los comentarios de prólogo como los comentarios en línea se pueden representar como comentarios de línea o de bloque. Por ejemplo:

/* * comentario de bloque del prólogo */ bool foo () { return true ; /* comentario de bloque en línea */ }// // comentario de línea del prólogo // bool bar () { return false ; // comentario de línea en línea }

Ejemplos de uso

Describir la intención

Los comentarios pueden explicar la intención del autor : por qué el código es como es. Algunos sostienen que describir qué hace el código es superfluo. La necesidad de explicar el qué es señal de que es demasiado complejo y debería revisarse.

"No documentes el código malo, reescríbelo." [ 9 ]
"Los buenos comentarios no repiten el código ni lo explican. Aclaran su intención. Los comentarios deben explicar, a un nivel de abstracción superior al del código, lo que se intenta hacer." [ 10 ]

Resaltar prácticas inusuales

Los comentarios pueden explicar por qué se optó por escribir código que contradice las convenciones o las mejores prácticas. Por ejemplo:

' La segunda variable se reduce debido a errores del servidor que se producen al reutilizar datos del formulario. ' No hay documentación disponible sobre el problema de comportamiento del servidor, así que simplemente se está programando una solución alternativa. vtx = servidor.mappath ( " configuración local" )

El siguiente ejemplo explica por qué se eligió un algoritmo de ordenación por inserción en lugar de un algoritmo de ordenación rápida , ya que, en teoría, el primero es más lento que el segundo.

lista = [ f ( b ), f ( b ), f ( c ), f ( d ), f ( a ), ... ] ; // Se necesita una ordenación estable. Además, el rendimiento realmente no importa. ordenación_inserción ( lista );

Describir el algoritmo

Los comentarios pueden describir un algoritmo como pseudocódigo . Esto podría hacerse antes de escribir el código, como un primer borrador. Si se dejan en el código, pueden simplificar la revisión del mismo, ya que permiten comparar el código resultante con la lógica prevista. Por ejemplo:

/* Recorre en orden inverso todos los elementos devueltos por el servidor (deben procesarse cronológicamente) */ for ( i = ( numElementsReturned - 0 ); i >= 1 ; i -- ) { /* Procesa los datos de cada elemento */ updatePattern ( i , returnedElements [ i ]); }

En ocasiones, el código contiene una solución novedosa o destacable que justifica un comentario explicativo. Dichas explicaciones pueden ser extensas e incluir diagramas y demostraciones matemáticas formales. Esto puede describir lo que hace el código en lugar de su intención, pero puede ser útil para su mantenimiento. Esto podría aplicarse a dominios de problemas altamente especializados o a optimizaciones, construcciones o llamadas a funciones poco utilizadas. [ 11 ]

Referencias

Cuando algún aspecto del código se basa en información de una referencia externa, los comentarios enlazan a dicha referencia. Por ejemplo, mediante una URL o el nombre del libro y el número de página.

Comentar fuera

Una práctica común entre los desarrolladores es comentar una o más líneas de código. El programador añade una sintaxis de comentarios que convierte el código del programa en comentarios, de modo que lo que era código ejecutable ya no se ejecute en tiempo de ejecución. A veces, esta técnica se utiliza para encontrar la causa de un error. Al comentar y ejecutar sistemáticamente partes del programa, se puede localizar el código fuente problemático. [ 12 ]

Muchos entornos de desarrollo integrados (IDE) permiten agregar y eliminar comentarios mediante acciones de interfaz de usuario prácticas , como un atajo de teclado .

Almacenar metadatos

Los comentarios pueden almacenar metadatos sobre el código. Los metadatos comunes incluyen el nombre del autor original y de los responsables del mantenimiento, las fechas de la primera redacción y modificación, el enlace a la documentación de desarrollo y de usuario, e información legal como los derechos de autor y la licencia del software . En raras ocasiones, se pueden incluir datos binarios codificados en texto .

Algunas herramientas de programación escriben metadatos en el código como comentarios. [ 13 ] Por ejemplo, una herramienta de control de versiones podría escribir metadatos como autor, fecha y número de versión en cada archivo cuando se confirma en el repositorio. [ 14 ]

Integrarse con las herramientas de desarrollo

En ocasiones, la información almacenada en los comentarios es utilizada por herramientas de desarrollo distintas del traductor , que es la herramienta principal que procesa el código. Esta información puede incluir metadatos (que suelen utilizar los generadores de documentación) o la configuración de la herramienta.

Algunos editores de código fuente admiten la configuración mediante metadatos en comentarios. [ 15 ] Un ejemplo particular es la función modeline de Vim , que configura el manejo del carácter de tabulación. Por ejemplo:

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

Generación de documentación de soporte

Un generador de documentación de API analiza la información de un código fuente para generar la documentación de la API. Muchos permiten leer información de los comentarios, a menudo analizando metadatos, para controlar el contenido y el formato del documento resultante.

Aunque algunos afirman que la documentación de API puede ser de mayor calidad cuando se escribe de forma más tradicional y manual, otros afirman que almacenar la información de la documentación en comentarios de código simplifica el proceso de documentación, además de aumentar la probabilidad de que la documentación se mantenga actualizada. [ 16 ] Algunos ejemplos incluyen Javadoc , Ddoc, Doxygen , Visual Expert y PHPDoc . Python , Lisp , Elixir y Clojure admiten formas de docstring . [ 17 ] C# , F# y Visual Basic .NET implementan una característica similar llamada "Comentarios XML" que IntelliSense lee del ensamblado .NET compilado . [ 18 ]

Visualización

Se puede incluir una visualización de arte ASCII, como un logotipo , un diagrama o un diagrama de flujo, en un comentario. [ 19 ]

El siguiente fragmento de código muestra el flujo de proceso de un script de administración del sistema ( archivo de script de Windows ). Aunque una sección que marca el código aparece como un comentario, el diagrama se encuentra en una sección XML CDATA , que técnicamente no es un comentario, pero cumple la misma función aquí. [ 20 ] Si bien este diagrama podría estar en un comentario, el ejemplo ilustra un caso en el que el programador optó por no usar un comentario para incluir recursos en el código fuente. [ 20 ]

<!-- inicio: wsf_resource_nodes --> <resource id= "ProcessDiagram000" > <![CDATA[ HostApp (Main_process)  |  V script.wsf (app_cmd) --> ClientApp (async_run, batch_process)  |  |  V  mru.ini (mru_history) ]]> </resource>

Proceso de desarrollo de documentos

En ocasiones, los comentarios describen procesos de desarrollo relacionados con el código. Por ejemplo, pueden describir cómo compilar el código o cómo enviar cambios al responsable del mantenimiento del software .

Ampliar la sintaxis del lenguaje

En ocasiones, el código formateado como comentario se sobrecarga para transmitir información adicional al traductor, como comentarios condicionales. Por lo tanto, la sintaxis que generalmente indica un comentario puede representar en realidad código de programa, no código de comentario. Esta sintaxis puede ser una forma práctica de mantener la compatibilidad al tiempo que se añade funcionalidad adicional, pero algunos consideran esta solución una chapuza . [ 21 ]

Otros ejemplos incluyen directivas del intérprete :

  • El " shebang " de Unix #!se utiliza en la primera línea de un script para indicar el intérprete que se va a utilizar.
  • "Comentarios mágicos" que identifican la codificación que utiliza un archivo fuente, [ 22 ] por ejemplo, la PEP 263 de Python. [ 23 ]

El siguiente script para un sistema tipo Unix muestra ambos usos:

#!/usr/bin/env python3 # -*- coding: UTF-8 -*- print ( "Probando" )

El compilador gcc (desde 2017) busca un comentario en una instrucción switch si un caso pasa al siguiente. Si no encuentra una indicación explícita de que se ejecuta el siguiente caso, el compilador emite una advertencia sobre un posible problema de codificación. Insertar dicho comentario sobre la ejecución del siguiente caso es una convención de larga data, y el compilador ha codificado esta práctica. [ 24 ] Por ejemplo:

interruptor ( comando ) {caso CMD_SHOW_HELP_AND_EXIT :mostrar_ayuda ();/* Fallo continuo */caso CMD_EXIT :salir ();romper ;}

Alivia el estrés

Para aliviar el estrés o intentar hacer reír, a veces los programadores añaden comentarios sobre la calidad del código, las herramientas, la competencia, los empleadores, las condiciones de trabajo u otros temas que podrían considerarse poco profesionales , a veces utilizando palabrotas . [ 25 ] [ 26 ]

Perspectivas normativas

Existen diversas posturas normativas y opiniones arraigadas respecto al uso adecuado de los comentarios en el código fuente. [ 27 ] [ 28 ] Algunas de estas son informales y se basan en preferencias personales, mientras que otras se publican o promulgan como directrices formales para una comunidad en particular. [ 29 ]

Necesidad de comentarios

Los expertos tienen opiniones diversas sobre si los comentarios son apropiados en el código fuente y cuándo lo son. [ 9 ] [ 30 ] Algunos afirman que el código fuente debe escribirse con pocos comentarios, basándose en que debe ser autoexplicativo o autodocumentado . [ 9 ] Otros sugieren que el código debe estar ampliamente comentado (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). [ 31 ] [ 32 ]

Entre estas posturas se encuentra la afirmación de que los comentarios no son ni beneficiosos ni perjudiciales en sí mismos, y lo que importa es que sean correctos y se mantengan sincronizados con el código fuente, y que se omitan si son superfluos, excesivos, difíciles de mantener o de alguna otra manera inútiles. [ 33 ] [ 34 ]

En el enfoque de diseño por contrato para la programación, a veces se utilizan comentarios para documentar los contratos .

Nivel de detalle

Dependiendo del público al que va dirigido el código y de otras consideraciones, el nivel de detalle y descripción puede variar considerablemente.

Por ejemplo, el siguiente comentario en Java sería adecuado en un texto introductorio diseñado para enseñar programación básica:

String s = "Wikipedia" ; /* Asigna el valor "Wikipedia" a la variable s. */

Sin embargo, este nivel de detalle no sería apropiado en el contexto de código de producción u otras situaciones que involucren a desarrolladores experimentados. Tales descripciones rudimentarias son inconsistentes con la directriz: "Los buenos comentarios... aclaran la intención". [ 10 ] Además, para entornos de codificación profesionales, el nivel de detalle suele estar bien definido para cumplir con un requisito de rendimiento específico definido por las operaciones comerciales. [ 32 ]

Estilos

Al ser texto libre, los comentarios pueden recibir diversos estilos. Muchos prefieren un estilo consistente, no obstructivo, fácil de modificar y difícil de romper. Dado que algunos afirman que cierto grado de consistencia es valioso y beneficioso, a veces se acuerda un estilo de comentarios consistente antes de que comience un proyecto o surge a medida que avanza el desarrollo. [ 35 ]

Los siguientes fragmentos de código C muestran parte de la diversidad en el estilo de los comentarios en bloque:

/*  Este es el cuerpo del comentario. */
/***************************** * * * Este es el cuerpo del comentario. * * * *****************************/

Factores como las preferencias personales y la flexibilidad de las herramientas de programación pueden influir en el estilo de comentarios utilizado. Por ejemplo, los programadores que usan un editor de código fuente que no formatea automáticamente los comentarios, como se muestra en el segundo ejemplo, podrían preferir el primer estilo.

El consultor de software y comentarista de tecnología Allen Holub [ 36 ] aboga por alinear los bordes izquierdos de los comentarios: [ 37 ]

/* 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 hacerlo en editores que no indentan automáticamente la segunda ** última línea del comentario un espacio desde la primera. ** También se utiliza en el libro de Holub, en la regla 31. */

En muchos lenguajes, un comentario de línea puede seguir al código del programa de manera que el comentario esté en línea y generalmente describa el código a su izquierda. Por ejemplo, en este Perl:

print $s . "\n" ; # Agrega un carácter de nueva línea después de imprimir

Si un lenguaje admite comentarios de línea y de bloque, los equipos de programación pueden establecer una convención sobre cuándo usar cada uno. Por ejemplo, usar comentarios de línea solo para comentarios menores y comentarios de bloque para abstracciones de nivel superior.

Etiqueta

Algunos comentarios se categorizan con un prefijo : una etiqueta , una etiqueta de código [ 38 ] [ 39 ] o un token. [ 40 ] Algunos editores resaltan un comentario en función de su etiqueta.

Las etiquetas de uso común incluyen:

  • ERROR, DEPURACIÓN: identifica un error conocido , lo que podría implicar que debería corregirse.
  • FIXME: implica que hay trabajo por hacer para corregir un error.
  • HACK, BORDEO, KLUDGE: indica una solución que podría considerarse de baja calidad.
  • TODO — describe algunas tareas pendientes
  • NOTA: información relativamente general
  • DESHACE: una reversión o "retroceso" del código anterior.

Por ejemplo:

int current_stock_price () { return 100 ; // TODO implementar llamada a la API para obtener el precio actual en tiempo real }

Ejemplos de sintaxis

La sintaxis para los comentarios varía según el lenguaje de programación. Existen patrones comunes utilizados por varios lenguajes, así como una amplia gama de sintaxis entre ellos. Para no extender demasiado esta sección, algunos ejemplos se agrupan por lenguajes con sintaxis iguales o muy similares. Otros corresponden a lenguajes específicos con sintaxis menos comunes.

Lenguajes de llaves

Muchos lenguajes que utilizan llaves, como C, C++ y sus numerosos derivados, delimitan un comentario de línea con //y un comentario de bloque con /*y */. Originalmente, C carecía de comentarios de línea, pero se añadieron en C99 . Algunos lenguajes destacados son: C, C++, C# , D , Java , JavaScript y Swift . Por ejemplo:

/* * Comprueba si se ha superado el límite máximo de procesos, pero asegúrate de excluir a root. * Esto es necesario para que el inicio de sesión pueda establecer un límite de procesos por usuario * inferior al de los procesos que ejecuta root. */ bool isOverMaximumProcessLimit () { // TODO implementar }

Algunos lenguajes, incluidos D [ 41 ] y Swift [ 42 ] , permiten anidar comentarios de bloque, mientras que otros no, incluidos C y C++.

Un ejemplo de bloques anidados en D:

// comentario de línea /*  comentario de bloque */ /+ inicio del bloque exterior  /+ bloque interior +/  fin del bloque exterior +/

Un ejemplo de bloques anidados en Swift:

/* Este es el inicio del comentario externo.  /* Este es el comentario anidado. */ Este es el final del comentario externo. */

Programación de scripts

Un patrón común en muchos lenguajes de scripting es delimitar un comentario de línea con #. La compatibilidad con comentarios de bloque varía. Algunos lenguajes destacados son : Bash , Raku , Ruby , Perl , PowerShell , Python y R.

Un ejemplo en R:

# Este es un comentario print ( "Esto no es un comentario" ) # Este es otro comentario

Bloque en Ruby

Un comentario de bloque está delimitado por =beginy =endque inician una línea. Por ejemplo:

puts "no es un comentario" # esto es un comentario puts "no es un comentario" =begin lo que va en estas líneas es solo para el lector humano =end puts "no es un comentario"

Bloque en Perl

En lugar de una estructura de comentarios de bloque regular, Perl utiliza el marcado de documentación simple y antigua de programación literaria (POD) . [ 43 ] Por ejemplo: [ 44 ]

=item Pod::List-E<gt>new() Crea un nuevo objeto de lista. Las propiedades se pueden especificar mediante una referencia hash como esta:  my $list = Pod::List->new({ -start => $., -indent => 4 }); =cut sub new { ... }

Raku (anteriormente llamado Perl 6) utiliza los mismos comentarios de línea y comentarios POD que Perl , pero añade un tipo de comentario de bloque configurable: "comentarios multilínea/incrustados". [ 45 ] Comienza con #`un corchete de apertura y termina con el corchete de cierre correspondiente. [ 45 ] Por ejemplo:

#`{{ "comentando" esta versión toggle-case(Str:D $s) Cambia el formato 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 paréntesis se usa ahora ) { ... } 

Bloquear en PowerShell

PowerShell admite un comentario de bloque delimitado por <#y #>. Por ejemplo:

# Comentario de una sola línea <# Comentario de varias  líneas  #>

Bloque en Python

Aunque Python no admite comentarios en bloque [ 46 ], a menudo se utiliza una cadena literal simple representada por una cadena entre comillas triples para este propósito. [ 47 ] [ 46 ] En los ejemplos siguientes, las cadenas entre comillas dobles triples actúan como comentarios, pero también se tratan como cadenas de documentación :

""" En la parte superior de un archivo, esta es la cadena de documentación del módulo """clase MyClass : """Documentación de la clase"""def my_method ( self ): """Documentación del método"""

Marcado del navegador

En general, los lenguajes de marcado varían en su sintaxis de comentarios, pero algunos de los formatos de marcado de Internet más importantes, como HTML y XML, delimitan un comentario de bloque con <!--y y no ofrecen soporte para comentarios de línea. Un ejemplo en XML:-->

<!-- seleccione el contexto aquí --> <param name= "context" value= "public" />

Para garantizar la compatibilidad con SGML , no se permite el uso de doble guion (--) dentro de los comentarios.

ColdFusion proporciona una sintaxis similar a la de los comentarios HTML , pero utiliza tres guiones en lugar de dos. CodeFusion permite comentarios de bloque anidados.

Bloque en Haskell

En Haskell, un comentario de bloque está delimitado por {-y -}. Por ejemplo:

{- 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 literaria para comentar conocido como "Estilo Bird". [ 48 ] Las líneas que comienzan con >se interpretan como código y todo lo demás se considera un comentario. Un requisito adicional es una línea en blanco antes y después del bloque de código:

En el 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 hay que dejar una línea en blanco después del código. 

La programación literaria también se puede realizar mediante LaTeX . Ejemplo de una definición:

\usepackage { verbatim } \newenvironment { code }{ \verbatim }{ \endverbatim }

Se utiliza de la siguiente manera:

% el archivo fuente de LaTeX La llamada a la función \verb |fact n| calcula $ n ! $ si $ n \ge 0 $ , aquí hay una definición: \\ \begin { code } fact :: Integer -> Integer fact 0 = 1 fact ( n + 1 ) = ( n + 1 ) * fact n \end { code } Aquí más explicación usando el marcado \LaTeX {}

Bloque en Lua

Lua admite comentarios de bloque delimitados por --[[y ]][ 49 ] Por ejemplo:

--[[Un comentario de varias líneas ]]

Bloque en SQL

/**/En algunas variantes de SQL, se admite el comentario de bloque de lenguaje entre llaves ( ). Las variantes incluyen: Transact-SQL , MySQL , SQLite , PostgreSQL y Oracle . [ 50 ] [ 51 ] [ 52 ] [ 53 ] [ 54 ]

MySQL también admite comentarios de línea delimitados por #.

Sintaxis menos común

APL

APL utiliza ("lamp") para los comentarios de línea. Por ejemplo:

⍝ Ahora suma los números: c a + b ⍝ suma

En los dialectos que tienen las primitivas ("izquierda") y ("derecha"), los comentarios a menudo pueden estar dentro o separados de las declaraciones, en forma de cadenas ignoradas:

d 2 × c 'donde' c a + 'limitado' b

AppleScript

AppleScript admite comentarios tanto de línea como de bloque. Por ejemplo:

# comentario de línea (en versiones posteriores) (* Este programa muestra un saludo. *) on greet ( myGreeting ) display dialog myGreeting & " world!" end greet-- Mostrar el saludo greet ( "Hola" )

BÁSICO

Las primeras versiones de BASIC usaban REM(abreviatura de remark) para un comentario de línea.

10 REM Este programa BASIC muestra el uso de las instrucciones PRINT y GOTO. 15 REM Llena la pantalla con la frase "HOLA". 20 PRINT "HOLA" 30 GOTO 20

En versiones posteriores, como Quick Basic , Q Basic , Visual Basic (VB), VB.NET , VBScript , FreeBASIC y Gambas , un comentario de línea se delimita con '(apóstrofe). Un ejemplo en VB.NET:

Clase pública Form1 Subprivada Button1_Click ( sender As Object , e As EventArgs ) Handles Button1.Click ' nuevo estilo de comentario de línea rem antiguo comentario de línea aún compatible MessageBox.Show ( " Hola , mundo" ) ' mostrar diálogo con un saludo End Sub End Class

Configuración de Cisco IOS e IOS-XE

El signo de exclamación ( ! ) puede usarse 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". [ 55 ] [ 56 ]

Es posible insertar contenido legible para humanos que en realidad forma parte de la configuración y que puede guardarse en la configuración de inicio de la NVRAM mediante:

  • El comando "description" se utiliza para agregar una descripción a la configuración de una interfaz o de un vecino BGP.
  • El parámetro "name" se utiliza para añadir un comentario a una ruta estática.
  • El comando "remark" en las listas de acceso
¡Pega el texto a continuación para redirigir el tráfico manualmente! configuración t entero gi0/2 no cerrar ruta ip 0.0.0.0 0.0.0.0 gi0/2 nombre ISP2 no ip route 0.0.0.0 0.0.0.0 gi0/1 name ISP1 entero gi0/1 cerrar salida 

Fortran

El siguiente fragmento de código Fortran de formato fijo muestra que la sintaxis de los comentarios está orientada por columnas. Una letra Cen la primera columna hace que toda la línea se trate como un comentario. En Fortran 77 , un asterisco en la primera columna también indica un comentario.

C C Las líneas que comienzan con 'C' en la primera columna (también conocida como columna de comentarios) son comentarios C WRITE ( 6 , 610 )  610 FORMAT ( 12 H HELLO WORLD ) END

El siguiente fragmento de código Fortran 90 muestra una sintaxis de comentarios de línea más moderna: texto que sigue a !.

! Un programa de comentarios comment_test imprime '(A)' , 'Hola mundo' ! también un programa de comentarios fin del programa

El Fortran de formato libre, introducido también con Fortran 90, solo admite este último estilo de comentario.

Aunque no forma parte del estándar Fortran, muchos compiladores de Fortran ofrecen una pasada de preprocesamiento opcional similar a la de C. Esta se puede utilizar para proporcionar comentarios de bloque:

#if 0 Este es un comentario de bloque que abarca varias líneas . #endif programa comment_test imprimir '(A)' , '¡Hola mundo !' también es un comentario fin del programa

MATLAB

En el lenguaje de programación de MATLAB  , el carácter '%' indica un comentario de una sola línea. Los comentarios de varias líneas también están disponibles mediante corchetes %{ y  %} y pueden anidarse, por ejemplo

% Estas son las derivadas para cada término d = [ 0 - 1 0 ];%{  %{  (Ejemplo de comentario anidado, la sangría es por estética (y se ignora).) %  } Formamos la secuencia siguiendo la fórmula de Taylor . Nótese que estamos operando sobre un vector . %} seq = d .* ( x - c ) . ^ n ./ ( factorial ( n ) )% Sumamos para obtener la aproximación de Taylor approx = sum ( seq )

Nim

Nim delimita un comentario de línea con #y los comentarios de bloque con #[y ]#. Los comentarios de bloque pueden anidarse.

Nim también incluye comentarios de documentación que combinan el marcado Markdown y ReStructuredText . Un comentario de documentación de línea utiliza '##' y un comentario de documentación de bloque utiliza '##[' y ']##'. El compilador puede generar documentación HTML , LaTeX y JSON a partir de los comentarios de documentación. Los comentarios de documentación forman parte del árbol de sintaxis abstracta y pueden extraerse mediante macros. [ 57 ]

## 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 del tipo edad : int ## Documentación del campoproc 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

OCaml admite comentarios anidados. Por ejemplo:

codeLine (* nivel de comentario 1(*nivel de comentario 2*)*)

Pascal, Delfos

En Pascal y Delphi , un comentario de bloque está delimitado por {y }, y como alternativa para computadoras que no admiten estos caracteres, también se admiten (*y *). Un comentario de línea está delimitado por \\. [ 58 ] En la familia de lenguajes más modernos de Niklaus Wirth (incluidos Modula-2 y Oberon ), los comentarios están delimitados por (*y *). [ 59 ] [ 60 ] Los comentarios pueden estar anidados. Por ejemplo:

(* diagonales de prueba *) diferenciaColumna := columnaPrueba - columna ; si ( fila + diferenciaColumna = filaPrueba ) o .......

PHP

Los comentarios en PHP pueden ser de estilo llave (tanto de línea como de bloque) o de línea delimitados por #l. Los bloques no se pueden anidar. A partir de PHP 8, un #solo significa comentario si no va seguido inmediatamente de [. De lo contrario, delimita un atributo, que continúa hasta el siguiente ]. Por ejemplo:

/** * Esta clase contiene una documentación de ejemplo. * @author Desconocido */ #[ Attribute ] class MyAttribute { const VALUE = 'value' ; // Comentario de línea al estilo C++ private $value ; # Comentario de línea al estilo script public function __construct ( $value = null ) { $this -> value = $value ; } }

Doble guion

Un conjunto relativamente flexible de lenguajes utilizados --para comentarios de una sola línea. Algunos lenguajes destacados son: Ada , Eiffel , Haskell , Lua , SQL y VHDL . La compatibilidad con comentarios en bloque varía. Un ejemplo en Ada:

-- la tarea del controlador de tráfico aéreo toma solicitudes de despegue y aterrizaje tipo de tarea Controller ( My_Runway : Runway_Access ) es -- entradas de tarea para paso de mensajes síncrono entrada Request_Takeoff ( ID : in Airplane_ID ; Takeoff : out Runway_Access ); entrada Request_Approach ( ID : in Airplane_ID ; Approach : out Runway_Access ); fin Controller ;

Problemas de seguridad

En los lenguajes interpretados , dependiendo de las capacidades del sistema operativo y las opciones del administrador, el usuario final del programa puede visualizar todo el código fuente, incluidos los comentarios . Esto puede representar una vulnerabilidad de seguridad cuando los comentarios contienen información confidencial o cuando simplemente se comentan secciones de código confidenciales. [ 61 ]

Véase también

Notas y referencias

  1. Penny Grubb, Armstrong Takang (2003). Mantenimiento de software: conceptos y práctica . World Scientific. pp.  7, por favor comience 120–121. ISBN 978-981-238-426-3.
  2. Ganguli, Madhushree (2002). Making Use of Jsp . Nueva York: Wiley. ISBN 978-0-471-21974-3.Hewitt , Eben (2003). Java para desarrolladores de Coldfusion . Upper Saddle River: Pearson Education. ISBN 978-0-13-046180-3.
  3. WR, Dietrich (2003). Reconocimiento de patrones aplicado: algoritmos e implementación en C++ . Springer. ISBN 978-3-528-35558-6.Ofrece puntos de vista sobre el uso adecuado de los comentarios en el código fuente. pág. 66.
  4. Keyes, Jessica (2003). Manual de ingeniería de software . CRC Press. ISBN 978-0-8493-1479-7.Analiza los comentarios y la "Ciencia de la Documentación" (pág. 256).
  5. Higham, Desmond (2005). Guía de MATLAB . SIAM. ISBN 978-0-89871-578-1.
  6. Vermeulen, Al (2000). Los elementos del estilo Java . Cambridge University Press. ISBN 978-0-521-77768-1.
  7. 1 2 3 "Uso del comentario correcto en Java" . 2000-03-04 . Recuperado el 2007-07-24 .
  8. Dixit, JB (2003). Fundamentos de informática y programación en C. Laxmi Publications. ISBN 978-81-7008-882-0.
  9. 1 2 3 Los elementos del estilo de programación , Kernighan y Plauger
  10. 1 2 Código completo , McConnell
  11. Spinellis, Diomidis (2003). Lectura de código: La perspectiva del código abierto . Addison-Wesley. ISBN 978-0-201-79940-8.
  12. Medios, OpenSystems. "Comentarios y código de depuración" . Diseño de computación embebida . Consultado el 17 de junio de 2026 .
  13. Véase, por ejemplo, Wynne-Powell, Rod (2008). Mac OS X para fotógrafos: flujo de trabajo de imágenes optimizado para el usuario de Mac . Oxford: Focal Press. pág. 243. ISBN  978-0-240-52027-8.
  14. Véase, por ejemplo, Berlin, Daniel (2006). Subversión práctica, segunda edición . Berkeley: APress. pág. 168. ISBN  978-1-59059-753-8.
  15. Lamb, Linda (1998). Aprendiendo a usar el editor VI . Sebastopol: O'Reilly & Associates. ISBN 978-1-56592-426-0.
  16. Ambler, Scott (2004). The Object Primer: Agile Model-Driven Development with UML 2.0 . Cambridge University Press. ISBN 978-1-397-80521-8.
  17. Definición de función con docstring en Clojure
  18. Murach. C# 2005. pág. 56. 
  19. "CodePlotter 1.6: agregue y edite diagramas en su código con esta herramienta 'similar a Visio'" . Archivado del original el 14 de julio de 2007. Consultado el 24 de julio de 2007 .
  20. 1 2 Niederst, Jennifer (2006). Diseño web en pocas palabras: una guía de referencia rápida para escritorio . O'Reilly. ISBN 978-0-596-00987-8. En ocasiones, la diferencia entre un «comentario» y otros elementos sintácticos de un lenguaje de programación o de marcado implica sutiles matices. Niederst ilustra una de estas situaciones al afirmar: «Desafortunadamente, el software XML considera los comentarios como información irrelevante y puede simplemente eliminarlos de un documento antes de procesarlo. Para evitar este problema, utilice una sección XML CDATA en su lugar».
  21. c2: Comentarios populares
  22. "class Encoding" . Ruby . ruby-lang.org . Consultado el 5 de diciembre de 2018 .
  23. "PEP 263 – Definición de codificaciones de código fuente de Python" . Python.org . Consultado el 5 de diciembre de 2018 .
  24. Polacek, Marek (10 de marzo de 2017). "-Wimplicit-fallthrough en GCC 7" . Red Hat Developer . Red Hat . Consultado el 10 de febrero de 2019 .
  25. Lisa Eadicicco (27 de marzo de 2014). "Los programadores de Microsoft ocultaron un montón de palabrotas en el código inicial del software" . Business Insider Australia . Archivado del original el 29 de diciembre de 2016.
  26. (véase, por ejemplo, Linux Swear Count ).
  27. Goodliffe, Pete (2006). Code Craft . San Francisco: No Starch Press. ISBN 978-1-59327-119-0.
  28. Smith, T. (1991). Principios y técnicas de programación intermedia con Pascal . Belmont: West Pub. Co. ISBN 978-0-314-66314-6.
  29. Véase, por ejemplo, Koletzke, Peter (2000). Oracle Developer Advanced Forms & Reports . Berkeley: Osborne/McGraw-Hill. ISBN 978-0-07-212048-6.página 65.
  30. "Malas prácticas: malos comentarios" . Consultado el 24 de julio de 2007 .
  31. Morelli, Ralph (2006). Java, Java, Java: resolución de problemas orientada a objetos . Prentice Hall College. ISBN 978-0-13-147434-5.
  32. 1 2 "Cómo escribir comentarios de documentación para la herramienta Javadoc" . Consultado el 24 de julio de 2007 .Las directrices de Javadoc especifican que los comentarios son cruciales para la plataforma. Además, el nivel de detalle adecuado está bastante bien definido: «Dedicamos tiempo y esfuerzo a especificar condiciones límite, rangos de argumentos y casos excepcionales, en lugar de definir términos de programación comunes, escribir resúmenes conceptuales e incluir ejemplos para desarrolladores».
  33. Yourdon, Edward (2007). Técnicas de estructura y diseño de programas . Universidad de Michigan. 013901702X.La ausencia de comentarios puede dificultar la comprensión del código, pero los comentarios pueden ser perjudiciales si son obsoletos, redundantes, incorrectos o si, de otro modo, dificultan la comprensión del propósito previsto del código fuente.
  34. Dewhurst, Stephen C (2002). Errores comunes en C++: Cómo evitar problemas comunes en la codificación y el diseño . Addison-Wesley Professional. ISBN 978-0-321-12518-7.
  35. "Estilo de codificación" . Archivado del original el 8 de agosto de 2007. Consultado el 24 de julio de 2007 .
  36. "Allen Holub" . Archivado del original el 20 de julio de 2007. Consultado el 24 de julio de 2007 .
  37. Allen Holub, Suficiente cuerda para pegarse un tiro en el pie , ISBN 0-07-029689-8, 1995, McGraw-Hill
  38. "PEP 0350 – Etiquetas de código" , Fundación de Software Python
  39. "Nunca olvides nada antes, durante y después de programar" , utilizando comentarios con "etiquetas de código" como recordatorios productivos.
  40. "Uso de la lista de tareas" , msdn.microsoft.com
  41. "Léxico" . Lenguaje de programación D. Consultado el 17 de noviembre de 2025 .
  42. "Estructura léxica | Documentación" . docs.swift.org . Consultado el 17 de noviembre de 2025 .
  43. "perlpod – el formato de documentación simple y antiguo" . Consultado el 12 de septiembre de 2011 .
  44. "Pod::ParseUtils – funciones auxiliares para el análisis y la conversión de POD" . Consultado el 12 de septiembre de 2011 .
  45. 1 2 "Documentación de Perl 6 – Sintaxis (Comentarios)" . Recuperado el 6 de abril de 2017 .
  46. 1 2 "Sintaxis básica de Python 3" . Archivado del original el 19 de agosto de 2021. Recuperado el 25 de febrero de 2019. Las comillas triples se tratan como cadenas normales con la excepción de que pueden abarcar varias líneas. Por cadenas normales me refiero a que si no se asignan a una variable, se eliminarán inmediatamente como basura tan pronto como se ejecute ese código. Por lo tanto, el intérprete no las ignora de la misma manera que #un comentario.
  47. "Consejo de Python: Puedes usar cadenas de varias líneas como comentarios de varias líneas" , 11 de septiembre de 2011, Guido van Rossum
  48. "Programación literaria" . haskell.org .
  49. "Programación en Lua 1.3" . www.Lua.org . Consultado el 8 de noviembre de 2017 .
  50. Talmage, Ronald R. (1999). Microsoft SQL Server 7. Prima Publishing. ISBN 978-0-7615-1389-6.
  51. "Manual de referencia de MySQL 8.0" . Oracle Corporation . Consultado el 2 de enero de 2020 .
  52. "SQL según lo entiende SQLite" . Consorcio SQLite . Consultado el 2 de enero de 2020 .
  53. "Documentación de PostgreSQL 10.11" . Grupo de Desarrollo Global de PostgreSQL . Consultado el 2 de enero de 2020 .
  54. "Referencia SQL de Oracle® Database" . Oracle Corporation . Consultado el 2 de enero de 2020 .
  55. "Deja un comentario en running-config" . Red de aprendizaje de Cisco (foro de discusión) .
  56. "Guía de configuración para la gestión de archivos de configuración, Cisco IOS XE versión 3S (serie ASR 900)" .
  57. macros.extractDocCommentsAndRunnables
  58. ^ Kathleen Jensen, Niklaus Wirth (1985). Manual e informe del usuario de Pascal . Springer-Verlag. ISBN 0-387-96048-1.
  59. Niklaus Wirth (1983). Programación en Modula-2 . Springer-Verlag. ISBN 0-387-15078-1.
    • Martin Reiser, Niklaus Wirth (1992). Programación en Oberon . Addison-Wesley. ISBN 0-201-56543-9.
  60. Andress, Mandy (2003). Sobrevivir a la seguridad: Cómo integrar personas, procesos y tecnología . CRC Press. ISBN 978-0-8493-2042-2.

Lecturas adicionales

  • Movshovitz-Attias, Dana y Cohen, William W. (2013) Modelos de lenguaje natural para predecir comentarios de programación . En Association for Computational Linguistics (ACL), 2013.
  • Cómo escribir comentarios, por Denis Krukovsky
  • Documentación del código fuente como manual de usuario interactivo por PTLogica
  • Cómo escribir comentarios para la herramienta Javadoc