comp.lang.ada
 help / color / mirror / Atom feed
* Announcing: Ada 95 binding to Tcl/Tk
@ 1996-05-03  0:00 Terry J. Westley
  0 siblings, 0 replies; only message in thread
From: Terry J. Westley @ 1996-05-03  0:00 UTC (permalink / raw)



Announcing
==========
TASH (stands for Tcl Ada SHell) is a new Ada 95 binding to Tcl/Tk.
The TASH home page is http://www.ocsystems.com/xada/tash. 

Abstract
========
The goal of this binding is to make scripting language features, such
as associative arrays, regular expression matching, and execution of
OS commands available to an Ada programmer and to allow a Tcl programmer
to use Ada in place of C where needed.  This binding exploits several
new features of Ada 95 that make interfacing to C much cleaner and more
direct than Ada 83.

The Ada Programming Language (for comp.lang.tcl readers)
============================
The Ada programming language is a wonderful integration of traditional
mainstream programming language design and newer software engineering
features proven in more recent languages.  The result is a language with
great expressive power, but also with safety and reliability.  New features
added by Ada 95 promise further improvements.

The Tcl Programming Language (for comp.lang.ada readers)
============================
Tcl (Tool Command Language) is a simple, but powerful, scripting language
invented by John Ousterhout at University of California at Berkeley.
It is so very different from Ada:  interpreted, no data typing, poor
management of the name space, and limited modularity.  Obviously, this
is because Tcl was designed for a different purpose than was Ada.  But,
Dr. Ousterhout designed Tcl with excellent facilities for using C where
appropriate.  The resulting environment combines the advantages of a
simple scripting language with the power of a compiled systems language.

Programming Languages
=====================
When starting a programming task, it is important to choose the right
tools, especially the programming language.  Every language has its
strengths and weaknesses and these must be considered (among many other
criteria) when making the choice.  After choosing a language for a
particular task, one often finds the need for features from another
language.  For example, if a Tcl program grows from a small script into
a major program, the lack of good name space management and complex data
structures (such as arrays of records) becomes a significant burden.
In a similar way, an Ada programmer may find uses for associative arrays,
regular expression matching and execution of OS commands found in scripting
languages such as Tcl and Perl.

Ada/Tcl
=======
With its embeddable library of functions, Tcl offers the opportunity
to ameliorate this dilemma, as long as one uses C as the "host" language.
But, is it possible to use Ada in place of C?  With the advent of Ada 95,
the task of writing a binding to C has proven to be not only possible, but
also very clean and direct.

The major objectives of this effort have been to produce a binding which
would:

- Allow a Tcl program to use Ada in place of C to implement Tcl commands
  where additional execution speed, more complex data structures, or better
  name space management was needed, and

- Make the Tcl library functions available to an Ada program.  These
  include string and list handling, regular expression matching, hash
  tables, and access to the X window system (via Tk).

For more Information
====================
The TASH home page is http://www.ocsystems.com/xada/tash.

Thanks to
=========
Mr. G. Vincent Castellano and OC Systems for hosting TASH on the
XAda Server (http://www.ocsystems.com/xada).

-- 
Terry J. Westley
westley@buffnet.net
http://www.buffnet.net/~westley/




^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~1996-05-03  0:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1996-05-03  0:00 Announcing: Ada 95 binding to Tcl/Tk Terry J. Westley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox