Hola Mundo en TCL
SOLUCIONARIO
Hola Mundo en TCL
2024-06-07
Por
Occam's Razor

TCL es uno de los lenguajes más veteranos que vamos a utilizar y aún así es una excelente elección para determinado tipo de programas.
#!/usr/bin/tclsh

# This is a comment

puts "Hola Mundo!"

if { 0 } {
  Este texto es un comentario
  que puede extenderse varias lineas
}

puts "Las cadenas en tcl
pueden ocupar varias lineas
sin tener que hacer nada especial"

TCL es un lenguaje muy veterano. Junto con TK, un toolkit gráfico, fué muy popular para desarrollar aplicación de ventanas antes de que las librerías de widgets modernas (Qt, GTK, FLTK, wxWidgets,…) fueran populares.

SABIAS QUE…

TCL es muy fácil de incluir en programas C y como os decíamos antes fue muy popular para añadir GUI a sencillos programas C. Los widgets te TK son icónicos y fácilmente reconocibles.

TCL es un lenguaje interpretado que en cierto modo recuerda a los lenguajes de macros por la forma en la que maneja las cadenas de texto.

La extensión de los programas TCL suele ser .tcl.

Un rápido vistazo al programa, nos muestra como utiliza el caracter # para los comentarios, no necesita indicador de final de instrucción y permite agrupar instrucciones utilizando {}. También nos permite definir cadenas de caracteres multi-lineas, directamente.

TCL también utiliza puts para imprimir cadenas sencillas y añade automáticamente el retorno de carro.

El comentario multi-line es una muestra de lo que comentábamos anteriormente. El texto dentro del bloque condicional if, el cual nunca se ejecutará ya que la condición 0 nunca puede ser válida, es un texto que provocaría un error si se ejecutara, pero puesto que nunca se podrá ejecutar, podemos poner lo que queramos dentro de esas llaves que será ignorado impunemente.

Como siempre con los lenguajes interpretados, damos permisos y utilizamos el intérprete correcto o she-bang.

$ tclsh hola.tcl
$ chmod +x hola.tcl
$ ./hola.tcl

TCL fue creado por John Ousterhout en 1988 mientras trabajaba en la Universidad de Berkely California. El nombre viene del acrónimo Tool Command Language. TCL fue desarrollado como resultado de la frustración de los programadores creando sus propios lenguajes para incluirlos en otras aplicaciones.

TCL normalmente va junto con su extensión más popular conocida como TK (Toolkit). Esta extensión permite desarrollar interfaces gráficos para varios sistemas operativos, es decir, con un alto grado de portabilidad.

La facilidad para embeber TCL en programas escritos en C y la potencia y facilidad de TK para diseñar interfaces gráficos hicieron este tandem muy popular. Especialmente en aquellos tiempos en los que escribir una aplicación para toolkits como Motiff, o Athena era una tarea especialmente tediosa.

Hoy en día aún es posible utilizar TK desde otros lenguajes de programación para crear fácilmente interfaces gráficos. Tkinter para Python o el módulo Tk para Perl o Ruby, nos permiten crear ventanas, menus y botones de forma muy sencilla desde estos lenguajes de programación.

Si bien no vamos a utilizar TK en este libro ya que no vamos a escribir programas con interfaces gráficos, merece la pena echar un ojo rápido a la versión de nuestro hola mundo en TCL/TK:

#!/usr/bin/wish

# This is a comment
button .boton -text "Hola Mundo!!" -command { destroy . }
pack .boton

Este pequeño programa genera una ventana que contiene un botón con la etiqueta Hola Mundo!, el cual, al ser pulsado ejecuta el comando destroy . que efectivamente destruye la ventana actual. La instrucción pack añade el boton a la ventana principla. Esa instrucción nos permite añadir los diferentes elementos del GUI a las ventadas ofreciéndonos bastante control sobre como “empaquetarlos” todo juntos.

Hola Mundo en TCL/TK

Los programas TCL/TK hacen uso de un interprete diferente conocido como wish como podéis ver en la línea SheBang! al principio del programa.

Resumen

  • Lenguaje interpretado
  • Extension: tcl
  • Terminador de líneas : Retorno de carro
  • Agrupa instrucciones con : {...}
  • Comentarios multilinea : Posible utilizando if {0}
  • Comentarios misma línea: #
  • Delimitador de cadenas: "cadena¨ o 'cadena'
  • Puedes imprimir textos con puts (Añade retorno de carro)
  • Soporta cadenas múltilínea
  • No soporta HERE-DOCS
  • Punto de Entrada: Inicio del fichero

SOBRE Occam's Razor
Somos una revista libre que intenta explicar de forma sencilla conceptos tecnológicos y científicos de los que no podemos escapar. Al final, todo es más fácil de lo que parece!

 
Tu publicidad aquí :)