Tcl-programmeringseksempler, veiledninger og mer

Formidling: Din støtte hjelper med å holde nettstedet i gang! Vi tjener et henvisningsgebyr for noen av tjenestene vi anbefaler på denne siden.


Tcl, eller “Tool Command Language” (og uttales som “Tickle”), er et dynamisk typet skriftspråk opprinnelig oppfunnet på slutten av 1980-tallet. Den brukes ofte til prototyping og innebygde systemer, men den er ganske kapabel nok til å brukes til fullskala applikasjoner. Det var påvirket av, og har noen likheter med, Lisp.

Tk er et nært relatert GUI-verktøysett. Det er en utvidelse til Tcl, men er nå tilgjengelig for bruk med flere andre språk.

Tcl og Tk ble opprettet av samme programmerer, og brukes ofte som om de var komponenter i et enkelt verktøy. De deler til og med versjonsnumre. Sammen blir de vanligvis referert til som “Tcl / Tk”, og de er en kraftig teknologi for rask utvikling.

Om Tcl-språket

Tcl er et interessant språk; den har en rekke noe uvanlige funksjoner, sammenlignet med andre programmeringsspråk.

Tcl har ingen reserverte ord eller kontrollstrukturer. Kontrollstrukturer som “for” og “hvis” er faktisk kommandoer. Kommandoer i Tcl kan overstyres eller omdefineres, slik at en programmerer bokstavelig talt kan endre hva “for” (eller et hvilket som helst annet språkkonstruksjon) betyr i et program. Selv om dette vanligvis ikke er tilrådelig, er det veldig kraftig.

Alle datatypene i Tcl kan behandles som strenger fordi de på en viktig måte er strenger. Til og med kildekoden kan manipuleres som en streng. Heltallet 2 og strengen "2" er den samme verdien. Dette betyr ikke at alle variabler må behandles som strenger hele tiden. Verdien 2 er et helt tall når det sendes som et argument til en kommando som er meningsfull for heltall. Hvis "Hallo" overføres til en kommando som behandler argumentet som et helt tall, resultatet blir enten tull eller en feil. Det er opp til programmereren å sørge for at de riktige verdiene blir gitt som argumenter.

Dette betyr at Tcl-verdiene er fundamentalt polymorfe. I tillegg kan kode genereres, inspiseres og manipuleres som alle andre data. Disse funksjonene muliggjør kraftige introspeksjon- og metaprogrammeringsteknikker.

syntax

Syntaksen til språket er veldig enkelt, og ligner på Bash-skriptspråket: en ikke utsmykket kommando etterfulgt av ett eller flere argumenter, atskilt av mellomrom. Krøllete parenteser brukes til å sette av argumenter som må inkludere mellomrom i dem (det vil si innenfor seler, mellomrom er ikke ordavgrensende).

# Dette er en kommentar. Kommentarer begynner med hasjtegnet.

# en veldig enkel kommando for å trykke ordet "Hallo"
hilser

# men hvis vi vil si det "Hei Verden"
setter {hallo verden}

På samme måte som et shell-script, er et Tcl-script bare en serie enkeltlinjekommandoer. Tolken leser alltid den første linjen som et kommandonavn, og behandler hvert ekstra element på linjen som et argument til den kommandoen.

Selv tilsynelatende sammensatte kontrollstrukturer fungerer på denne måten. Vurder følgende:

hvis {$ a == 1} {setter {Hallo, Verden}} {setter {Farvel, grusom verden! }}

Kommandoen som blir påkalt er hvis. Det første argumentet er et uttrykk som skal evalueres. Det neste argumentet er et skript som skal kjøres hvis det første argumentet er sant. Det siste argumentet er et skript som skal kjøres hvis det første argumentet ikke var sant.

Dette er selvfølgelig ganske grunnleggende programmering, men det er interessant hvordan tolken håndterer denne syntaks. Hvis uttrykkene og skriptet var enkeltord, ville de krøllete parentesene være unødvendige:

# lage to nye prosedyrer
proc hallo {} {setter {Hallo, verden! }}
proc farvel {} {setter {farvel, grusom verden!}

# betinget uten krøllete parenteser
hvis $ en hei farvel

Sammen med de krøllete parentesene, er det to ekstra “gruppering” -penninger: doble anførselstegn og firkantede parenteser.

Doble sitater og krøllete parenteser er like (siden alt er en streng) bortsett fra at doble sitater interpolerer variabler, mens krøllete seler behandler innholdet som bokstavelige strenger.

# tilordne "verden" til variabelen a
sette en verden

setter $ a
# verden

setter {hallo $ a}
# hallo $ a

puts "hallo $ a"
# Hei Verden

Firkantede parenteser brukes til utskifting av kommandoer. Det vil si at innholdet i et par firkantede parenteser først blir evaluert av tolken, og deretter blir returverdien erstattet i linjen som enten en kommando eller et argument.

setter [eks {1 + 1}]
Nr. 2

# En dum proff som bare returnerer strengen "puts"
proc return_puts {} {return put}

# Returneringsverdien blir en kommando
[return_puts] [ex {1 + 1}]
Nr. 2

I tillegg, siden kommandoer bare er strenger, kan variable verdier være kommandoer eller hele linjer.

# Tildel en streng "setter {dette er en streng}" å foo
set foo {putter {dette er en streng}}

$ foo
# dette er en streng

setter $ foo
# setter {dette er en streng}

Som du kan se, er Tcl veldig fleksibel.

Tcl Tutorials

  • Den offisielle Tcl-opplæringen er det beste stedet å starte;
  • Tcl opplæring beregnet for nybegynnere;
  • Tcl / Tk Tutorial på Tutorials Point er veldig metodisk, og inkluderer en online tolk slik at du kan begynne å bruke Tcl med en gang;
  • TCLWISE er de første ni kapitlene i en bok om språket, fritt tilgjengelig online;
  • Programmering i Tcl er et 29-delt videokurs med sans for humor;
  • Tcl Tutref er en veilednings- og referanseguide designet for å være en “second opinion” på den offisielle Tcl-dokumentasjonen;
  • Tcl for tenåringer lærer unge og unge til å bruke Tcl til å bygge dataspill;
  • Hvis du leter etter et stort sett komplett studiekurs på Tcl, kan du prøve disse på den offisielle Tcl-wikien:
    • Begynner Tcl;
    • Mellomklasse;
    • Avansert Tcl.

Bøker på Tcl / Tk

  • Praktisk programmering i Tcl og Tk (2003) av Welch og Jones er en autoritativ lærebok om både Tcl og Tk, med nok dyptgående dekning for å tilfredsstille selv erfarne programmerere som kommer fra andre språk;
  • Tcl / Tk, Second Edition: A Developer’s Guide (2003) av Clif Flynt er en veldig praktisk bok som dekker både språket og utviklingsøkosystemet, med spesifikk dekning om verktøy, ofte brukte utvidelser og utviklingspraksis;
  • Tcl and the Tk Toolkit (2009) av Oesterhout og Jones er den definitive guiden om språket, medforfatter av dens oppfinner;
  • Tcl / Tk 8.5 Programming Cookbook (2011) av Bert Wheeler gir en rekke praktiske løsninger på vanlige problemer i Tcl / Tk-programmering.

Tk – GUI Tool Kit for Tcl

Det er mange grunner til at Tcl ble populær da den gjorde det, men Tk er sannsynligvis den viktigste. Tk er en forkortelse Toolkden. Det gjør det enkelt å bygge grafiske brukergrensesnitt (GUIer) med Tcl.

Tk gir et relativt enkelt sett med kommandoer for å generere en formbasert GUI, med alle de vanlige skrivebordselementene du kan forvente: knapper, inputbokser, etiketter, forskjellige typer velgere, rullefelt og så videre. Disse elementene er spesifisert i kildekoden din, sammen med den kjørbare koden som kobles til widgetene – for eksempel hvilken funksjon som skal kjøres når du trykker på en knapp, eller hvor en liste over alternativer for en valgmeny kommer fra. Mens syntaksen er annerledes, vil du være kjent med denne prosessen hvis du noen gang har jobbet med HTML / JS-applikasjoner eller skjemaer.

Tk ble opprinnelig utviklet som en utvidelse til Tcl, av den samme personen som oppfant Tcl. Men Tcl ble raskt et tverrplattformbibliotek, tilgjengelig for programmerere på flere titalls språk. Tk ble utgitt offentlig i 1991, og Pythons Tkinter-modul ble utgitt i 1994. PerlTk kom ut kort tid etter det.

Før 8,5-utgivelsen av Tcl / Tk var det bare ett visuelt design som kontrollerte hvordan disse elementene faktisk så ut. Nå er det temaer for store operativsystemer, slik at en applikasjon innebygd i Tk ser naturlig ut til plattformen den kjører på.

Da Tk først ble tilgjengelig, var det en av de enkleste og raskeste måtene å få en desktop GUI-applikasjon i gang. Selv om det bare var tilgjengelig for Tcl og Unix med det første, tok det av fordi det var så enkelt å bruke. Det er mange flere alternativer i dag enn vi gjorde den gang, men Tk er fortsatt en av de mest effektive måtene å raskt prototype og utvikle desktop-applikasjoner.

Tk Tutorials

Flere av Tcl-veiledningene nevnt ovenfor inneholder informasjon om Tk. Følgende fokuserer spesielt på det.

  • Den offisielle opplæringen om å komme i gang er et virkelig flott sted å begynne; hvert trinn inkluderer kodeprøver for Tcl, Ruby, Perl og Python;
  • Lag GUI ved bruk av Tk med Tcl Language er en litt irreverent opplæring først og fremst for et publikum med grunnleggende programmeringskunnskap; samme forfatter skrev en Tk-tutorial for Perl også.
  • Ruby / Tk Tutorial fra RubyLearning.com er et bra sted å starte for Rubyists;
  • Pythons Tk-implementering er en del av standardbiblioteket, og den offisielle Python-dokumentasjonen gir en nyttig tutorial;
  • En ikke-programmerers introduksjon til Tcl / Tk er en tutorial på både Tcl og Tk, men med en underliggende antakelse om at du ikke ville brukt Tcl uten Tk.

Skal jeg lære Tcl?

Tcl er et flott språk. Det har passert sitt topp i popularitet, men det er fremdeles et veldig aktivt utviklermiljø og mange Tcl-koder i hele verden som trenger å passe på.

Enda viktigere er at det virkelig er annerledes. Hvis du har flyttet fra JavaScript til PHP til Ruby til Python, fortsetter du å trekke inn veldig lignende konseptuelle grunnlag. Du lærer nye syntaks og nye nøkkelord, men ikke virkelig en ny måte å tenke på.

Tcl er et av få språk (som Lisp og Erlang) som virkelig tvinger deg til en annen måte å tenke på hvordan du designer et program. Selv om du ikke ender opp med å bruke det til noen virkelige prosjekter, er det fortsatt verdt å bruke litt tid på å lære.

Videre lesing og ressurser

Vi har flere guider, veiledninger og infografikk relatert til koding og utvikling:

  • Perl Guide and Resources: Perl er et annet kraftig, men mer tradisjonelt språk. Finne ut mer.
  • Python-introduksjon, ressurser og vanlige spørsmål: få all informasjonen du trenger om dette kraftige tolkede språket.
  • Introduksjon til Ruby on Rails: finn ut alt om dette populære programmeringsspråket.

Hvilken kode skal du lære?

Forvirret om hvilket programmeringsspråk du bør lære å kode på? Ta en titt på infografien vår, hvilken kode skal du lære? Den diskuterer ikke bare forskjellige sider av språkene, den svarer på viktige spørsmål som “Hvor mye penger vil jeg tjene på å programmere Java for å leve?”

Hvilken kode skal du lære?
Hvilken kode skal du lære?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me