Advanced Tcl

Difference between version 43 and 44 - Previous - Next
!!!!!!
|[Tcl Commands%|%previous : Tcl Commands]|[Contents%|%up: Contents]|[About the Wiki%|%next : About the Wiki]|
!!!!!!

'''Advanced Tcl''' is a guide for programmers who are beyond [Beginning Tcl],
and would really like to exploit some of the power of the Tcl language and/or
the Tk Toolkit, here is a list of pages describing some advanced concepts.



** See Also **

   [Tcl Developer Guide]:   A guide to various aspectes of develping Tcl.



** General **

   [The Tcl Core]:   

   [Tcl data types]:   

   [Tcl Performance]:   

   [Tcl Questions and Answers]:   



** Style **

   [Tcl style discussion]:   



** Tcl Facilities **

   [Regular Expressions]:   

   [Arrays / Hash Maps]:   

   [String Processing]:   

   Variable [Traces]:    when are they useful?

   [Serial Port]:   How to control a physical device



** Toolbox **

   [Techniques for reading and writing application configuration files%|%configuration files]:   

   [debugging]:   

   [command options]:   Techniques for processing the arguments to a command.

   [Profiling Tcl%|%profiling]:   

   [Template and Macro processing%|%templates and macros]:   



** Builtin Extensions **

   [dde]:   



** Caveats **

   [Dangers of creative writing]:   



** Language Tricks **

   [New Control Structures]:   

   [Radical language modification]:   ever wanted to write i = 1?

   [Playing C]:   

   [Salt and sugar]:   how to make Tcl code look nicer

   [Tcl Gems]:   

   [Braintwisters]:   

   [code golf]:   Due to the emphasis on brevity, these exercises tend toward the dense side.



** Design Patterns **

   [Introspection]:   

   [Guarded proc]:   

   [Meta Programming]:   

   [Local procedures]:    

   [How can I add a new option to an existing Tcl command]?:   

   [How do I manage lock files in a cross platform manner in Tcl]?:   

   [Data is code]:   

   [Predicates: on being and having]:   

   [paragraphing]:   



** Event-Driven Programming **

   [Animations and Timing issues]:   



** Parsing **

   [http://users.pandora.be/koen.vandamme1/papers/tcl_fileformats/tcl_fileformats.html%|%Data files in Tcl]:   simple tricks to parse text files

   [Syntax parsing in Tcl]:   

   [Simple tree layout]:   



** Inter-Process Communication **
   [Inventory of IPC methods%|%inter-process communication]:   InformaSettiong aboutp the lines of communications between processes.
   [message passing]:   Information about higher-level sSystems thatfor pass intheir mopessratinges oviaer some [Inventory of IPC methods%|%IPC] mechanism.



** Object-Oriented Programming **

   [http://www.wjduquette.com/tcl/objects.html%|%Will's Guide to Creating Object Commands]:   

   [http://users.pandora.be/koen.vandamme1/papers/tcl_objects/tcl_objects.html%|%Objects in Tcl ]:   

   [Curbside Collection for Object Systems]:   

   [Gadgets]:   

   [LOST]:   

   [On things]:   

   [Doing things]:   

   [Doing things in namespaces]:   

   [Chaining things]:   

   [The Anatomy of an Object System]:   A modern take, in the spirit of [http://www.wjduquette.com/tcl/objects.html%|%Will's Guide to Creating Object Commands], on working with objects. 



** Functional Style **

   [functional programming]:   

   [Steps towards functional programming]:   

   [Lambda in Tcl]:   

   [Tail call optimization]:   

   [linked lists]:   



** Integration ** 

   [Sendmail]:   Sockets demonstration using an all-Tcl

   [telnet]:   

   [Interacting with the internet]:   

   [Interacting with databases]:   



** Distributing Software **

   [What should I be sure to do so my Tcl based programs run cross platform]:   ?



** Administering tcl **

   [Dynamic Libraries in Tcl]:   



** [Extending Tcl] **

See [Extending Tcl]



** Tk Concepts **

   [Tk Performance]:   

   [Entry Field Processing]:   

   [Event Processing]:   

   [Overloading a widget command]:   

   [Drag-N-Drop Example%|%Poor Man's Drag-N-Drop]:   by Bryan Oakley

   [Geometry Managers]:   

   [Practical Guide to Choosing Fonts]:   

   [Grab Tips]:   for when you want to redirect events from one window to another

   [http://www.cs.man.ac.uk/~fellowsd/tcl/option-tutorial.html%|%Option Database Tutorial]:   a great way of getting user-configurable and localizable applications

   [Adding User Data to Widgets the Megawidget Way]:   

   [Tk image Dos and Don'ts]:   

   [Cross Platform differences in Tcl/Tk]:   



** Internationalization  **

   [i18n - Writing for the world]:   

   [Unicode and UTF-8]:   

   [UTF-8 bit by bit]:   

   [Encoding Translations and i18n]:   

   [i18n tester]:   

   [A little Unicode editor]:   

   [A little Korean editor]:   

   [Unicode file reader]:   

   [The Lish family]:   converters from 7-bit ASCII to Arab/Cyrillic/Greek/Hebrew/Japanese/Korean.. Unicodes

   [Bag of number/time spellers]:   on the interface between people and numbers

   [Chinese numbers]:   

   [Hebrew numbers]:   

   [Roman numbers]:   

   [Natural languages]:   

   [Things British]:   

   [Things Japanese]:   

   [taiku goes multilingual]:   

   [Endekalogue]:   has links to almost a dozen translations of man Tcl into different languages



** Old Skool ** 

   [BASIC in Tcl]:   

   [Retrocomputing]:   

   [Playing Assembler]:   8080!

   [RPN in Tcl]:   reverse Polish notation



** Other Languages **

   [Playing Prolog]:   

   [Playing Python]:   

   [Playing C]:   

   [Playing APL]:   

   [Playing Smalltalk]:   

   [Tcl and LISP]:   

   [Playing Haskell]:   

   [Turtle graphics the LOGO way]:   

   [Unix shells]:   

   [Perl]:   

   [TclJava]:   

   [Eiffel-like Invariants]:   Design by Contract stuff.



** Diversions **

   [99 bottles of beer]:   

   [ANSI color control]:   

   [Tcl/Tk games]:   

   [Obfuscation]:   

   [Quines]:   

   [Turtleshell]:   

   [Horseracing in Tcl]:   

   [Model railroading with Tcl]:    

   [Notes on a canvas]:   

   [Postcard from Switzerland]:   

   [Toy cars]:   


** Misc **

   [Bag of algorithms]:   

   [Bag of Tk algorithms]:   

   [Bag of number/time spellers]:   

   [Example scripts everybody should have]:   

   [Braintwisters]:   

   [Tcl gems]:   

   [Hacks]:   

   [When should Tcl/Tk/etc. NOT be used]?:   

   [Halting Problem]:   Tcl-style

   [Tk in a set-userid application]:   

   [How do I report a bug in Tcl, Tk, ...]?:   

   [Incr Tcl Design Patterns]:   

   [http://bodhost.com/web-hosting/index.php/2006/12/25/tool-command-language/%|%dead link%|%]:   
   
   [Graph theory in Tcl]:   

   [Searching A Star in Space]:   

   [http://avc.inrim.it/%|%AVC%|%]:   A multi-platform, fully automatic, live connection among graphical interface widgets and application variables for the python language.


!!!!!!
|[Tcl Commands%|%previous : Tcl Commands]|[Contents%|%up: Contents]|[About the Wiki%|%next : About the Wiki]|
!!!!!!

<<categories>> Tutorial