Tcl

Tcl (ursprünglich aus der "Werkzeug-Befehl-Sprache", aber herkömmlich buchstabiertem "Tcl" aber nicht "TCL"; ausgesprochen als "" oder "sieht T-Stück Elle") ist eine scripting von John Ousterhout geschaffene Sprache. Ursprünglich "geboren aus der Frustration" gemäß dem Autor, mit Programmierern, die ihre eigenen Sprachen ausdenken, hat vorgehabt, in Anwendungen eingebettet zu werden, hat Tcl Annahme selbstständig gewonnen. Es wird für schnellen prototyping, scripted Anwendungen, GUIs und Prüfung allgemein verwendet. Tcl wird auf eingebetteten Systemplattformen sowohl in seiner vollen Form als auch in mehreren anderen Versionen des kleinen Fußabdrucks verwendet.

Die Kombination von Tcl und dem Tk GUI Werkzeug wird Tcl/Tk genannt.

Geschichte

Die Tcl Programmiersprache wurde im Frühling 1988 von John Ousterhout geschaffen, während man an der Universität Kaliforniens, Berkeley gearbeitet hat.

Konferenzen von Tcl und Werkstätten werden sowohl in den Vereinigten Staaten als auch in Europa gehalten.

Eigenschaften

Die Eigenschaften von Tcl schließen ein

  • Alle Operationen sind Befehle einschließlich Sprachstrukturen. Sie werden in der Präfix-Notation geschrieben.
  • Befehle sind allgemein variadic.
  • Alles kann dynamisch wiederdefiniert und überritten werden.
  • Alle Datentypen können als Schnuren einschließlich des Quellcodes manipuliert werden.
  • Ereignis-gesteuerte Schnittstelle zu Steckdosen und Dateien. Zeitbasierte und benutzerbestimmte Ereignisse sind auch möglich.
  • Variable Sichtbarkeit, die auf das lexikalische (statische) Spielraum standardmäßig, aber uplevel und upvar eingeschränkt ist, der procs erlaubt, um mit den Umgeben-Funktionsspielraumen aufeinander zu wirken.
  • Alle Befehle, die von Tcl selbst definiert sind, erzeugen Fehlermeldungen auf dem falschen Gebrauch.
  • Dehnbarkeit, über C, C ++, Java und Tcl.
  • Interpretierte Sprache mit bytecode
  • Voller Unicode (3.1) Unterstützung, zuerst veröffentlichter 1999.
  • Quer-Plattform: Windows-API; Unix, Linux, Macintosh, usw.
  • Die nahe Integration mit der Fenstertechnik (GUI) verbindet Tk.
  • Vielfache Vertriebsmechanismen bestehen:
  • Volle Entwicklungsversion (z.B, ActiveState Tcl)
  • tclkit (Art der Durchlaufzeit der einzelnen Datei, nur ungefähr 1 Megabyte in der Größe)
  • starpack (einzelne Datei, die einer Schrift/Programms rechtskräftig ist, abgeleitet aus der tclkit Technologie)
  • freewrapTCLSH verwandelt TCL Schriften in die einzelne Datei binäre rechtskräftige Programme.
  • BSD Lizenzen, frei verteilbare Quelle.

Tcl hatte Syntax des Gegenstands orientiert (OO) nicht ursprünglich (8.6 stellt ein OO System im Kern von Tcl zur Verfügung), so wurde OO Funktionalität durch Erweiterungspakete, wie incr Tcl und XOTcl zur Verfügung gestellt. Sogar rein bestehen scripted OO Pakete, wie Snit und STOOOP (einfache tcl-nur objektorientierte Programmierung).

Sicher-Tcl ist eine Teilmenge von TCL, der Eigenschaften eingeschränkt hat. Dateisystemzugang wird beschränkt, und willkürliche Systembefehle werden an der Ausführung verhindert. Es verwendet ein Doppeldolmetscher-Modell mit dem "unvertrauten Dolmetscher", Code in einer unvertrauten Schrift führend. Es wurde von Nathaniel Borenstein und Marshall Rose entworfen, um aktive Nachrichten in die E-Mail einzuschließen. Sicher-Tcl kann in die E-Mail eingeschlossen werden, wenn der application/safe-tcl und multipart/enabled-mail unterstützt werden. Die Funktionalität von Sicheren-Tcl ist als ein Teil der Tcl/Tk Standardausgaben seitdem vereinigt worden.

Syntax und grundsätzliche Semantik

Eine Tcl Schrift besteht aus mehreren Befehl-Beschwörungen. Eine Befehl-Beschwörung ist eine Liste von Wörtern, die durch whitespace getrennt sind und durch einen newline oder Strichpunkt begrenzt sind.

word0 word1 word2... wordN

Das erste Wort ist der Name eines Befehls, der in die Sprache nicht eingebaut wird, aber der in der Bibliothek ist. Die folgenden Wörter sind Argumente. So haben wir:

commandName argument1 argument2... argumentN

Praktisches Beispiel, mit stellt Befehl der Produktionen eine Schnur, ein Schleppen newline standardmäßig zum stdout Kanal hinzufügend:

stellt "Hallo, Welt!"

</Quelle>

Variablen und die Ergebnisse anderer Befehle können innerhalb von Schnuren auch, solcher als in diesem Beispiel eingesetzt werden, wo wir Satz verwenden und expr, um eine Berechnung zu versorgen, auf eine Variable hinauslaufen, und stellt, um das Ergebnis zusammen mit einem erklärenden Text zu drucken:

  1. Guter Stil würde den Ausdruck (1+2+3+4+5, in diesem Fall) innen {lockige geschweifte Klammern }\stellen

Satz-Summe [expr 1+2+3+4+5]

stellt "Die Summe der Nummern 1.. 5 ist $sum."

</Quelle>
  1. Expr-Funktion wird schneller bewertet, wenn lockige geschweifte Klammern auf der Gleichung hinzugefügt werden.

Satz-Summe [expr {1+2+3+4+5}]

stellt "Die Summe der Nummern 1.. 5 ist $sum."</Quelle>

Es gibt eine grundlegende Konstruktion (der Befehl) und eine Reihe einfacher Ersatz-Regeln.

Formell werden Wörter entweder geschrieben, wie - mit Anführungszeichen um sie ist (whitespace Charaktere erlaubend, die einzubetten sind), oder mit Charakteren der krausen geschweiften Klammer um sie, der alle Ersetzungen innen (abgesehen von der Beseitigung des umgekehrten-Schrägstrichs-newline) unterdrückt. In bloßen und doppelt angesetzten Wörtern kommen drei Typen des Ersatzes (einmal, in einem einzelnen zum Recht nach links Ansehen durch das Wort) vor:

  • Befehl-Ersatz ersetzt den Inhalt von erwogenen eckigen Klammern mit dem Ergebnis, die Schrift enthalten innen zu bewerten. Zum Beispiel, "[expr 1+2+3]" wird durch das Ergebnis ersetzt, den enthaltenen Ausdruck zu bewerten (d. h. 6), da es ist, was der Befehl tut.
  • Variabler Ersatz ersetzt ein Dollarzeichen, das vom Namen einer Variable mit dem Inhalt der Variable gefolgt ist. Zum Beispiel wird "$foo" durch den Inhalt genannten "foo" der Variable ersetzt. Der Variablenname kann in lockigen geschweiften Klammern umgeben werden, um abzugrenzen, was ist und nicht der Variablenname in sonst zweideutigen Fällen ist.
  • Ersatz des umgekehrten Schrägstrichs ersetzt einen umgekehrten Schrägstrich, der von einem Brief mit einem anderen Charakter gefolgt ist. Zum Beispiel wird "\n" durch einen newline ersetzt.

Von Tcl 8.5 vorwärts kann jedes Wort durch "{*}" vorbefestigt werden, um dieses Wort zu veranlassen, einzeln in seine konstituierenden Subwörter zu den Zwecken gespalten zu werden, die Befehl-Beschwörung (ähnlich"," Folge der Quasizitat-Eigenschaft des Lispelns) zu bauen.

Demzufolge dieser Regeln kann das Ergebnis jedes Befehls als ein Argument für jeden anderen Befehl verwendet werden. Außerdem gibt es keinen Maschinenbediener oder Befehl für die Schnur-Verkettung, weil die Sprache direkt verkettet. Bemerken Sie, dass, unterschiedlich in Befehl-Schalen von Unix, Tcl keine Schnur, wenn ausführlich nicht geleitet, grammatisch wiederanalysiert, so zu tun, der interaktiven Gebrauch beschwerlicher macht, aber scripted verwenden voraussagbarer (z.B, verursacht die Anwesenheit von Räumen in Dateinamen Schwierigkeiten nicht).

Das einzelne Gleichheitszeichen (=) wird zum Beispiel überhaupt, und das doppelte Gleichheitszeichen nicht verwendet (==) ist der Test auf die Gleichheit, und sogar dann nur in Ausdruck-Zusammenhängen wie der Befehl oder das erste Argument dafür. (Beide jener Befehle sind gerade ein Teil der Standardbibliothek; sie haben keinen besonders speziellen Platz in der Bibliothek und können auf Anfrage ersetzt werden.)

Die Mehrheit von Befehlen von Tcl, besonders in der Standardbibliothek, ist variadic, und (der Konstrukteur für Scripted-Befehl-Verfahren) erlaubt, Verzug-Werte für unangegebene Argumente und ein allumfassendes Argument zu definieren, um dem Code zu erlauben, beliebige Zahlen von Argumenten zu bearbeiten.

Tcl wird nicht statisch getippt: Jede Variable kann ganze Zahlen, Hin- und Herbewegungen, Schnuren, Listen, Befehl-Namen, Wörterbücher oder jeden anderen Wert enthalten; Werte werden (Thema syntaktischen Einschränkungen) als andere Typen auf Verlangen wiederinterpretiert. Jedoch sind Werte unveränderlich und Operationen, die scheinen, sie zu ändern, wirklich gerade geben einen neuen Wert stattdessen zurück.

Das Verbinden mit anderen Sprachen

Tcl verbindet heimisch mit der c Sprache.

Das ist, weil es ursprünglich geschrieben wurde, um ein Fachwerk zu sein, für ein syntaktisches Vorderende zu Befehlen zur Verfügung zu stellen, die in C und allen Befehlen auf der Sprache geschrieben sind (einschließlich Dinge, die Schlüsselwörter, solcher sonst sein könnten, als ob oder während), werden dieser Weg durchgeführt. Jede Befehl-Durchführungsfunktion wird eine Reihe von Werten passiert, die (bereits eingesetzt) Argumente für den Befehl beschreiben, und frei ist, jene Werte zu interpretieren, wie es passend sieht.

Digitallogiksimulatoren schließen häufig eine Schnittstelle von Tcl scripting ein, für Verilog, VHDL und Hardware-Sprachen von SystemVerilog vorzutäuschen.

Werkzeuge bestehen (z.B Schluck, ffidl), um den notwendigen Code automatisch zu erzeugen, um willkürliche C-Funktionen und die Durchlaufzeit von Tcl zu verbinden, und Critcl tut die Rückseite, das Einbetten des willkürlichen C-Codes innerhalb einer Schrift von Tcl und des Kompilierens davon an der Durchlaufzeit in einen DLL erlaubend.

C ++ Zwischenfunktionsfähigkeit

Javanische Zwischenfunktionsfähigkeit

Erweiterungspakete

Die Tcl Sprache hat immer Erweiterungspakete berücksichtigt, die zusätzliche Funktionalität, wie ein GUI, endbasierte Anwendungsautomation, Datenbankzugang usw. zur Verfügung stellen.

Tk

Die populärste Erweiterung von Tcl ist das Werkzeug von Tk, das eine grafische Benutzerschnittstelle-Bibliothek für eine Vielfalt von Betriebssystemen zur Verfügung stellt. Jeder GUI besteht aus einem oder mehr Rahmen. Jeder Rahmen hat einen Lay-Out-Betriebsleiter.

Erwarten

Eine der anderen sehr populären Erweiterungen von Tcl ist Erwarten Erweiterung. Die frühe nahe Beziehung dessen Erwartet mit Tcl ist für die Beliebtheit von Tcl in fruchtbaren Gebieten des Gebrauches solcher als in der Prüfung von Unix größtenteils verantwortlich, wo Erwarten, war (und ist noch heute) verwendet sehr erfolgreich, um telnet, ssh, und Seriensitzungen zu automatisieren, um viele wiederholende Aufgaben (d. h., scripting früher interaktiv-einziger Anwendungen) durchzuführen. Tcl war die einzige Weise zu laufen, Erwarten so in diesen Gebieten der Industrie sprunghaft ansteigen lassene Beliebtheit von Tcl.

Tile/Ttk

Tile/Ttk ist Stile und theming Produkt-Sammlung, die die meisten Produkte in Tk mit Varianten ersetzen kann, die aufrichtig Plattform-Eingeborener durch Anrufe zu einer API eines Betriebssystems sind. Themen bedeckt sind auf diese Weise Windows XP, Windows-Klassiker, Qt (der in den X11 KDE Umgebungsbibliotheken anhakt), und Wasser (Mac OS X). Ein Thema kann auch ohne diese Anrufe mit Produkt-Definitionen gebaut werden, die mit dem Image pixmaps ergänzt sind. Themen haben diesen Weg geschaffen schließen Klassischen Tk, Schritt, Alt/Revitalized, Plastik und Keramik ein.

Unter Tcl 8.4 ist dieses Paket als Ziegel bekannt, während in Tcl 8.5 es in den Kernvertrieb von Tk (als Ttk) gefaltet worden ist.

Tix

Tix, die Tk-Schnittstelle-Erweiterung, ist eine Reihe von Benutzerschnittstelle-Bestandteilen, die die Fähigkeiten zu Tcl/Tk- und Pythonschlange-Anwendungen ausbreiten. Es ist ein offenes Quellsoftwarepaket, das von Freiwilligen in Tix Project Group aufrechterhalten ist und laut einer BSD-artigen Lizenz veröffentlicht ist.

Seite: http://tix.sourceforge.net /

Itcl/IncrTcl

Itcl ist ein Gegenstand-System für Tcl, und wird normalerweise als [incr Tcl] (dass genannt, die Weise seiend, in Tcl, ähnlich in Mode dem Namen C ++ zu erhöhen).

Tcllib

Tcllib ist eine Reihe von scripted Paketen für Tcl, der ohne Kompilationsschritte verwendet werden kann.

TclUDP

Der Tcl UDP Erweiterung stellt eine einfache Bibliothek zur Verfügung, um Steckdosen von User Datagram Protocol (UDP) in Tcl zu unterstützen.

Datenbanken

Tcl Datenbankkonnektivität (TDBC), ein Teil von Tcl 8.6, ist eine Zugriffsschnittstelle der gemeinsamen Datenbank für Schriften von Tcl. Es unterstützt zurzeit Fahrer, für auf MySQL, ODBC, PostgreSQL und SQLite Datenbanken zuzugreifen. Mehr wird für die Zukunft geplant.

Der Zugang zu Datenbanken wird auch durch datenbankspezifische Erweiterungen unterstützt, von denen es viele verfügbar gibt.

  • tclodbc
  • mk4tcl Metakit
  • SQLite
  • Pgtcl, pgintcl - für Postgres
  • mysqltcl, msqltcl
  • AdabasTcl
  • FBSQL
  • ibtcl
  • Oratcl - für das Orakel
  • Sybtcl - für Sybase
  • db2tcl

Siehe auch

Software, die in Tcl geschrieben ist

  • aMSN
  • Coccinella
  • Erwarten Sie
  • InstallJammer
  • MacPorts
  • OpenACS
  • Projektoffener
  • TclMon
  • Tkabber
  • OpenSEES

Objektorientierte Bibliotheken

  • Itcl
  • Itk
  • XOTcl

Erweiterungen (Bibliotheken)

Erwarten Sie
  • Img
  • Snit
  • Tcllib
  • TclX
  • Tk (offizieller Teil von Tcl, Produkt-Werkzeug)
  • Trf

Kommentare

  • John K. Ousterhout, Tcl und das Tk Werkzeug, Addison-Wesley, Lesen, Massachusetts, die USA, internationale Standardbuchnummer 0 201 63337 X, 1994.
  • Brent B. Welch, Praktische Programmierung in Tcl und Tk, Prentice Hall, Oberem Sattel-Fluss, New Jersey, den USA, internationale Standardbuchnummer 0-13-038560-3, 2003.
  • J Adrian Zimmer, Tcl/Tk für Programmierer, IEEE Computergesellschaft, die von John Wiley and Sons, internationale Standardbuchnummer 0-8186-8515-8, 1998 verteilt ist.
  • Mark Harrison und Michael McLennan, Wirksame Tcl/Tk-Programmierung, Addison-Wesley, das Lesen, Massachusetts, die USA, internationale Standardbuchnummer 0-201-63474-0, 1998
  • Mark Harrison (Hrsg.), Tcl/Tk Werkzeuge, Medien von O'Reilly, internationale Standardbuchnummer 1-56592-218-2, 1997

Weiterführende Literatur

  • Tcl/Tk 8.5 Programmierkochbuch: Ein praktisches, umfassendes Kochbuch, um die Tiefen und Breiten von Tcl/Tk 8.5 Programmierung zu meistern, die durch das Packt-Veröffentlichen veröffentlicht ist. Geschrieben von Bert Wheeler.

Außenverbindungen

sind

Fernmeldewesen in Tuvalu / Reisender (Rolle spielendes Spiel)
Impressum & Datenschutz