Mars Rover Project

Tcl was used in NASA's Mars Rover Project. Which role did Tcl play?

TP See this post [L1 ] for followup by one of the authors of the Pathfinder software, David Smyth (see the 3rd post in this thread where Dan Kuchler reposts an email from Smyth.) Short story: Tcl was used early on in the project, but was later completely rewritten in C++.

Smyth says: ... The itcl prototype was not intended to be a prototype, it was intended to be candidate flight code and candidate ground control and monitoring software. However, when we started doing careful testing, with the (eventually achieved for LoD compliant code) goal of exhaustive testing, the interpretive nature of Tcl meant we had to not only test all codepaths and values, but also all types and combinations thereof. That was simply too tough.


 the interpretive nature of Tcl meant we had to not only test all codepaths and values, but also all types
 and combinations thereof

ZB I'm not sure: why the reason of that "also..." was "interpretive nature of Tcl"?

SLB It sounds like they wanted a language with static type checking, so errors, such as passing a string to a function expecting a number, can be detected at compile time.

ZB Such approach makes no sense to me. Why anybody should pass a string to a function expecting a number? "By mistake"? So he can pass a wrong number to that "function expecting a number" as well - and the test won't detect it. It can be detected at runtime - doing real test of functionality - when something goes wrong. But such way could be also tested programs written in TCL, and all the "passings a string..." etc.


Tcl also makes an appearance on the International Space Station