Tcl é uma linguagem de programação muito simples. Se você já programou antes, você pode aprender o suficiente para escrever interessantes programas Tcl em poucas horas. Esta página oferece uma visão rápida das principais características do Tcl. Depois de ler isto, você provavelmente será capaz de começar a escrever scripts TCL simples por conta própria; no entanto, recomendamos que você consulte um dos muitos livros Tcl disponíveis para obter informações mais completas.
sintaxe básica
scripts Tcl são compostos por comandos separados por ponto-e-vírgula ou newlinesor., Todos os comandos têm a mesma forma básica ilustrada pelo seguinte exemplo:
expr 20 + 10
Este comando calcula a soma de 20 e 10 e devolve o resultado, 30.Você pode experimentar este exemplo e todos os outros nesta página, escrevendo-os para uma aplicação Tcl como tclsh
; o comando aftera completa, tclsh
imprime o seu resultado.
cada comando Tcl consiste numa ou mais palavras separadas por espaços., Neste exemplo, há quatro palavras: expr
20
+
e 10
. A primeira palavra é o nome de um comando e as outras palavras são argumentos a esse comando. Todos os comandos Tcl consistem de palavras, mas diferentes comandos tratam seus argumentos de forma diferente.O comando expr
trata todos os seus argumentos juntos como uma expressão aritmética, calcula o resultado dessa expressão, e retorna o resultado como uma string., expr
comando a divisão em palavras não é significativa: você poderia apenas aseasily ter invocado o mesmo comando
expr 20+10
no Entanto, para a maioria dos comandos a estrutura das palavras é importante, com eachword usado para uma finalidade distinta.
Todos os comandos Tcl retornam os resultados. Se um comando não tem nenhum resultado significativo, então ele retorna uma string vazio como seu resultado.
variáveis
Tcl permite armazenar valores em variáveis e usar os valores dos comandos laterin. O comando set
é usado para escrever e ler variáveis., Por exemplo, o comando a seguir modifica a variávelx
para armazenar o valor de 32
:
set x 32
O comando retorna o novo valor da variável. Você pode ler thevalue de uma variável invocando set
com apenas um singleargument:
set x
Você não precisa declarar variáveis em Tcl: uma variável é createdautomatically a primeira vez que ela é definida. As variáveis Tcl não têm tipos: qualquer variável pode conter qualquer valor.,
Para usar o valor de uma variável em um comando, use variablesubstitution como no exemplo a seguir:
expr $x*3
Quando $
aparece em um comando, Tcl trata o lettersand dígitos seguintes como um nome de variável, e substitui thevalue da variável no lugar do nome. Neste exemplo, theactual argumento recebida por expr
comando32*3
(assumindo que a variável x
foi setas no exemplo anterior)., Você pode usar a substituição de variáveis em qualquer palavra de qualquer comando, ou mesmo várias vezes dentro de uma palavra:
set cmd exprset x 11$cmd $x*$x
substituição de comandos
Você também pode usar o resultado de um comando em um argumento para outro comando. Isto é chamado de substituição de comandos:
set a 44set b
quando um como um comando TCL aninhado.O Tcl avalia o comando aninhado e substitui o seu resultado no comando envolvente em vez do texto entre parênteses., No exemplo acima do segundo argumento do segundo id
comando será176
.
aspas e chavetas
aspas duplas permitem-lhe indicar as palavras que contêm espaços. Forexample, considere o seguinte script:
set x 24set y 18set z "$x + $y is "
Após esses três comandos são avaliados variável z
willhave o valor de 24 + 18 is 42
. Tudo entre as quotas passou para o comando set
como uma única palavra., Note que (a) comando e substituições de variáveis são realizadas no texto entre as aspas, e (B) as aspas em si não são passadas para o comando.Se as citações não estivessem presentes, o comando set
teria recebido 6 argumentos, o que teria causado um erro.os chaveiros encaracolados fornecem outra forma de agrupar a informação em palavras.,Eles são diferentes de citações em que não há substituições são performedon o texto entre as chavetas:
set z {$x + $y is }
Este comando define variáveis z
para o valor”$x + $y is
“.
estruturas de controle
Tcl fornece um conjunto completo de estruturas de controle, incluindo comandos para execução condicional, looping e procedimentos. As estruturas de controle Tcl são apenas comandos que tomam scripts Tcl como argumentos.,O exemplo abaixo cria um procedimento Tcl chamado power
,que levanta uma base para um poder inteiro:
proc power {base p} { set result 1 while {$p > 0} { set result set p } return $result}
Este programa consiste de um único comando, proc
. O comandoproc
leva três argumentos: o nome de um procedimento,uma lista de nomes de argumentos, e o corpo do procedimento, que é um script Tcl. Note que tudo entre o chaveiro encaracolado no final da primeira linha e o chaveiro encaracolado na última linha é passado para proc
como um único argumento., O comando proc
cria um novo comando Tcl chamadopower
que leva dois argumentos. Você pode então invocar power
com comandos como o seguinte:
power 2 6power 1.15 5
quando é invocado, o organismo de procedimento é avaliado.Enquanto o corpo está em execução, ele pode acessar seus argumentos como variáveis:base
vai realizar o primeiro argumento e p
willhold o segundo.,
O corpo de power
procedimento contém três comandos Tcl:set
while
e return
. O comandowhile
faz a maior parte do trabalho do procedure.It leva dois argumentos, uma expressão ($p > 0
) e abody, que é outro script Tcl. Owhile
commandevaluates its expression argument using rules similar to those of the C programming language and if the result is true (nonzero) thenit evaluates the body as a Tcl script., Ele repete este processo sobre andover até que, eventualmente, a expressão avalia em falso (zero). Neste casethe corpo de while
comando multiplicado o resultado valueby base
e, em seguida, diminui p
. Quandop
atinge zero o resultado contém a potência desejada debase
. O comando return
faz com que o procedimento saia com o valor da variável result
como resultado do procedimento.
de onde vêm os comandos?,
como você já viu, todas as características interessantes em Tcl arerepresentadas por comandos. Declarações são comandos, expressões são avaliadas pela execução de comandos,estruturas de controle são comandos, e procedimentos são comandos.os comandos
Tcl são criados de três maneiras. Um grupo de comandos fornecido pelo próprio intérprete Tcl. Estes comandos são chamados comandos de construção. Eles incluem todos os comandos que você viu até agora e muitos mais (veja abaixo). Os comandos builtin estão presentes em todas as aplicações Tcl.
o segundo grupo de comandos é criado usando o extensionmechanism Tcl., O Tcl fornece APIs que lhe permitem criar um novo comando, escrevendo um procedimento de comando em C ou C++ que implementa o comando. Você então registra o procedimento de comando com o interpretador theTcl, dizendo ao Tcl o nome do comando que o procedimento implementa. No futuro, sempre que esse nome específico for usado para um comando Tcl, o Tcl chamará o seu procedimento de comando para executar o comando. Os comandos builtin também são implementados utilizando este mesmo mecanismo de extensão; os seus procedimentos de comando são apenas parte da biblioteca Tcl.,quando o Tcl é usado dentro de uma aplicação, a aplicação incorpora as suas principais características no Tcl usando o mecanismo de extensão. Assim, o conjunto de comandos TCL disponíveis varia de aplicação para aplicação.Existem também inúmeros pacotes de extensão que podem ser incorporados em qualquer aplicação Tcl. Uma das extensões mais conhecidas é a Tk, que oferece poderosas instalações para a construção de interfaces gráficas de uso. Outras extensões fornecem programação orientada a objetos, acesso a banco de dados,mais capacidades gráficas, e uma variedade de outras características., Uma das maiores vantagens da Tcl para a construção de aplicações de integração é o caso com o qual ela pode ser estendida para incorporar novos recursos ou comunicar com outros recursos.
o terceiro grupo de comandos consiste em procedimentos criados com o comando proc
, como o comando criado acima. Normalmente, extensões são usadas para funções de nível inferior onde a programação C é conveniente, e procedimentos são usados para funções de nível superior onde é mais fácil escrever em Tcl.,
outras características
Tcl contém muitos outros comandos além dos usados nos exemplos de precedência. Aqui está uma amostra de algumas das featuresprovided pelo builtin comandos Tcl:
- Mais estruturas de controle, tais como
if
for
foreach
eswitch
. - String manipulation, including a powerful regular expressionmatching facility. Cordas de comprimento arbitrário podem ser passadas em volta e manipuladas tão facilmente quanto números.,
- I / O, incluindo ficheiros no disco, bases de rede e dispositivos como portas seriais. A Tcl oferece facilidades particularmente simples para a comunicação através da Internet.
- Gestão de Ficheiros: o Tcl oferece vários comandos para manipular nomes de ficheiros, ler e escrever atributos de ficheiros, copiar ficheiros,apagar ficheiros, criar directórios, etc.
- subprocesso invocação: você pode executar outras aplicações com o comando
exec
e comunicar com elas enquanto correm., - Listas: o Tcl facilita a criação de colecções de valores (listas)e a sua manipulação de várias formas.
- Arrays: você pode criar valores estruturados que consistam em valorepairs de nome com valores de cadeia arbitrários para os nomes e valores.manipulação de data e hora.
- Events: Tcl permite que scripts esperem que certos eventos ocorram, tais como um tempo decorrido ou a disponibilidade de dados de entrada em um socket de rede.,
Exemplos
- Uma simples ferramenta de linha de comando
- Um simples servidor de rede
Tutorial
Tem algum tempo para aprofundar um pouco mais o idioma?O TCL Tutorialis é uma ótima maneira de aprender mais sobre os vários comandos e recursos linguísticos do Tcl.