Related articles |
---|
Re: Writing fast compilers II rs/6000 tmb@ai.mit.edu (1991-08-18) |
Re: Writing fast compilers II rs/6000 rockwell@socrates.umd.edu (1991-08-19) |
Re: Writing fast compilers II rs/6000 mccalpin@perelandra.cms.udel.edu (1991-08-18) |
Newsgroups: | comp.compilers |
From: | tmb@ai.mit.edu (Thomas M. Breuel) |
Keywords: | optimize, design |
Organization: | MIT Artificial Intelligence Lab |
References: | <PCG.91Aug18004243@aberda.aber.ac.uk> <16407@mentor.cc.purdue.edu> |
Date: | 18 Aug 91 22:14:32 GMT |
[From comp.arch -John]
I do not happen to know a language which will let you write 'a matmult b'
(except possibly APL, which has its quirks.) [...] Also, why
not allow the use of |x| for abs(x) or whatever the type calls for?
This was not done initially because the vertical bar was not available
as a character; that is why Fortran used * for multiplication and **
for exponentiation.
The trouble is that too many language designers get caught up in
syntax and paradigms. It makes no real difference whether you write
|x| or abs(x); if anything, the latter syntax is preferable because it
is simpler to understand how it gets parsed. As long as you can write
function calls with an unlimited number of arguments (you cannot in
old BASIC or APL), syntax doesn't matter much.
The important questions about a programming language are:
* What kind of type system does it have?
* Does it have inheritance?
* Does it have automatic type conversions?
* Does it have an exception system?
* What kind of module system does it have?
* Does it have side-effects?
* Is it lazy or eager?
* What kind of runtime-overhead does it require?
* Does it have operations with "undefined effects"?
* Does it have automatic storage management?
* Does it have first-class closures?
* Does it have first-class argument-lists?
* Does it have macros or EXTEND-SYNTAX?
* Does it have EVAL or COMPILE-AND-LOAD?
* Does it support persistence?
Thomas.
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.