WikiDer > Tcl (Programmiersprache)
Tcl | ||||
| Paradigma | Multiparadigma | |||
| erschien | 1988 | |||
| Entworfen von | John Ousterhout | |||
| Entwickelt von | John Ousterhout | |||
| Aktuelle Version | 8.6.11 (31. Dezember 2020) | |||
| Typensystem | dynamisch | |||
| Implementierungen | ActiveTcl, Androwish | |||
| Dialekte | hecl Jim Jaclpicol | |||
| Einfluss auf | Windows PowerShell | |||
| Lizenz | (und) Tcl/Tk-Lizenz | |||
| Dateierweiterungen | .tcl .tbc | |||
| Webseite | (und) Offizielle Website | |||
| ||||
Tcl (Abkürzung von Werkzeugbefehlssprache) ist ein Skriptsprache das ende achtziger Jahre wurde entwickelt von John Ousterhout. Diese ständig weiterentwickelte Skriptsprache soll eigenständig genutzt werden und wird auch als Skriptsprache in andere Programme eingebaut. Tcl wird normalerweise "tikkel" ausgesprochen und sehr oft mit Tcl the Tk-Toolkit verwendet, womit dann a grafische Benutzeroberfläche gemacht wird (man spricht dann von Tcl/Tk). Tcl ist verfügbar für Unix/Linux, Fenster, OS X und Android.
Grammatik
Tcl hat ein einfaches Grammatik:
- Ein Satz besteht aus Wörtern, die durch Leerzeichen getrennt sind.
- Ein Text besteht aus Sätzen, die durch Returnzeichen getrennt sind.
- Ein Befehl ist ein Satz, dessen erstes Wort den Befehl und die folgenden Wörter die Parameter angibt.
- Ein Skript ist ein Text, der aus Befehlssätzen besteht.
- Enthält ein Wort eckige Klammern ( [ und ] ), wird der Text dazwischen als Befehl genommen und ausgeführt. Anstelle der Klammern wird das Ergebnis des Befehls eingefügt.
- Wenn ein Wort ein Dollarzeichen gefolgt von einem Wort enthält (z. B. $word), wird der Wert der Variablen mit diesem Namen gesucht und an seiner Stelle eingefügt.
- In Anführungszeichen eingeschlossener Text wird als ganzes Wort behandelt, auch wenn er Leerzeichen oder Rückgabezeichen enthält.
- Text in geschweiften Klammern wird wörtlich genommen; In geschweiften Klammern haben Dollarzeichen, Anführungszeichen und Klammern keine Bedeutung. Es ist möglich, geschweifte Klammern zu verschachteln, in diesem Fall gehören die verschachtelten geschweiften Klammern einfach zum wörtlichen Text.
Die wichtigsten Befehle
einstellen
Dieser Befehl setzt eine Variable auf einen bestimmten Wert. Der erste Parameter ist der Variablenname, der zweite der gewünschte Wert. Beispiel:
set a 0set b $aset c "Wert von b ist $b"
Prozess
Dieser Befehl definiert eine Prozedur. Der erste Parameter ist der Name der Prozedur. Der zweite Parameter wird als Satz angesehen, in dem jedes Wort der Name eines Parameters ist. Der dritte Parameter wird als Skript angesehen, das die Befehle enthält, aus denen die Prozedur besteht. Beispiel:
proc quadriert {x} { return [expr {$x * $x}]}Wird eine Prozedur ohne Rückgabebefehl beendet, wird das Ergebnis des letzten Befehls als Ergebnis der Prozedur zurückgegeben. Man kann also auch einfach schreiben:
proc quadriert x {ausdr {$x*$x}}Rückkehr
Dieser Befehl unterbricht die Ausführung der aktuellen Prozedur. Der erste Parameter ist das Ergebnis der Prozedur.
ausdrücken
Dieser Befehl berechnet eine Arithmetik Ausdruck. Alle Parameter werden zu einem Wort zusammengefasst und der daraus gebildete arithmetische Ausdruck berechnet. Normalerweise ist es vorzuziehen, den Ausdruck in geschweifte Klammern zu setzen, um eine doppelte Auswertung zu vermeiden. Ohne geschweifte Klammern würde der Ausdruck zuerst von der Shell und dann vom Befehl expr ausgewertet.
wenn
Dieser Befehl wird verwendet, um Befehle bedingt auszuführen. Der erste Parameter ist die Bedingung. Diese Bedingung ist eine Arithmetik Ausdruck. Das zweite Wort ist immer gleich "dann". Das dritte Wort gilt als auszuführendes Skript, wenn das Ergebnis der Bedingung ungleich "0" ist. Das vierte Wort ist immer gleich "else". Das fünfte Wort gilt als auszuführendes Skript, wenn das Ergebnis der Bedingung 0 ist. Beispiel:
if {$x == 5} then { set y 200} else { set y 0}Das Wort "sonst" und die nachfolgende Schrift können natürlich auch weggelassen werden. Außerdem ist das Wort "dann" optional und wird normalerweise nicht erwähnt. Beispiel:
if {$y > 200} {set y 200}während
Dieser Befehl wird verwendet, um eine Schleife zu erstellen. Der erste Parameter wird als Arithmetik angesehen Ausdruck. Der zweite Parameter gilt als auszuführendes Skript, solange die Arithmetik Ausdruck ist nicht gleich "10". Beispiel:
setze x 0while {$x != 10} { setze x [expr {$x 1}]}Weitere Befehle sind in der Dokumentation beschrieben.[1]
Anwendungen
Da sich in Tcl alles um Wörter und Sätze dreht, eignet sich die Sprache sehr gut zum Bearbeiten von Texten. Tcl erweist sich auch als hervorragender Ersatz für Unix sh-Skripte; die Sprache erweist sich als mächtiger, performanter und vor allem einfacher zu programmieren als Standard-Unix-Shells.
Tcl ist auch für Windows verfügbar und kann in ähnlicher Weise ein willkommener Ersatz für sein StapelSkripte bilden. Damit die Skripte funktionieren, ohne dass Tcl installiert werden muss, steht der TclPro Compiler zur Verfügung.
Tcl eignet sich zum Generieren von Webseiten. Tclhttpd ist ein vollständig in Tcl geschriebener Webserver.
Ein weiterer Webserver, in dem Tcl zentral ist, ist AOLserver. In AOLserver, in typischem ASP oder SP PHP-Style Mischen von HTML-Code mit Tcl-Code. Da Tcl viele und umfangreiche Textfunktionen enthält, entsteht eine leistungsstarke Kombination. Tcl lässt sich auch in Datenbanken integrieren (wobei die Textverarbeitung von Tcl praktisch ist, um SQLAbfragen) und verfügt über eine API zur Kommunikation mit Webservern.
Performance
Da Tcl häufig Strings (Text) verwendet, ist es logisch, dass Tcl langsam ist. Dies ist nicht der Fall, da Tcl faul beim Konvertieren in Strings: Dies geschieht nur, wenn es wirklich notwendig ist. Beispielsweise:
setze i 0 setze i [expr {$i 4}]set i [expr {$i 4}]set t "i ist gleich $i"Im ersten Befehl wird i gleich "0" gesetzt. Da "0" ein Text ist, wird er als Text im Speicher abgelegt.
Im zweiten Befehl wird i als Zahl verwendet. Die Textversion wird in eine Ganzzahl umgewandelt, entladen. Die ganzzahlige Version wird dann in der Berechnung verwendet.
Wenn dann der dritte Befehl ausgeführt wird, wird i immer noch als ganze Zahl im Speicher gespeichert, und die Berechnung kann ohne Umwandlungen reibungslos durchgeführt werden.
Im vierten Befehl wird i jedoch wieder als String benötigt. Die ganze Zahl wird in eine Textdarstellung umgewandelt und verwendet, um den Wert von t zu berechnen.
Das obige Schema stellt sicher, dass Konvertierungen kein großes Geschwindigkeitsproblem mehr darstellen. Um die Leistung weiter zu steigern, hat Tcl a Compiler. Dieser Compiler kompiliert automatisch Code in Prozeduren zu a Zwischencode beim ersten Lauf. Die Prozedur kann dann bei einem nachfolgenden Aufruf wesentlich schneller ausgeführt werden als der ursprüngliche Code in Textform.
Externe Links
- (und) Offizielle Website
- (und) Das Tcler-Wiki
- (NL) (und) Tcl-Grammatik
Literatur
- Ashok P. Nadkarni Die Tcl-Programmiersprache, ISBN 154867964X , 2017
Quellen, Anmerkungen und/oder Verweise
|
| Siehe die Kategorie Tcl-Programmiersprachenfamilie von Wikimedia Commons für Mediendateien zu diesem Thema. |
| Programmiersprachen |
|---|
ABAP ·ABC ·ActionScript ·ada ·algol ·APL ·Assemblersprachen ·AWK ·B ·BASIC ·BCPL ·C ·C ·C♯ ·sauber ·Schermaschine ·COBOL ·COMAL ·Curry ·d ·Eiffel ·Erlang ·F♯ ·her ·fortran ·gehen ·Haskell ·Symbol ·J ·Java ·Kotlin ·lispeln ·Logo ·lua ·m4 ·ML ·Modula-2 ·Oberon ·Objekt Pascal ·Ziel c ·Ocamli ·Unze ·Pascal ·perl ·PHP ·PL/I ·PL/SQL ·Prolog ·Prova ·Python ·Rexx ·Rollenspiel ·Rubin ·Frieden ·SAS ·Reichweite ·planen ·Selbst ·Simula ·Smalltalk ·Schnell ·TCL ·Typoskript ·vala ·Visual Basic |