The Tcl programming language, and Expect
This course covers the fundamentals of the Tcl
programming language. You'll learn about Tcl commands, quoting
conventions and control structures before we move on to cover
topics such as strings, lists, arrays and regular expressions.
Further topics covered on the course include writing your own
commands (procs), packages, libraries, namespaces and other -
you'll leave the course with a thorough grounding in Tcl.
Tcl is often used as an embedded language, and we'll show
you how it's embedded within applications such as Expect, and
briefly how it's used in association with Tk.
Practical experience in programming in another
computer language. If you are new to computer programming,
please book on our Learning to program in Tcl
Getting the most from your Well House Consultants course
Tcl is a programming language that's used in a wide variety of
niche applications - ranging from Numerical Control Machines to Integrated
Cirsuit design. It's also very strong as an Engineer's language in system
testing, where the with the additional Expect extension provides a tool
that would be hard to better.
|What is Tcl? (module T201) What you (to program) need to learn.
Extended Tcl applications.
The browser plugin.
OraTcl and SybTcl.
Commonly used Tcl scripts and applications.
Radia from Novadigm (now part of HP).
Who looks after Tcl?.
|Tcl Fundamentals (module T202) Hello World.
Structure of Tcl Commands.
Running from the command line.
Integration into your system.
Step 1 - First line.
Step 2 - Mark the program as being executable.
Step 3 - Ensure that your program is on the "PATH"..
The comment command and more syntax.
More flexible command syntax.
Setting up variables.
Variable substitution using double quotes.
The expr command.
Integer v float.
|Conditionals and Loops (module T203) The if command.
The else and elseif parameters.
The while command.
Getting out of loops.
The for command.
The foreach command.
The switch command.
Locating errors in your Tcl program.
|String Handling in Tcl (module T205) Basic string handling commands.
Append and format.
The string command.
The match subcommand and globbing.
Putting string together.
The elements of a regular expression.
Groupings and Alternation.
Manipulating matched regular expressions.
Extracting from a match.
Match and substitute.
Putting it together.
|Lists (module T206) How lists are handled in Tcl.
Creating and modifying lists.
Extracting information from a list.
Manipulating lists to create other lists.
Sample programs using lists.
Reading an access log file.
|Procedures and Variable Scope (module T207) Holding commonly used command sequences.
Why use procs?.
Sharing procedures with another application.
The global scope.
The upvar command.
Another example of upvar.
Structured programming and OO.
Programming with objects.
Use of Procs as an interface to Tcl.
|Arrays and dicts (module T208) First use of an array.
Setting up an array.
Referencing elements of an array.
Enquiring on an array.
First use of a dict.
Pure and impure variables.
Arrays rather than lists or dicts.
A wider range of array commands.
Array get and set.
Selecting elements from an array.
Uses of arrays.
Using numeric indexes.
Passing arrays to procs.
|File and Directory Handling (module T209) Reading and writing files.
Opening a file - the basics.
Reading from a file.
Writing to a file.
Closing a file.
More about reading and writing files.
Other open access arguments.
An alternative to gets.
Other Input/Output commands.
File and directory handling.
The file command.
Looping through all the files in a directory.
Intermediate Tcl programming
|What is Expect? Why use it? (module T211) Sample problems.
A regular task.
A possible solution.
What else is Expect?.
spawn, expect and send.
More on the expect command.
Not wanting to echo what you expected?.
Not knowing what to expect?.
Variables set by expect.
Running Expect on Windows platforms.
|Expect Processes (module T212) Multiple processes.
Spawn id s.
Expecting from multiple processes.
Adding Tk as well.
A few words of caution.
|More on Expect (module T242) Expecting from the user.
Using expect and send for user communication.
Waiting for the user or for a process.
Defining default expect patterns.
Command line options.
|Libraries, Packages and Namespaces (module T213) The load command.
Startup files - tcl.
Startup files - expect.
Writing your own package.
Using variables across procs and packages.
Recap on using variables between procs.
Nesting of namespaces.
Exporting and importing.
Packages and namespaces.
|Other Facilities in Tcl (module T214) Information.
The info command.
Other information commands.
Tracing a variable in Tcl.
Other Subjects for group discussion.
Applications and some advanced features
|Using Tcl from C (module T243) Embedding a Tcl interpreter in C Program.
Hello Integrated World.
Hiding Tcl source code from the user.
Extending Tcl - adding a command written in C.
|Socket Programming (module T244) Clients and servers.
Reaching the right service.
Client programming in Tcl.
A simple client.
Considerations for client programming.
Server programming in Tcl.
A simple server.
Considerations for server programming.
|[incr-Tcl] (module T245) Introduction.
Hello Object World.
The class used.
Other facilities in simple objects.
Inheritance in [incr-Tcl].
Other commands available in [incr-Tcl].
|Advanced Regular Expressions (module T247) Introduction.
What are advanced regular expressions?.
The working of a regular expression.
The elements of a regular expression.
A little more on regexp and regsub.
A further example.
TUTOR and COURSE AUTHOR
Graham Ellis - email@example.com
] [about Graham
, England. A taxi transfer can be arranged if you'll be arriving by air
from United States.
can be arranged on site in your country.
Public courses run at
Well House Manor
- our own
purpose fitted training centre and business hotel / conference centre in
• Download Melksham Map - [pdf file (750k)
] • Google Map - [Link
|| 2 students
|| 3 students
|| For 4 or more students
from the same company,
please consider a private course.
| With hotel room
($2256.00 inc VAT) or
£1160.00 (No VAT from 1.2019)
($1860.00 inc VAT) or
£950.00 (No VAT from 1.2019)
| With hotel rooms
($4452.00 inc VAT) or
£2270.00 (No VAT from 1.2019)
($3660.00 inc VAT) or
£1850.00 (No VAT from 1.2019)
| With hotel rooms
($6648.00 inc VAT) or
£3380.00 (No VAT from 1.2019)
($5460.00 inc VAT) or
£2750.00 (No VAT from 1.2019)
• Multiple discount applies to bookings for second and subsequent delegates on the same running of a course, and on same order.
• Hotel rooms are available for arrival the night before the course starts, for departure after the end of the course on the last day.
If you'll be using Tcl in association with the Tk
graphic widget set, you'll want to stay on for the Tcl/Tk
course, which runs the following two days.
Upon completion of your course, you'll have online access to the source code of
all the examples from the course, and you'll have access to the
"Ask the Tutor" forum
where you can raise questions. We also encourage you to email the tutor, and
to visit us again to use our library as appropriate.
Certification? - [Link
FOR FURTHER INFORMATION
Public (scheduled) courses
For more information about our public courses in general, such as class size, course times, materials provided, special requests, accommodation list, finding our centre, etc.
Terms and Conditions
Covering topics such as delegate substitution, payment, cancellation policy and other matters.