From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,baaf5f793d03d420 X-Google-Attributes: gid109fba,public X-Google-Thread: 103376,97188312486d4578 X-Google-Attributes: gid103376,public X-Google-Thread: fc89c,97188312486d4578 X-Google-Attributes: gidfc89c,public X-Google-Thread: 1014db,6154de2e240de72a X-Google-Attributes: gid1014db,public X-Google-Thread: 10db24,4cf070091283b555 X-Google-Attributes: gid10db24,public From: dewar@cs.nyu.edu (Robert Dewar) Subject: Re: What's the best language to learn? [was Re: Should I learn C or Pascal?] Date: 1996/08/17 Message-ID: #1/1 X-Deja-AN: 174790139 references: <4u7hi6$s2b@nntp.seflin.lib.fl.us> <4uo74j$95p@ns.broadvision.com> <01bb8950$2c8dcc60$87ee6fce@timpent.airshields.com> <4ut8h3$2an@ccshst05.uoguelph.ca> <01bb8c6d$c62d44c0$87ee6fce@timpent.airshields.com> organization: Courant Institute of Mathematical Sciences newsgroups: comp.edu,comp.lang.ada,comp.lang.c,comp.lang.c++,comp.unix.programmer Date: 1996-08-17T00:00:00+00:00 List-Id: Tim says "It's extremely rare that hand coded assembly is slower than compiler output. Compilers are *extremely* stupid; anyone who thinks otherwise has either 1) not coded in assembly, and 2) not viewed the assembly output from compilers. They are certainly less stupid than they used to be, but to imagine that on the average they beat even the average human assembly programmer is just nonsense. " This is a reasonable statement for 1975, but not for today, and makes me think you have not coded for modern processes with reasonable levels of ILP. Coding for such machines by hand is extremely difficult, and it is often the case that compilers can do better. At the very lease you need an optimizing assembler that will do the scheduling. Trace scheduling and speculative execution are not something that are easy to deal with by hand. Register renaming can also immensely complicate hand coding, but is something a compiler can do reasonably well.