Sprache

Tcl ist eine sehr einfache Programmiersprache. Wenn Sie programmiertvorher können Sie genug lernen, um interessante Tclprogramme innerhalb weniger Stunden zu schreiben. Diese Seite bietet einen schnellen Überblick über die wichtigsten Funktionen von Tcl. Nachdem Sie dies gelesen haben, werden Sie wahrscheinlich in der Lage sein, einfache Tcl-Skripte selbst zu schreiben; Wir empfehlen Ihnen jedoch, eines der vielen verfügbaren Tcl-Bücher zu konsultieren, um weitere vollständige Informationen zu erhalten.

Grundlegende Syntax

Tcl-Skripte bestehen aus Befehlen, die durch Zeilenumbrüche oder Semikolons getrennt sind., Befehle haben alle die gleiche Grundform veranschaulichtdurch das folgende Beispiel:

expr 20 + 10

Dieser Befehl berechnet die Summe von 20 und 10 und gibt das Ergebnis 30 zurück.Sie können dieses Beispiel und alle anderen auf dieser Seite ausprobieren, indem Sie sie in eine Tcl-Anwendung eingeben, z. B. tclsh; Nach Abschluss des Befehls gibt tclsh das Ergebnis aus.

Jeder Tcl-Befehl besteht aus einem oder mehreren durch Leerzeichen getrennten Wörtern., In diesem Beispiel gibt es vier Wörter: expr,, + und 10. Das erste Wort ist der Name eines Befehls und die anderen Wörter sind argumentzu diesem Befehl. Alle Tcl-Befehle bestehen aus Wörtern, aber unterschiedlichbefehle behandeln ihre Argumente unterschiedlich.Der Befehl expr behandelt alle seine Argumente zusammen als arithmetischen Ausdruck, berechnet das Ergebnis dieses Ausdrucks und gibt das Ergebnis als Zeichenfolge zurück., Im Befehl exprist die Unterteilung in Wörter nicht signifikant: Sie hätten genauso einfach denselben Befehl aufrufen können wie

expr 20+10

Für die meisten Befehle ist die Wortstruktur jedoch wichtig, wobei jedes Wort für einen bestimmten Zweck verwendet wird.

Alle Tcl-Befehle returnresults. Wenn ein Befehl kein aussagekräftiges Ergebnis hat, gibt er eine anempty-Zeichenfolge als Ergebnis zurück.

Variablen

Mit Tcl können Sie Werte in Variablen speichern und die Befehle values laterin verwenden. Der Befehl set wird zum Schreiben und Lesen von Variablen verwendet., Der folgende Befehl ändert beispielsweise die Variablex so, dass sie den Wert 32enthält:

set x 32

Der Befehl gibt den neuen Wert der Variablen zurück. Sie können den Wert einer Variablen lesen, indem Sie set mit nur einem singleargument aufrufen:

set x

Sie müssen keine Variablen in Tcl deklarieren: Eine Variable wird beim ersten Festlegen automatisch erstellt. Tcl-Variablen haben keine Typen: Jede Variable kann einen beliebigen Wert enthalten.,

Um den Wert einer Variablen in einem Befehl zu verwenden, verwenden Sie variablesubstitution wie im folgenden Beispiel:

expr $x*3

Wenn eine $ in einem Befehl erscheint, behandelt Tcl die darauf folgenden Buchstaben und Ziffern als Variablennamen und ersetzt den Wert der Variablen anstelle des Namens. In diesem Beispiel lautet das vom Befehl expr empfangene Textargument32*3 (vorausgesetzt, die Variable x wurde wie im vorherigen Beispiel festgelegt)., Sie können die Variablenersetzung in jedem Wort eines Befehls oder sogar mehrmals innerhalb eines Wortes verwenden:

set cmd exprset x 11$cmd $x*$x

Befehlsersetzung

Sie können auch das Ergebnis eines Befehls in einem Argument für einen anderen Befehl verwendenkommand. Dies nennt man Befehlsersetzung:

set a 44set b 

Wenn ein als verschachtelter Tcl-Befehl.Tcl wertet den verschachtelten Befehl aus und ersetzt sein Ergebnis intothe enclosing Befehl anstelle des bracketed Textes., Im obigen Beispiel ist das zweite Argument des zweiten Befehls set 176.

Anführungszeichen und Klammern

Mit doppelten Anführungszeichen können Sie Wörter angeben, die Leerzeichen enthalten. Betrachten Sie zum Beispiel das folgende Skript:

set x 24set y 18set z "$x + $y is "

Nachdem diese drei Befehle ausgewertet wurden variable z willhave den Wert 24 + 18 is 42. Alles zwischen den Anführungszeichen wird als einzelnes Wort an den Befehl set übergeben., Beachten Sie, dass(a) Befehls-und Variablenersetzungen für den Text zwischen den Anführungszeichen durchgeführt werden und (b) die Anführungszeichen selbst nicht an den Befehl übergeben werden.Wenn die Anführungszeichen nicht vorhanden wären, hätte der Befehl set 6 Argumente erhalten, was einen Fehler verursacht hätte.

Geschweifte Klammern bieten eine weitere Möglichkeit, Informationen in Wörter zu gruppieren.,Sie unterscheiden sich von Anführungszeichen dadurch, dass keine Ersetzungen durchgeführtauf dem Text zwischen den geschweiften Klammern:

set z {$x + $y is }

Dieser Befehl setzt variable z auf den Wert“$x + $y is „.

Kontrollstrukturen

Tcl bietet einen vollständigen Satz von Kontrollstrukturen, einschließlich Befehlen für bedingte Ausführung, Schleifen und Prozeduren. Tcl controlstructures sind nur Befehle, die Tcl-Skripte als Argumente verwenden.,Im folgenden Beispiel wird eine Tcl-Prozedur mit dem Namen powererstellt,die eine Basis auf eine ganzzahlige Potenz erhöht:

proc power {base p} { set result 1 while {$p > 0} { set result set p } return $result}

Dieses Skript besteht aus einem einzigen Befehl, proc. Der Befehlproc verwendet drei Argumente: den Namen einer Prozedur,eine Liste von Argumentnamen und den Hauptteil der Prozedur, der istein Tcl-Skript. Beachten Sie, dass alles zwischen der geschweiften Klammer am Ende der ersten Zeile und der geschweiften Klammer in der letzten Zeile übergeben wirdverbatim an proc als einzelnes Argument., Der Befehl procerstellt einen neuen Tcl-Befehl mit dem Namen power, der zwei Argumente annimmt. Sie können dann power mit folgenden Befehlen aufrufen:

power 2 6power 1.15 5

Wenn power aufgerufen wird, wird der Prozedurenkörper ausgewertet.Während der body ausgeführt wird, kann er auf seine Argumente als Variablen zugreifen:base enthält das erste Argument und p das zweite.,

Der Hauptteil der Prozedur power enthält drei Tcl-Befehle:set, while und return. Der Befehlwhile erledigt die meiste Arbeit des procedure.It verwendet zwei Argumente, einen Ausdruck ($p > 0) und abody, ein anderes Tcl-Skript. Der Befehl while bewertet sein Ausdrucksargument mit ähnlichen Regeln wie in der Programmiersprache C und wenn das Ergebnis wahr ist (ungleich Null), wertet es den Text als Tcl-Skript aus., Es wiederholt diesen Vorgang immer wieder, bis der Ausdruck schließlich zu false (Null) ausgewertet wird. In diesem Fallder Hauptteil des Befehls while multiplizierte den Ergebniswert mit base und dekrementierte dann p. Wennp null erreicht, enthält das Ergebnis die gewünschte Leistung vonbase. Der Befehl return bewirkt, dass die Prozedur mit dem Wert der Variablen result als Ergebnis der Prozedur beendet wird.

Woher kommen Befehle?,

Wie Sie gesehen haben, werden alle interessanten Funktionen in Tcl durch Befehle dargestellt. Anweisungen sind Befehle, Ausdrücke sindevaluiert durch Ausführen von Befehlen,Steuerstrukturen sind Befehle und Prozeduren sind Befehle.

Tcl-Befehle werden auf drei Arten erstellt. Eine Gruppe von Befehlenwird vom Tcl-Interpreter selbst bereitgestellt. Diese Befehle werden calledbuiltin-Befehle. Sie enthalten alle Befehle, die Sie bisher gesehen haben, und viele mehr (siehe unten). Die eingebauten Kommandosind in allen Tcl-Anwendungen vorhanden.

Die zweite Gruppe von Befehlen wird mit dem Tcl extensionmechanism erstellt., Tcl stellt APIs bereit, mit denen Sie einen neuen Befehl erstellen könnendurch Schreiben einer Befehlsprozedur in C oder C++, die den Befehl implementiert. Anschließend registrieren Sie die Befehlsprozedur beim TCL-Interpreter, indem Sie Tcl den Namen des Befehls mitteilen, den theprocedure implementiert. In Zukunft, wann immer dieser bestimmte Nameist für einen Tcl-Befehl verwendet, Tcl ruft Ihre Befehlsprozedur auf, um den Befehl zu verfolgen. Die eingebauten Befehle werden ebenfalls mit demselben Erweiterungsmechanismus implementiert; Ihre Befehlsprozeduren sind einfachteil der Tcl-Bibliothek.,

Wenn Tcl in einer Anwendung verwendet wird, integriert die Anwendung ihre Schlüsselfunktionen mithilfe des Erweiterungsmechanismus in Tcl. Daher variiert die Menge der verfügbaren Tcl-Befehle von Anwendung zu Anwendung.Es gibt auch zahlreiche Erweiterungspakete, die in jede Tcl-Anwendung integriert werden können. Eine der bekanntesten Erweiterungen ist Tk,die leistungsstarke Funktionen zum Erstellen grafischer Benutzeroberflächen bietet. Andere Erweiterungen bieten objektorientierte Programmierung, Datenbankzugriff,mehr grafische Funktionen und eine Vielzahl anderer Funktionen., Einer der größten Vorteile von Tcl beim Erstellen von Integrationsanwendungen ist die Möglichkeit, sie um neue Funktionen zu erweitern oder mit anderen Ressourcen zu kommunizieren.

Die dritte Gruppe von Befehlen besteht aus Prozeduren, die mit dem Befehl proc erstellt wurden, z. B. dem Befehl power, der oben erstellt wurde. Typischerweise werden Erweiterungen für Funktionen auf niedrigerer Ebene verwendet, bei denen die C-Programmierung bequem ist, und Prozeduren werden für Funktionen auf höherer Ebene verwendet, bei denen das Schreiben in Tcl einfacher ist.,

Weitere Funktionen

Tcl enthält neben den in den Präzedenzbeispielen verwendeten viele andere Befehle. Hier ist ein Sampler von einigen der Featuresbereitstellt durch die eingebauten Tcl-Befehle:

  • Weitere Steuerstrukturen, wie if, ,foreach und switch.
  • String-Manipulation, einschließlich einer leistungsstarken regulären Expressionmatching-Funktion. Strings beliebiger Länge können genauso einfach übergeben und manipuliert werden wie Zahlen.,
  • I / O, einschließlich Dateien auf der Festplatte, Netzwerk-Sockets und Geräte suchas serielle Ports. Tcl bietet besonders einfache Einrichtungen fürsocket-Kommunikation über das Internet.
  • Dateiverwaltung: Tcl bietet verschiedene Befehle zum Bearbeiten von Dateinamen, Lesen und Schreiben von Dateiattributen, Kopieren von Dateien, Löschen von Dateien,Erstellen von Verzeichnissen usw.
  • Subprocess invocation: Sie können andere Anwendungen mit dem Befehlexec ausführen und während der Ausführung mit ihnen kommunizieren.,
  • Listen: Tcl macht es einfach, Wertesammlungen (Listen)zu erstellen und auf verschiedene Arten zu bearbeiten.
  • Arrays: Sie können strukturierte Werte erstellen, die aus Name-valuepairs mit beliebigen Zeichenfolgenwerten für die Namen und Werte bestehen.
  • Zeit-und Datumsmanipulation.
  • Ereignisse: Mit Tcl können Skripte auf das Auftreten bestimmter Ereignisse warten, z. B. die verstrichene Zeit oder die Verfügbarkeit von Eingabedaten in einem Netzwerksocket.,

Beispiele

  • Ein einfaches Befehlszeilentool
  • Ein einfacher Netzwerkserver

Tutorial

Haben Sie etwas Zeit, um ein bisschen weiter in die Sprache einzutauchen?Das Tcl Tutorialist eine großartige Möglichkeit, mehr über die verschiedenen Befehle und Sprachfunktionen von Tcl zu erfahren.

Share

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.