Category

Published on

28 Apr 2004

Abstract

Scientific applications are built with great care and attention to the core simulation algorithms, often with some
input/output added as an afterthought. Instead, you can create a much more powerful tool with little extra effort by
replacing the usual "main" program with an embedded scripting language. A scripting language makes a tool
"programmable" for a wide variety of applications, letting you use the tool like a Swiss Army Knife. The scripting
language orchestrates the actions of high-level building blocks, which are all coded efficiently in a system-level
programming language, such as C, C++, or Fortran. When integrated correctly, therefore, the scripting language adds
flexibility without impacting overall performance. Scripting languages also foster library development and code reuse,
since the building blocks are coded once, and then scripted in a variety of ways to perform various tasks. The Matlab
environment is an excellent example of a successful scripting architecture.

In this talk, I'll show examples of tools that go beyond Matlab in their scope--tools that have a more specialized function,
that have been turbocharged with an embedded scripting language called Tcl. One such tool, an interconnect capacitance
simulator, can be "reprogrammed" via Tcl scripts to perform different analyses ranging from simple calculations, to
sweeps, to optimization runs.

I'll also describe several packages that I've created to amplify the power of Tcl adding support for object-oriented
programming, mega-widget development, data visualization, and more.

Finally, I'll show how Tcl can be used to turbocharge Web site development. Tcl code can be embedded within a Web
page, and executed as each page is served up to build the page contents dynamically. Together with a relational database
and a server farm, this provides the infrastructure needed to authenticate users, manage their sessions, and submit jobs for
on-demand computing.

When combined, all of these capabilities create a framework in which tools can be prototyped, developed, and delivered
in short order with production-quality results, greatly accelerating the process of scientific discovery.

Bio

Michael McLennan received a Ph.D. in 1990 from Purdue University for his dissertation on dissipative quantum
mechanical electron transport in semiconductor heterostructure devices. He became a Tcl enthusiast when he joined Bell
Labs in 1992 to work on tools for semiconductor device and process simulation. He is co-author of "Effective Tcl/Tk
Programming" (published by Addison-Wesley) and "Tcl/Tk Tools" (published by O'Reilly and Associates). He also
developed [incr Tcl], an object-oriented extension of Tcl, which is now used by thousands of developers worldwide, on
projects ranging from the TiVo digital video recorder to the Mars Pathfinder. Michael is currently an Architect at
Cadence Design Systems, where he develops tools for HDL and System-level design.