[Home] [By Thread] [By Date] [Recent Entries]

  • From: Rick Jelliffe <rjelliffe@a...>
  • To: xml-dev@l...
  • Date: Tue, 02 Dec 2008 20:15:14 +1100

Michael Kay wrote:
>> I agree that functional languages are quite useful. But I 
>> think the problem is, many of the underlying hardware 
>> architectures are von Neumann based. von Neumann machines 
>> work best with imperatives programs (languages).
>>     
>
> If we believed that we would all still be writing in Assembler, or at any
> rate using GOTO statements.
>   
Since modern general purpose languages like java, C# and so on do not 
have effective, structured ways to take advantage of SIMD instructions 
(if we accept the C++ Intrinsics as not being part of C++ as as such...) 
we do have to write in near-assembler with the equivalent of GOTOs at 
the moment, in order to get anywhere near optimal performance from the CPUs.

With respect to John Backus, we are in the reverse of the position he 
mentioned: we are no longer using machines that are strictly von Neuman 
architectures: they all allow parallelism and/or pipelining. It is no 
longer that "present-day programming languages reflect present-day 
technology" as Backus said: it is the languages that don't provide 
access, largely because their primitive storage types are based on 40 
year old norms (i.e. C) rather than on the 128 bit registers optimised 
for in modern CPUs.

I don't see that functional programming is any different than imperative 
programming in this regard: unless the CPUs SIMD data structures are 
first-class objects (or have a first class abstraction that is 
CPU-neutral) and useable in the platform APIs, the SIMD instructions are 
just inaccessible: the result is our text processing programs run slower 
(2 times? 10 times?) than they could. Look at Prof Camerons XML parsing 
results at  http://www.cs.sfu.ca/~cameron/parabix-study-preprint.pdf
for work that shows our deficit.

Cheers
Rick Jelliffe




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member