Da TCL eine sehr einfache Stuktur hat, ist es meiner Meinung nach eine gute Sprache für Einsteiger in die Programmierung.
Da es allerdings keine feste Syntax wie andere Sprachen hat, sollte man sich rasch einen klaren Programmierstil aneignen.
Dazu sollen die folgenden Lektionen und Beispiele eine Anregung bieten.
Warum TCL?
TCL bietet für Anfänger folgende Vorteile:
einfache Sprachregeln, wenige Befehle
Interpreter erlaubt schnelles Ausprobieren und Testen
kleine Programme zeigen schnelle Erfolge
Unterstützung von Internet und Unicode machen es zukunftsfähig
TCL ist kostenlos verfügbar, Open Source Projekt unter BSD-Lizenz
Unterstützung durch aktive Newsgroup comp.lang.tcl
TCL ist in C geschrieben, Erweiterungen in C sind möglich
TCL-Programme können plattformunabhängig für Linux, Macintosh, Unix-Systeme und Windows erstellt werden
hohe Abstraktionsgrade möglich, da Sprache dem Problem angepasst werden kann
socket und file-i/o erlauben Dateimanipulation und Zugriffe auf Netzwerkdienste
Tk: Funktionale Graphik-Objekte, auch aus anderen Programmiersprachen heraus ansprechbar, z.B. Perl, Python
Objektorientierung möglich, mit itcl ist ein Quasi-Standard vorhanden, der bald in die Standarddistribution eingebaut wird
Einführung
TCL - Herkunft und Features
Herkunft: TCL wurde von Prof. John Ousterhout entwickelt. Von Sun in Firma Scriptics ausgelagert, heute in Ajuba umbenannt.
Begriffe
Voraussetzungen
Installation
Installation, Versionen, Aufruf: Stand 7/2000 sind TCL/TK 8.4a1 und TclPro 1.3 aktuell
Dateistruktur, tclsh, wish, Kommandostruktur: Aufruf tclsh oder wish von Kommandozeile aus, Start über Icon oder direkt über assoziierten Dateityp
Erste Schritte
Aufruf von Demos, erste Fehlermeldungen: eigene Demos unter c:\Programme\Tcl\lib\tk8.3\demos\widget.tcl (je nach Version tk8.x), gute Demos efftcl
Hilfe-Dateien Win, Unix, unter Windows eine winhelp-Datei, besser ist unter Unix der HTML-Baum, tkref ist gerade im Betastadium verfügbar und dokumentiert Version 8.4a1 sowie einige Erweiterungen
Firma jetzt www.ajubasolutions.com, Entwicklersupport weiterhin unter dev.scriptics.com, sehr aktive Newsgroup comp.lang.tcl, wiki unter http://purl.org/thecliff/tcl/wiki
Arbeitsweise bei Entwicklung info-Kommando, Kommando mit fehlenden oder falschen Parametern aufrufen und Fehlermeldungen lesen
Editoren und IDEs tkcon, Ased, Tcl-Ide, et3, Alpha, vim
Syntax
Evaluierung von Kommandozeilen:
Struktur eines Kommandos Alle Ersetzungen von Variablen werden zuerst durchgeführt. Erstes Wort einer Zeile ist das Kommando, weitere sind Parameter und werden evaluiert.
Quoten \ am Zeilenende, \" in Strings, \n und \r und \t in Zeichenketten
Kommentare werden durch # begonnen, dürfen nur stehen, wo ein Kommando stehen darf, müssen richtig geklammert sein (Vorsicht, Anfängerfalle!)
Dateitypen Argumente sind zunächst immer Zeichenketten, bei Bedarf werden sie als Zahl evaluiert, wobei es evt. zu Fehlern kommen kann. Zahlen ohne Nachkommastellen werden als Integer betrachtet, mit ihnen werden dann auch nur Integer-Operationen durchgeführt.
Zuweisung, {} und [] und ""
Blockstruktur Strukturen werden durch geschweifte Klammern umschlossen
Variablen
Arrays
Listen
Zeichenketten
Mathematik
Quoten
Kommentare
Fallen und häufige Fehler
Kommentare, Oktale Zahlen, Evaluierung
Aufrufparameter, Umgebungsparameter: argv enthält die Aufrufparameter, das Array env enthält die Umgebungsvariablen
exec und pipe-Aufruf noch hierher!
Vergleich mit anderen Skriptsprachen
bash etc.
Basic
Perl
Python
Vergleich mit anderen Programmiersprachen
Forth von Brodie?
Delphi von Borland
Labwindows/CVI von National Instruments
Oberon von Niklaus Wirth
Visual Basic von Microsoft
% set a "Dies ist ein Test" Dies ist ein Test
% string length $a 17
Listen
% set a "eins zwei drei" eins zwei drei
% llength $a 3
Graphikfenster
HTTP-Server
Verweis auf tclhttpd und minihttpd
cgi-Skripte
Beispiele in tclhttpd und aform.cgi
Wiki
Beispiel 'großes' Wiki und eigenes awiki.cgi
TCL und HTML
Routinen aus webtool zur Erstellung dieser Webseiten
TCL und XML
Verweis auf Business-Tools von Scriptics, XML-Editor und eigene Routinen
Erweiterungen
tcllib ist 4/2001 in Version 0.9 aktuell, enthält Erweiterungen wie z.B. base64, ftp
tclhttpd Kompletter Webserver in TCL unter BSD-Lizenz, cgi-Unterstützung eingebaut, scriptics.com läuft darauf
serielle Schnittstellen können unter Windows und Unix wie normale Dateibezeichner verwendet werden, damit Zugriff möglich
XML Modellieren von Geschäftsdaten, Austausch von XML-Daten ist genau das neue Businessmodell von Ajuba, daher die Umbennung
TCL-Kommandos in C erzeugbar, diese sind wie normale Kommandos benutzbar
C-Einbindung von tcl.c TCL kann in vorhandene C-Programme als Interpreter eingebettet werden, dabei Event-Modell übernehmen oder eigenes benutzen
Wrapper und Compiler mk_tclapp, freewrap und freewrap_tclsh
TclPro ist die kostenpflichtige Variante von Tcl, enthält einen Debugger, Code-Obfuscator und einen Wrapper für mehrere Plattformen
Letzte Änderung am 13.1.2002 von Axel Nagelschmidt. Seit ihrer Erstellung am 6.5.2000 wurde diese Seite 5 mal überarbeitet. Das entspricht etwa einer Bearbeitung alle 123 Tage.