Un marcador (en inglés : etiqueta ) es una palabra clave notable en un archivo de texto , el escritor o el lector pueden querer buscar. La característica que le confiere esta cualidad depende de la naturaleza del texto que lo contiene.
En un programa informático , un marcador corresponde a un identificador , en general una función , una constante , una macrodefinición , una clase o cualquier otro elemento relevante de la gramática del lenguaje de programación .
En algunos archivos de documentación que son exclusivamente en texto plano, un marcador puede corresponder a los títulos de los capítulos o al título de los temas. En general, todo lo que se pueda integrar en un índice puede actuar como marcador.
El software permite extraer automáticamente los marcadores de un conjunto de archivos. Luego constituyen uno o más archivos de marcadores, que contienen todos los marcadores encontrados durante el análisis de los archivos de texto.
Al mismo tiempo, muchos programas de software saben cómo usar archivos de marcadores para brindar servicio al usuario. En particular, la mayoría de los editores de texto e IDE comprenden los archivos de marcadores y ofrecen facilidades para usarlos. Permiten, por ejemplo, que un programador de computadoras se mueva fácil y rápidamente a través del código fuente de un programa.
Para un programa de computadora, se puede generar un archivo de marcador a partir del código fuente (generalmente mediante un programa externo al editor de texto). El programador puede entonces moverse en su programa usando este índice . Por ejemplo, cuando quiere consultar la definición de una función foo , puede, si su editor de texto lo permite, saltar desde un comando del teclado o con un clic del mouse , directamente a la línea donde se define foo ., Incluso si esta definición está en un archivo diferente al que se está editando.
Nota : se debe generar un archivo de marcadores de antemano.
Los archivos de marcadores son generalmente archivos de texto , formados por líneas, cada una de las cuales designa un marcador. Estas líneas suelen tener el siguiente formato:
NomDuTag Séparateur FichierQuiLeContient Séparateur LigneEtColonneA menudo se agrega información adicional:
NomDuTag Séparateur FichierQuiLeContient Séparateur LigneEtColonne Terminateur InformationsSupplémentairesEstas líneas a veces van precedidas de un encabezado que proporciona información sobre el contenido del archivo de marcadores. En particular, puede encontrar la codificación del archivo y una bandera que indica si los marcadores están ordenados o no.
La clasificación de los marcadores es de particular importancia, porque un archivo de marcadores adecuadamente clasificado (en el sentido binario y no en el sentido alfanumérico) permite una búsqueda denominada dicotómica , que es mucho más eficiente que una búsqueda lineal . El criterio de rendimiento es sensible con grandes archivos de marcadores. Por ejemplo, la generación de marcadores de origen del kernel de Linux en la versión 2.4.19 produce un archivo de más de 30 MB.
Entre la información adicional podemos encontrar:
Ctags era un programa de Unix escrito por Steve Kirkendall . Sólo es compatible con C .
Exuberant ctags [1] es una evolución de ctags escrita por Darren Hiebert en 1996 y publicada bajo los términos de la licencia GNU . Exuberante en inglés significa abundancia . Este término se relaciona con la cantidad de marcadores que se supone que genera. Ctags admite más de 40 idiomas y es muy fácil agregar soporte para otro idioma.
Etags depende de Emacs y admite muchos lenguajes de programación.
Jtags [2] es un programa especializado para el lenguaje Java , escrito en Java.
ptags.py es un programa especializado para el lenguaje Python , escrito en Python.
ptags es un programa especializado para el lenguaje Perl , escrito en Perl.
rtags es un programa especializado para el lenguaje Ruby , escrito en Ruby.
gnatxref es un programa especializado para el lenguaje Ada .
tcltags es un programa especializado para el lenguaje Tcl .