From: | George Neuner <gneuner2@comcast.net> |
Newsgroups: | comp.compilers |
Date: | 4 May 2007 13:23:36 -0400 |
Organization: | Compilers Central |
References: | 07-04-074 07-04-098 07-04-120 07-04-149 07-04-153 07-04-155 |
Keywords: | courses, realtime |
Posted-Date: | 04 May 2007 13:23:36 EDT |
On 29 Apr 2007 23:28:21 -0400, Robert A Duff
<bobduff@shell01.TheWorld.com> wrote:
>George Neuner <gneuner2@comcast.net> writes:
>
>> No. Speaking from more than a decade of experience in commercial RT
>> systems, RT does not belong being taught in any CS program.
>
>There is an interesting article here:
>
>http://www.stsc.hill.af.mil/crosstalk/2000/08/mccormick.html
>
>about a course in real-time systems. The project was to build some
>sort of software-controlled model railroad.
Okay, this is different from the typical elective RT course offered by
some programs. The article describes an entire CS program geared
toward RT and this lab course is the final where the students get to
demonstrate what they've learned.
I would be in favor of such programs being more widely offered. The
long duration of an entire CS program gives the student ample time to
learn and absorb the necessary system engineering concepts as well as
gain sufficient programming skill to make the projects realistic.
>The course was given for
>many years, and they tried using C and they tried using Ada. None of
>the students using C were able to implement the minimum project
>requirements, despite the fact that the instructors kept giving them
>more and more code to start with -- up to 60% of the project code.
>Most of the students using Ada were able to do it, despite the fact
>that the instructors gave them much less code to start with (less than
>20%).
According to the article, this was in the early years before the RT
specific CS program was created. The results I think are evidence
that the students had not been adequately prepared for such a course.
As I said previously, RT requires excellent software engineering and
programming skills.
McCormick says:
"It was the accurate modeling of scalar quantities that contributed
the most to Ada's success in this course. This is consistent with
studies done on the nature of wicked bugs in software where nearly 80
percent of programming errors in the C/C++ programs studied were a
result of problems with scalars."
What this says to me is that the students had poor design and
programming skills which were mostly inadequate to the task. More
than likely, they made similar mistakes in specification and coding
using both languages, but where the C compiler coerced logically
separate types to be compatible and produced logically wrong code, the
Ada compiler's more stringent type rules rejected implicit coercions
and forced the students to look carefully at their abuse of types.
McCormick also noted as significant Ada's detection of and refusal to
build with obsolete modules. This suggests that the students using C
lacked the skills to manage modular C projects (honestly how hard is
make?) - again suggesting that they were not prepared for the demands
of the course.
McCormick clearly thinks C was the problem and Ada was the answer,
however I would caution against drawing that same conclusion. Ada
offers significant advantages over C and I am happy to recommend it
over C whenever possible, but I think in this particular scenario I
believe it was a crutch rather than a savior.
George
Return to the
comp.compilers page.
Search the
comp.compilers archives again.