The sml_tk home page.

Welcome to the sml_tk home page!

Contents of this page:

What is sml_tk?

sml_tk is a Standard ML package providing a portable, typed and abstract interface to the user interface description and command language
Tcl/Tk. It allows the implementation of graphical user interfaces in a structured and reusable way, supported by the powerful module system of Standard ML.

Tcl/Tk offers an abstract and highly portable interface to window systems such as the X Window System, Windows or MacOS. It consists of the toolkit Tk and the command language Tcl, a Lisp-like scripting language with only one datatype strings.

The aim of sml_tk is combine the advantages of Tk with the advantages of Standard ML (bypassing the shortcomings of Tcl), allowing the programmer to implement graphical user interfaces at a level of abstraction suitable to a functional language such as ML.

sml_tk offers ML datatypes for nearly all components of the Tk toolkit library, allowing the specification of the user interface components in a declarative style with a distinctive functional flavour. The run-time behaviour of the interface is given by ML functions.

sml_tk further offers a library of standard components, including a collection of frequently used dialogue windows, a file browser, and a highly generic user interface.

sml_tk has no other hard- or software requirements than the Tcl/Tk toolkit and a Standard ML compiler. In particular, sml_tk is known to work with Standard ML of New Jersey (SML/NJ 110) and PolyML (PolyML 4.0beta1).

sml_tk has been developed during the course of the UniForM project and is currently being used to implement graphical user interfaces for program transformation systems based on the theorem prover Isabelle.

sml_tk: Implementation and Documentation

The current release of sml_tk is 3.0, released March 2001. Here's what's new in 3.0.
[Code] sml_tk, release 3.0 as a gzip'd tar file (size 440 KB).
[Code] njml_patch.tar.gz, release 1.0 as a gzip'd tar file (size 20 KB).
[Doc] sml_tk: Functional Programming for Graphical User Interfaces
The comprehensive introduction, documentation and reference manual.
Release 3.0 as distributed above is currently at patchlevel 0.

Older versions

[Code] sml_tk, release 2.1 as a gzip'd tar file (size 245 KB).
[Code] sml_tk, release 2.0 as a gzip'd tar file (size 420 KBt).

sml_tk: First Contact

If you have any questions or remarks about sml_tk, or problems with sml_tk, please do not hesitate to get in touch with us at smltk at

sml_tk Selected Bibliography

Here is a short list of papers about work using sml_tk:
Christoph Lüth. Last modified: Fri Jun 11 11:38:32 CEST 2004