Glossary of terms

AK: The idea for such a glossary came from news:comp.lang.tcl , but I don't remember anymore who proposed it.

(Probably a trouble-maker like LV <wink>)

AK: The definitions below are currently the ones I am using. Please add links to separate pages to them for discussion. Terms referring to greater projects (f.e. WOBBLE) will need additional pages for specification et al.

LV: See , , or for sites referenced for explanations of computer jargon.

Also see the acronym collection in case what you are seeking is not merely a term, but an acronym of some sort. Note: The relations between some of the defined terms can be seen in a picture

Also note, the original intent for this page was as a collection of serious terms and their definitions. Over time, some humorous, or at least pseudo-humorous, terms have been added.

Alphabetical listing of terms:


The rarefied organizational layers beginning just above the rank and file. Decisions that fall from the adminisphere are often profoundly inappropriate or irrelevant to the problems they were designed to solve.
advanced regular expression
term used to distinguish the Tcl regular expression syntax in version 8.1 and later from the syntax used earlier in Tcl's product line.
Alpha Geek
The most knowledgeable, technically proficient person in an office or work group. "Ask RS, he's the alpha geek around here."
A collection of code that is, in general, invoked from a command line or another application. An application can be in any programming language.
A collection of distributions. Possibly uses meta information from the distributions to index them.


See foo for an explanation of both words.
Batteries Included
A single archive file containing Tcl, Tk, and a number of other commonly used extensions, designed to be able to build as a useful, one configure/make (or binary) distribution.
The brief seizure people sometimes suffer when their beepers go off, especially in vibrator mode. Characterized by physical spasms, goofy facial expressions, and stopping speech in mid-sentence.
binary distribution
A distribution containing binary extensions. All of them must be compiled for the same machine architecture.
binary extension
To use a code extension one has to compile the provided source code into the format understood by the particular machine architecture. The resulting files, the binary extension, are unreadable to humans, but directly executable by the computer for which they were compiled. Users of the TclPro Tools able to compile script extensions into such a binary format too. A difference to the other binaries is, that these are independent of the particular architecture, due to the use of a bytecode representation.
[fill in the blanks]
Sitting around in a group discussing why a deadline was missed or a project failed and who was responsible.
builtin commands
The commands provided as part of the tcl kernel.
See library. Used by perlies.
[fill in the blanks]


A hard-core CGI script programmer with all the social skills and charisma of a plastic action figure.
character set
Career-Limiting Move (CLM)
Used among microserfs to describe an ill-advised activity. Trashing your boss while he or she is within earshot is a serious CLM.
cobweb site
A World Wide Web (WWW) site that hasn't been updated for a long time. A dead WWW site.
code extension
An extension implemented in C or some other system programming language. Contains the source code implementing the APIs and the commands.
code point
commercial software
This software generally is software sold with support, documentation, licensing, etc. for use in commercial environments.
copyleft software
This is one term frequently attached to software distributed with one of the Free Software Foundatation [L1 ] license agreements.
This and the term kernel are often intermixed. The distinction as I saw it on c.l.t. is to call the bare interpreter together with its builtin commands the kernel; and kernel + a standard library (see Official library of extensions) the core.
core dump
This is something different from the definition of core on this page. This is a file or printout generated at the time of a program terminating event, reflecting the state of memory from the application's point of view. These should be, in general, things that the application developer would prefer not to generate. However, the unexpected is often encountered.


dancing bear
Will Duquette writes on comp.lang.tcl: An ill-conceived system that nevertheless somehow manages to provide a minimal level of functionality despite being fundamentally flawed. In other words, the amazing thing about the Dancing Bear isn't that it dances well, but that it dances at all.
A collection of files, extensions and bundles, all distributed together.
Besides being a wonderful pastry, often used on the chatroom to indicate units of work ... an old Dunkin' Donuts (TM) commercial series used the catch-phrase "Time to make the donuts". See . TkChat displays the word "donuts" as donuts-icon.
dynamically loadable library (DLL)
A shared library that can be loaded after the program in question has been running for an arbitrary length of time. The main complexity with DLLs is making the names of the symbols (functions, datastructures, etc.) within the library available to the rest of the program, since the program itself cannot be built with direct knowledge of those symbols (since that knowledge would force the library to be loaded too early!)


A character representation of a concept expected to convey graphical recogniztion - think of this as being a character equivalent to an icon.
A set of mappings from characters (described by name) to numeric code positions (often hex numbers). ASCII is a very widespread 7-bit encoding (i.e. using code positions 0x00..0x7F). Unicode is a 16 or more bits encoding that aims at containing all other encodings. Tcl uses Unicode as pivot encoding internally, and converts from/to other encodings with the encoding command.
A command that exists to cluster related subcommands together. The core has many examples of this (info, string, dict, namespace, interp, etc.) and some extensions (e.g. incr Tcl) have special support for creating them using scripts.
A set of related files defining new commands and APIs, either at the C-level or the script level. May contain only tcl scripts, or only source code, or both. The pure forms are called script and code extensions.


A programming idea/paradigm/idiom whereby an application provides the functionality of reading its input, massaging it in some manner, and then producing output, typically making use of stdin and stdout file handles.
The first metasyntactic variable. A generic word, not really an acronym, used as a variable name. Often found in conjunction with bar, and ultimately derived from the acronym FUBAR. For a really good feeling of what FUBAR is all about, see the movie Saving Private Ryan. In fact, see the movie anyway, but now you have something to look out for... :^)
freely distributable software
This software is software whose authors encourage the free sharing of the executables and possibly the source. The license of this software does not try to restrict the exchange of the software, though there is often restrictions as to retaining of copyright notices, etc.
A term created many years ago to refer to software whose authors expect no financial compensation for use of the software. In my opinion, it does NOT refer to software which, while free, is crippled until one pays a fee, or which is a limited demonstration of a package for which one is expected to pay. Freeware most frequently comes with source on Unix platforms, while on other platforms that may or may not be the case. This term often is used as synonymous to an entire class of software - public domain, copyleft, freely distributable.


Gates meme
A mental virus, resulting in the infected person thinking that anything that Bill Gates and Microsoft can do no wrong.


aku term for bug that moves as you insert puts, etc. to try to locate conditions causing the bug.


an underlying base or foundation; basic facilities, services, etc for the functioning of an environment.
abbreviation for the words internationalized/internationalization, and which means adapting software so that it might adapt to the requirements of various language/country/cultural environments.


originally from combinator theory, that is a function that takes two arguments and always returns the first: proc K {x y} {set x}. In combinator theory, it is used to create constant functions, but in Tcl its use is quite different, where it is used as part of a construct to allow a variable's contents to be destructively retrieved, allowing for very efficient object ref-count management. More details can be found at Tcl Performance and Chart of proposed list functionality. Its use is an advanced optimisation technique that should be postponed if possible, since it does wonders for obfuscation Donal Fellows.
See core for explanation of both terms.


localization - adapting software to be as familar as possible to a specific locale.
Often in computer discussions, this term refers to code which has reached a point in its lifecycle where new development has slowed to a crawl. Often there is minimal support, and system experts have frequently moved on to other projects.
A collection of (possibly related) extensions. The term is potentially confusing as other things are called library too, most notably bundled object code. I hesitate to make the alternative bundle the primary definition, because of our Official library of extensions! Official bundle ?!


major/minor command interface
See ensemble
See extension. Perl speak.


open source
A philosophy for developing, releasing, and evolving software. When programmers on the Internet can read, redistribute, and modify the source for a piece of software, it evolves. People improve it, people adapt it, people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing. See for more information.


An extension containing the necessary baggage to allow the kernel its use via a call to "package require foo". To use extensions without that the user has to explicitly set up the auto_path in his applications, which is error prone and not easily distributable.


regular expression
See Regular Expressions.


script extension
An extension using tcl as implementation language. The defined commands are realized as tcl proc's.
shared library
A piece of binary code that provides a set of operations and datastructures like a normal library, but which does not need to be physically incorporated into the executables that use it until they are actually executed. Virtually always implemented on machines with virtual memory by mapping the memory pages holding the library into the address space of each executable image in memory that uses the lib. Many operating systems also support dynamic libraries which are an extension of shared libraries that can be loaded during the execution of the program and not just when it is loaded. Operating systems without shared libs are really horrible and inefficient to use, since you end up with many copies of the same code from the C library in memory. Thankfully, the world has moved on!
silver bullet
A technology or solution thought to somehow magically solve all (or a majority) of one's problems. Often used in relationship to whatever the media and industry is currently calling sexy. For instance, cell phones, personal digital video recorders and pocket computers, or Java or XML and all the related baggage.
The overwhelming flood of web site visitors that result after having an article posted about the site on .
The transference of data from one machine to another by way of floppy disk or some other hand carried media rather than by some sort of electronic connection.
standard library
A library containing the extensions blessed by TCT and thus deemed "official". See the Official library of extensions for a project working to define its functionality.
Software whose author is either not interested in payment or depends on trust or tricky code for payment. The application is made available for download but either depends on trust for the user to pay, or relies on nag screens, limited functionality, limited documentation, or limited support to encourage payment.
standard tcl distribution
The distribution containing the core, i.e. kernel and Official library of extensions. Often abbreviated as "standard distribution".
standard tk distribution
See standard tcl distribution, additionally contains the Tk extension. This extension can be logically split into a "Tk core extension" and a "Tk widgets extension" built on top of that one. It is possible to argue that "Tk" should be simply seen as an element of the "standard library". In that case there is no difference between the standard tcl/tk distributions.


Tcl proper list
Sequence of characters in a form that Tcl_SplitList(3) is happy to accept and with no unquoted metacharacters from the set $[" and unquoted braces and backslashes are only acceptable where they are performing quoting themselves; unquoted spaces are used separate list items (words.) The easiest way to build a proper list is to use the list command. All proper lists are valid commands (provided the first word in that list actually describes an existing command) that do not expand any of the words of the list from the form they were in when presented to the (sometimes putative) list operation. You should not assume that random user input is a list. Ever.
Tcl pure list
A Tcl proper list that has never been referred to as anything other than a list (in particular, the printable version of this value has never been required.) The output of the various list commands (including split and lappend) are pure lists. Pure lists have substantially improved performance characteristics (since Tcl8.3) over ordinary lists for operations like concat and eval (working over 10 times faster in some pathological cases) though there are no other observable differences between them.


A standard for encoding characters (not glyphs) that is meant to cover all written languages ever. Note: In e.g. the C sources for Tcl, "Unicode" is often used where UCS-2 would be a more appropriate term.


wiki fiend
An individual who spends vast amounts of time reading the wiki's pages, adding content to pages, etc.
Individuals who contribute to the care and feeding of wiki pages. If you have dealt with meta-issues such as adding, removing, or correcting category information on pages, forking pages, correcting spellings, etc. to the wiki, you too may qualify for the coveted title of wikignome.

More terms, without explanations (yet).

compilation, configuration, hypertext, hypertool, installation, megawidget, meta information, namespace, official, ouster-vote, patch, platform, release, retrieval, Official release versus others (NeoTcl, Plus/Dash Tcl, ActiveTcl, other?), version, Babel, ETEN, Feather, SEE, TEA, WOBBLE, troll, ., ...

LV: I'm uncertain about the TclPro compilation note in 'binary extension'. That is to say, I do not know whether applications compiled by the TclPro tools are platform independent. Certainly not truly platform independent, since they require the tbcload extension which is only available for Windows, SPARC Solaris and Linux.

byte code: and several other items happen to appear in the "Python glossary" [L2 ].