Um marcador (em inglês : tag ) é uma palavra - chave notável em um arquivo de texto que o redator ou leitor pode querer pesquisar. A característica que lhe confere essa qualidade depende da natureza do texto que o contém.
Em um programa de computador , um marcador corresponde a um identificador , em geral uma função , uma constante , uma macro-definição , uma classe ou qualquer outro elemento relevante da gramática da linguagem de programação .
Em alguns arquivos de documentação que estão exclusivamente em texto simples, um marcador pode corresponder aos cabeçalhos dos capítulos ou ao título dos tópicos. Em geral, qualquer coisa que possa ser integrada a um índice pode atuar como um marcador.
O software torna possível extrair automaticamente os marcadores de um conjunto de arquivos. Eles então constituem um ou mais arquivos de marcadores, que contêm todos os marcadores encontrados durante a análise dos arquivos de texto.
Ao mesmo tempo, muitos programas de software sabem como usar arquivos de marcador para fornecer serviços ao usuário. Em particular, a maioria dos editores de texto e IDEs entendem os arquivos de marcadores e oferecem facilidades para usá-los. Eles permitem, por exemplo, que um programador de computador se mova com facilidade e rapidez pelo código-fonte de um programa.
Para um programa de computador, um arquivo de marcador pode ser gerado a partir do código-fonte (geralmente por um programa externo ao editor de texto). O programador pode então se mover em seu programa usando este índice . Por exemplo, quando ele deseja consultar a definição de uma função foo , ele pode, se seu editor de texto permitir, pular de um comando no teclado ou com um clique do mouse , diretamente para a linha onde foo está definido., Mesmo que esta definição está em um arquivo diferente daquele que está sendo editado.
Nota : um arquivo de marcadores deve ser gerado previamente.
Os arquivos de marcador são geralmente arquivos de texto , compostos de linhas, cada uma das quais designa um marcador. Essas linhas geralmente têm o seguinte formato:
NomDuTag Séparateur FichierQuiLeContient Séparateur LigneEtColonneFreqüentemente, informações adicionais são adicionadas:
NomDuTag Séparateur FichierQuiLeContient Séparateur LigneEtColonne Terminateur InformationsSupplémentairesEssas linhas às vezes são precedidas por um cabeçalho que fornece informações sobre o conteúdo do arquivo do marcador. Em particular, você pode encontrar a codificação do arquivo e um sinalizador que indica se os marcadores estão classificados ou não.
A classificação dos marcadores é de particular importância porque um arquivo adequadamente classificado de marcadores (no sentido binário e não no sentido alfanumérico) permite uma chamada pesquisa dicotômica , que é muito mais eficiente do que uma pesquisa linear . O critério de desempenho é sensível com grandes arquivos de marcadores. Por exemplo, a geração de marcadores de origem do kernel do Linux na versão 2.4.19 produz um arquivo com mais de 30 MB.
Entre as informações adicionais, podemos encontrar:
Ctags era um programa Unix escrito por Steve Kirkendall . Ele suporta apenas C .
Exuberant ctags [1] é uma evolução das ctags escrita por Darren Hiebert a partir de 1996 e lançada sob os termos da licença GNU . Exuberante em inglês significa abundância . Este termo está relacionado à quantidade de marcadores que deve gerar. Ctags suporta mais de 40 idiomas, e é muito fácil adicionar suporte para outro idioma.
Etags depende do Emacs e suporta muitas linguagens de programação.
Jtags [2] é um programa especializado para a linguagem Java , escrito em Java.
ptags.py é um programa especializado para a linguagem Python , escrito em Python.
ptags é um programa especializado para a linguagem Perl , escrito em Perl.
rtags é um programa especializado para a linguagem Ruby , escrito em Ruby.
gnatxref é um programa especializado para a linguagem Ada .
tcltags é um programa especializado para a linguagem Tcl .