<div>Brown Dai-Sensei-Sama,</div>
<div> </div>
<div>Regarding "...Nobody knows why CPS departments no longer teach students to code in C (and instead teach a bizarre mix of C++, java, lisp, and god-knows-what else first -- at one time they just LOVED pascal and where is THAT now I aske you), ..."
</div>
<div> </div>
<div>Pascal, C, C++, Java, and LISP are not 5 languages, really; let's say, they are spanned by a lower dimensional basis set. They are really two languages (C and LISP) with two (or more) conceptual paradigms (Procedural vs Object Oriented, say). It would be insulting to say that PASCAL is merely C with BEGIN, END instead of { and }, but...
</div>
<div>So I think that CS departments just agree with me, that you understand programming better if you learn two.</div>
<div> </div>
<div>Re: FORTRAN, for awhile there we didn't really compile it, but translate it to C and then invoke the C compiler. That gets you the beauty of the IMSL libraries and the efficiency of very sharply maintained C compilers, at the same time. Is there a good extant FORTRAN compiler? I wonder why, fortran is easy to express in C (unlike conceptually variant languages, like APL or LISP).
</div>
<div>Peter</div>
<div> </div>
<div>P.S.</div>
<div>I don't write in LISP myself (or ALGOL) but I respect it's expression of conceptual frameworks that are awkward in C; LISP takes the von Neuman idea of code segment within data segment to fruition, so the list of arguments for a function may well be itself a function, since everything is a list. In C, the address passed to a function might be the entry point of a function, but you can't actually refer to that abstractly; although
</div>
<div>printf("The entry point of \"printf\" is %x\n", printf);</div>
<div>will work unless your compiler is paranoid.</div>
<div> </div>