From: Lennon Day-Reynolds Date: 2004-08-28T19:12:09+09:00 Subject: Re: Typos (Was: performance comparison) I honestly think that the issues surrounding code analysis and verification in Ruby, Perl, Python, etc., have less to do with the langauge per se, and more to do with the lack of any formal semantics for it. C, C++, Java, and most other statically-typed languages began as an implementation language well before they were picked up by the verification and analysis crowd. Their inital design goals are usually less important than the stability of their respective language definitions -- given a stable spec, the academic/research community can devise an endless variety of clever ways to increase the level of confidence in a language. Unfortunately, dynamic languages are not only at a disadvantage due to their basic design, they suffer due to a lack of formal analysis. Java began as a simple C-like OO language, with a minimal stack-based VM on which to operate. Now, however, it is one of the most popular platforms on which to base your code-generation, analysis, and transformation tools. Were some enterprising soul to create a formal sematics for Ruby, or even to describe it in terms of a well-defined language such as Java or Smalltalk, I suspect that excellent tool support could follow quickly. Unfortunately, since the current implementation of the Ruby language always serves as the "official" language definition, there is little that the reseach community could do to improve the tool support. -- Lennon rcoder.net