The D Programming Language
Frank Adams
franka at mmintl.UUCP
Wed Feb 24 07:23:40 AEST 1988
In article <2327 at umd5.umd.edu> chris at trantor.umd.edu (Chris Torek) writes:
|In article <2718 at mmintl.UUCP> franka at mmintl.UUCP (Frank Adams) writes:
|>Any serious effort to design a successor to C (which does not attempt to be
|>upward compatible) should first consider what should be taken out and/or
|>done differently. Adding new things is secondary.
|
|Oddly enough, I have been considering the same sort of thing myself. One of
|the nicest things about the C language is what it does NOT do. The language
|is small enough to learn and comprehend entirely in a short time; the list
|of language oddities is not empty, but is small (most of them appear below).
Agreed.
|>I would also like to do away with having control statements control single
|>statements. ... "if (foo) stmt1; stmt2; end;" ...
|>"for <stmts| while (<exp|) next <stmts| do <stmts| end;" ...
|>"loop <stmts| while (<exp|) <stmts| end;".
|
|I disagree with the details,
I would like to see other proposals.
|[may prefer 'endif' to 'end', but has doubts]
I debated whether to put in 'endif', etc., or 'end' in the above, and
finally opted for the shorter form. Ask me on another day and you might get
a different answer.
|A general aggregate constructor is necessary.
Any suggestions on how to do this?
|I think the following are important considerations:
|
| - the language should be made as small as possible, but no smaller.
|
| - we should assume that compilers for this language are going to
| do a great deal of optimisation; in particular, they will optimise
| across entire compilations, not just single files.
I don't think we should *require* this. The language should still have a
place for the fast and cheap compiler, which still produces reasonably good
code.
| - it should be relatively easy to translate `old C' to the new
| language.
|
| - it might also be a good idea to steal liberally from C++ (which
| of course steals liberally from SIMULA and others).
Yes, but I would not put the object oriented stuff into D. For that, you
get D++.
Overloaded functions are fine, though.
|My biggest worry is that if the language is too small and malleable, it
|will suffer from the same problems as some of the old dynamically-extensible
|languages. One solution is to make the language small but the support
|`library' (including headers that define standard aggregates like C-style
|arrays and strings) a `part' of the language.
Definitely. Library development should go on in parallel to the language
development, and whatever flexibility the language provides should be
reflected in the library.
--
Frank Adams ihnp4!philabs!pwa-b!mmintl!franka
Ashton-Tate 52 Oakland Ave North E. Hartford, CT 06108
More information about the Comp.lang.c
mailing list