C is a crappy

Article: MAQSIP-RT: An HPC Benchmark
By: Ian Ollmann (iano.delete@this.apple.com), July 6, 2010 3:07 pm
Room: Moderated Discussions
Max (max@a.com) on 7/1/10 wrote:
---------------------------
>
>C is pretty uncontroversial these days. It's hard to even get an argument started
>since everyone has made their peace with it.

True.

I used to have that opinion, too. However, lately I've been working on a open standards based C language derivative and it's becoming increasingly clear just how creaky C is as we work through all the different ways that it has to be fixed to get different platforms to return the same answer and perform decently. The fundamental problem with C in my book falls into three major areas:

1) Weak support for threading. The timing of operations is at times over-described or under-described.

2) No SIMD vector support / failure to standardize types early on -- how big is an int anyway? A double? What is the bit pattern for these things? (I group these together because many algorithms for vectors require fixed data representations.)

3) Most of all -- The language is conversion-happy. Following basic hardware models of 50 years ago, it tries to convert everything to a core hardware type, do the work, and convert back. All the conversions are a problem, because they make it difficult to precisely describe an algorithm -- what you see is not what you get. E.g. short << 16, forces a conversion to int (of what size?) before the shift occurs, so if you right shift again later, those bits might be there or might not.

There is at least some excuse for item 2. C has to handle the widest diversity of devices out there. However, in general, modern processors handle most of this stuff now, and there is increasingly less and less good reason to keep around those that don't. Modern processors are usually multicore. Many ISAs now have special instructions for different integer and floating point encodings. They have SIMD vector units. If C were developed today, it would probably not look the way it does, because many of the core assumptions about the appearance of the underlying device no longer hold.

To be clear, I'm not asking for garbage collection, OOP, or saccharine Javaness to be added to C. That is what Java is for. I just want a WYSIWYG programming language that is portable between multiple ISAs.


< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
New article online: MAQSIP RTDavid Kanter2010/06/21 11:57 AM
  Why no GCC?Rohit2010/06/22 09:25 PM
    Why no GCC?David Kanter2010/06/23 12:45 AM
      sun 's cc better than GCC?Rohit2010/06/23 05:04 AM
        sun 's cc better than GCC?anon2010/06/23 07:49 AM
          Where is the GCC optimization effort directed?Mark Roulo2010/06/23 10:42 AM
            GCC is very ugly bad everywhere in 64 bitsVincent Diepeveen2010/06/23 02:49 PM
              even for 64-bit arch?anon2010/06/23 02:59 PM
              GCC is very ugly bad everywhere in 64 bitsajensen2010/06/23 11:03 PM
                GCC is very ugly bad everywhere in 64 bitsGabriele Svelto2010/06/24 02:33 AM
                  GCC is very ugly bad everywhere in 64 bitsajensen2010/06/24 05:32 AM
                    GCC is very ugly bad everywhere in 64 bitsGabriele Svelto2010/06/24 07:18 AM
                      GCC is very ugly bad everywhere in 64 bitsajensen2010/06/24 09:50 AM
                        Why GCC is big and complicated (my guess)Mark Roulo2010/06/24 12:17 PM
                          Why GCC is big and complicated (my guess)Gabriele Svelto2010/06/28 04:00 AM
                GCC is very ugly bad everywhere in 64 bitsBernd Schmidt2010/06/24 05:46 AM
                  GCC is very ugly bad everywhere in 64 bitsajensen2010/06/24 09:43 AM
                  GCC is very ugly bad everywhere in 64 bitsVincent Diepeveen2010/06/26 02:12 PM
                GCC is very ugly bad everywhere in 64 bitsRob Thorpe2010/06/24 07:47 AM
                  GCC is very ugly bad everywhere in 64 bitsAnon2010/06/24 05:23 PM
            Where is the GCC optimization effort directed?Gabriele Svelto2010/06/23 10:45 PM
              Where is the GCC optimization effort directed??2010/06/24 01:48 AM
                Where is the GCC optimization effort directed?Gabriele Svelto2010/06/24 02:29 AM
                  Where is the GCC optimization effort directed??2010/06/24 03:13 AM
                    Where is the GCC optimization effort directed?Andi Kleen2010/06/24 03:15 AM
                      Where is the GCC optimization effort directed??2010/06/24 04:08 AM
                    Where is the GCC optimization effort directed?Gabriele Svelto2010/06/24 03:54 AM
                      Where is the GCC optimization effort directed??2010/06/24 04:15 AM
                        Where is the GCC optimization effort directed?Gabriele Svelto2010/06/24 07:22 AM
                Where is the GCC optimization effort directed?Rohit2010/06/24 03:04 AM
                  Placebo effect?2010/06/24 06:37 AM
                    Placebo effectRohit2010/06/24 08:45 AM
                    Placebo effectVincent Diepeveen2010/06/26 02:50 PM
                      Compile timeMark Roulo2010/06/26 05:28 PM
                        Compile timeRichard Cownie2010/06/27 04:44 AM
                          Compile timeMark Roulo2010/06/27 10:12 AM
                          Compile timeMark Roulo2010/06/27 10:21 AM
                            Compile timeEduardoS2010/06/27 11:37 AM
                            Compile timeRichard Cownie2010/06/27 04:07 PM
                              Compile time & efficiency?2010/06/28 12:03 AM
                                Compile time & efficiencyMark Christiansen2010/06/28 06:08 AM
                                Compile time & efficiencyLinus Torvalds2010/06/28 07:48 AM
                                  kernel programming languageJohn Simon2010/06/29 06:46 PM
                                Compile time & efficiencyRichard Cownie2010/06/28 09:29 AM
                                  Compile time & efficiencyLinus Torvalds2010/06/28 11:17 AM
                                    Compile time & efficiencyRichard Cownie2010/06/28 02:16 PM
                                      Compile time & efficiencyRichard Cownie2010/06/28 06:23 PM
                                        Compile time & efficiencyMark Roulo2010/06/29 08:31 AM
                                          Compile time & efficiencyRichard Cownie2010/06/29 11:48 AM
                                          Compile time & efficiencyrwessel2010/06/29 12:28 PM
                                            C is a crappydev2010/06/29 07:12 PM
                                              C is a crappy, but only when you push it out of it's nicheRohit2010/06/30 02:11 AM
                                              C is a crappyanon2010/06/30 02:17 AM
                                                C is a crappydev2010/06/30 07:59 AM
                                                  C is a crappyMax2010/07/01 04:30 AM
                                                    C is a crappyMichael S2010/07/01 07:00 AM
                                                      C is a crappyKonrad Schwarz2010/07/01 08:02 AM
                                                        C is a crappyMichael S2010/07/01 08:50 AM
                                                          C isn't so crappyanon2010/07/01 10:11 AM
                                                            C isn't so crappyMikael Tillenius2010/07/01 11:39 AM
                                                          C is a crappyKonrad Schwarz2010/07/01 11:22 AM
                                                          C is a crappyMax2010/07/02 08:44 AM
                                                            C is a crappyrwessel2010/07/02 12:33 PM
                                                              C is a crappyanon2010/07/02 01:17 PM
                                                              C is a crappyMax2010/07/02 02:56 PM
                                                                C is a crappyMax2010/07/02 03:13 PM
                                                                  C is a crappyrwessel2010/07/02 03:32 PM
                                                                    C is a crappyMax2010/07/02 04:19 PM
                                                                    C is a crappyGabriele Svelto2010/07/05 05:25 AM
                                                      C is a crappygallier22010/07/02 12:14 AM
                                                    C is a crappyIan Ollmann2010/07/06 03:07 PM
                                                      PortabilityMax2010/07/06 03:37 PM
                                                      C is a crappyhobold2010/07/07 02:31 AM
                                                        C is a crappyIan Ollmann2010/07/07 05:18 PM
                                                      failure to standardize typesCarlie Coats2010/07/07 04:11 AM
                                                      C is a crappyKonrad Schwarz2010/07/07 08:34 AM
                                                        C is a crappyIan Ollmann2010/07/07 05:29 PM
                                                          C is a crappy NOTKonrad Schwarz2010/07/08 12:29 AM
                                                  C is a crappyanon2010/07/01 10:40 PM
                                                    C type safety?2010/07/02 01:10 AM
                                                      C type safetyanon2010/07/02 11:02 PM
                                                    C is a crappydev2010/07/03 04:51 PM
                                                      C is a crappyanon2010/07/03 07:02 PM
                                                        C is a crappydev2010/07/05 07:27 AM
                                                          C is a crappy?2010/07/05 09:05 AM
                                                            C is a crappyanonymous2010/07/07 08:32 AM
                                                              C is a crappy?2010/07/07 10:48 PM
                                                              C is a crappyAnon2010/07/08 12:53 AM
                                                      C is a crappy and a crappie is a fishanonymous2010/07/03 07:24 PM
                                      Compile time & efficiencyMichael S2010/06/29 03:18 AM
                                        Compile time & efficiencyrwessel2010/06/29 12:20 PM
                                        Compile time & efficiencysomeone2010/06/30 11:03 AM
                                        Compile time & efficiencyJouni Osmala2010/07/02 05:29 AM
                                  Compile time & efficiencyMax2010/06/28 05:05 PM
                                    Compile time & efficiencyEduardoS2010/06/28 05:11 PM
                                    Compile time & efficiencyMichael S2010/06/29 03:33 AM
                              Compile timeFoo_2010/06/28 09:03 AM
          sun 's cc better than GCC?Silent2010/06/23 06:19 PM
            sun 's cc better than GCC?Foo_2010/06/23 07:06 PM
          sun 's cc better than GCC?Andi Kleen2010/06/24 02:49 AM
        sun 's versus gccVincent Diepeveen2010/06/23 03:07 PM
    Why no GCC?Carlie Coats2010/06/23 05:11 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell avocado?