
Para trabajar con Tcl utilizaremos los programas tclsh o wish, los cuales funcionan como interpretes de comandos.
El primero, tclsh, es un "shell" básico de Tcl, y wish es un intérprete que, ademas de las capacidades del tclsh, añade la posibilidad de crear fácilmente interfaces gráficas para el lenguaje tcl.
Al momento de iniciar cualquiera de los "shells" el prompt cambia a un %, lo que nos indica que el interprete esta listo para recibir comandos.
La primer diferencia que se notará al momento de ejecutar cada uno de los shells es que el wish crea una ventana en blanco que lleva por título "wish", dicha ventana puede ser un poco diferente dependiendo del ambiente gráfico en el cual se trabaje.
Al momento que se desee ejecutar el programa escrito en un archivo se utiliza la instrucción:
source Nom_Arch
Donde Nom_arch es el nombre del archivo donde se guardó dicho programa.
Una forma alterna de ejecutar los programas escritos en tcl es incluir como primera linea en el archivo del programa lo siguiente:
#!/via/tclsh
Donde via es el la vía de acceso donde se encuentre localizado el tclsh, en caso de estar trabajando con wish se debe sustituir la linea por:
#!/via/wish
Esto es aplicable unicamente para la versión 4.0 de wish.
Nota: En algunas versiones del tcl el nombre del interprete de comandos incluye la versión del lenguaje, así que puede ser necesario llamar al interprete como wish4.0 o tclsh7.4, dependiendo del que se esté utilizando.
Luego de haber incluido la linea se deberán modificar los permisos del archivo fuente de tal forma que sea ejecutable, por ejemplo, si nuestro programa se llama mensaje.tcl, se debe escribir:
chmod 700 mensaje.tcl
De esta forma se puede ejecutar el programa sin necesidad de llamar al shell, o mejor dicho, el archivo llama automaticamente al shell y lo termina al concluir el programa.
En ésta sección del tutorial los ejemplos deberán ser ejecutados desde el shell, ya que si se ejecutan desde un archivo no se verán los resultados.
En muchos lenguajes las instrucciones son interpretadas directamente por el compilador, y las cadenas de caracteres con significado distinto a los comandos (por ejemplo mensajes del programa) tienen que separarse de las instrucciones utilizando algún indicador, en cambio en tcl todo lo que se le da al interprete es considerado como cadena de caracteres, y por ello es necesario indicar cuando se evaluará una determinada expresión de comandos o cuando son comandos anidados.
Primer ejemplo:
Para poder imprimir mas de una palabra utilizando este comando se encierra la cadena de caracteres a imprimir entre llaves {}, indicando así que todo lo que esta encerrado se debe tomar como un solo parámetro. Ejemplo:
A diferencia de muchos lenguajes estructurados en tcl no es necesario declarar las variables que se utilizarán, unicamente se incluyen en el código del programa y serán asignadas en tiempo de ejecución.
El comando set crea una variable y le asigna un valor, su sintaxis es la siguiente:
set nom_var valor
donde nom_var es el nombre de la variable donde se almacenará "valor".
Ejemplo:
Si quisieramos asignar ahora el valor de la variable "num" a la variable "nuevo" se podría pensar en hacer lo siguiente:
set nuevo num
Pero el ejemplo anterior asignará el valor "num" como cadena a la variable "nuevo", y no el número 5 como se quería.
Para asignar correctamente el contenido de la variable es necesario indicarlo anteponiendo el símbolo $ al nombre de la variable:
Ejecución de los programas
Es posible invocar los comandos del tcl desde el prompt del shell, pero es más conveniente guardar los programas en un archivo de texto, utilizando para ello el editor de su preferencia, para poder así corregir los errores y realizar diferentes pruebas sin necesidad de reescribir todo el programa.
puts stdout Hola
Este ejemplo utiliza el comando puts, el cual manda el segundo parámetro a la salida especificada por el primer parámetro, en este caso es hacia stdout, que es la salida por defecto hacia el monitor.
puts stdout {Mensaje de prueba}
Si el comando se escribe de la siguiente forma se generará un error:
#Este ejemplo generará un error
puts stdout Mensaje de prueba
Este error se debe a que el tcl interpreta la palabra "de" como un tercer parámetro, lo cual es erroneo.
Variables
Como en cualquier lenguaje de programación podemos utilizar variables para guardar información mientras dure la ejecución de nuestro programa, como ya se dijo el tcl interpreta toda información como una secuencia de caracteres, por lo que no es necesario hacer ninguna diferenciación entre variables que guardarán valores numéricos y otras que guardarán caracteres.
set num 5
Cuando se ejecute este comando aparecerá un 5, que es el valor asignado a la variable llamada "num".
set nuevo $num
De esta forma la variable "nuevo" contendrá el valor que contiene "num", y no su nombre como en el caso anterior. Lo que hace el caracter $ es una sustitución del nombre de la variable por su contenido.