[Home] [By Thread] [By Date] [Recent Entries]
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] |

Cart



