Re: Intel details future Larrabee graphics chip




"(see below)" <yaldnif.w@xxxxxxxxxxxxxxxx> wrote in message news:C4C80556.F5560%yaldnif.w@xxxxxxxxxxxxxxxxxxx
On 13/08/2008 01:26, in article pSpok.221137$IP7.99316@xxxxxxxxxxxxx, "Wilco
Dijkstra" <Wilco.removethisDijkstra@xxxxxxxxxxxx> wrote:

Often you have no choice but to use what the language/runtime system supplies.
There are lots of different ways to implement these features. It's impossible
for one standard implementation to be optimal in all usage scenarios.

That of course, is true of unchecked languages as well (in spades).

Quite true. But you can easily replace part of the libraries with your own
application specific versions (eg. fast memory allocation), something which
becomes much harder if a feature is built into the language (or if the language
doesn't support C-style pointers).

Usually all arrays/integers/pointers are checked, so
you always pay the cost of checks that
cannot be optimized away but which you know are not needed. Additionally
these checks generate exceptions which block compiler optimization and use
large unwind tables and runtime support routines (bad for code size).

Languages with these properties are inadequate for software engineering.
Their specific faults do not prove your general case.

Most "safe" languages have these properties unfortunately. For example runtime
checks require complex exception support (Pascal just terminates the program
when a check fails, which is NOT safe behaviour).

To give an example, once someone rewrote a command-line parser from C
into C++ STL. It suddenly became a major performance hog due to doing lots
of small string concatenations. A specialized string class (or just plain C)
was 25-50 times faster.

Someone used an inappropriate algorithm and data structure. So what?

It was a translation from low-level C into OO C++, so was quite reasonable to
use STL strings. My point is there can be a huge difference in performance
between a high level feature and a low-level one, so it's a big issue if you
don't have the low-level support when you need it.

In a language that forced you to use garbage collected
builtin strings we would have had a hard time to work around it.

That would certainly be an inadequate language for software engineering.
Are you familiar with Ada?
It does not have the defects you complain of above.

It has been a while since I looked at Ada, but from what I remember it did have
various of the issues I mentioned.

Wilco


.



Relevant Pages

  • Re: How easy is it to learn VB compared to C#?
    ... assemblies - there just is no support in the ide. ... I'm sure that's the case for you, but the languages will always be uneven. ... Even if each language should develop the feature that the other one is currently ... to write inline assembler. ...
    (microsoft.public.dotnet.languages.vb)
  • Re: XLF V13.1 release for AIX -- fully compliant Fortran 2003 standard
    ... other known languages seem to support similar language feature. ... wouldn't think of PDTs as a viable choice. ... In the abstract (based purely on a rough understanding of the feature and no knowledge of its details), I suspect it might be feasible to hook into C++ templates in some way or another. ... Any generic programming feature will have issues with interop, as there are relatively few other languages that support that. ...
    (comp.lang.fortran)
  • Re: subset function for string in c++
    ... string support would introduce "hidden costs". ... There is a module (Strings) in the standard library though that provides some basic string procedures. ... You may or may not be aware that there are a lot of very, very popular languages that are missing one or more of the above. ...
    (comp.programming)
  • Re: Multi Language support
    ... You'd have to do this yourself if you want to change languages ... the OS *does not* support dynamically changing writing systems. ... Although you can certainly use string tables (YOU HAVE USED THEM. ...
    (microsoft.public.windowsce.embedded)
  • Re: Architectural support for programming languages
    ... microarchitectural feature that would make a, say, C compiler`s job ... other languages, ... so if you want to have a microarchitecture that flies on C code, ... Alpha has string support instructions for C's zero-terminated ...
    (comp.arch)