Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
C is not a low-level language
Chisnall D. Queue16 (2):18-30,2018.Type:Article
Date Reviewed: Oct 21 2020

Early computers were programmed with low-level languages that were very close to their physical architecture. Although those languages guaranteed efficient use of machine resources, they were not particularly user-friendly, meaning it was hard for researchers in any domain outside computer science to write programs that solved their problems. The C programming language was developed as an effort to overcome these difficulties. It was, at the same time, compatible with the greatest number of computer architectures and more comprehensible by people who were not computer scientists. Yet as processor architecture evolved and became more sophisticated, the C language developed problems of its own, some of which are highlighted in this article.

In short, C natively uses sequential execution and flat memory spaces--no problem for early computers where processor architectures were built precisely on those requirements, but a big pain for modern computers where processors heavily use threading for program execution and caching for fast data retrieval. Compiling C programs to make use of these features creates huge, inefficient, low-level programs. On the other hand, forgoing these features makes inefficient use of processor power. More alarmingly, these weaknesses have been known to be exploited by the Spectre and Meltdown viruses. The author’s answer to this issue seems rather blunt at first: stop using C when programming on machines with modern processor architectures. On second thought, though, this recommendation holds only for newer code; the world literally runs on plenty of legacy C programs, and they continue to be efficient and reliable.

Reviewer:  Andrea Paramithiotti Review #: CR147087 (2102-0040)
Bookmark and Share
  Featured Reviewer  
 
C (D.3.2 ... )
 
 
General (D.3.0 )
 
 
Minicomputers (C.5.2 )
 
Would you recommend this review?
yes
no
Other reviews under "C": Date
C (2nd ed.)
Schildt H., Osborne/McGraw-Hill, Berkeley, CA, 1990. Type: Book (9780078815386)
Jan 1 1992
C: a software engineering approach
Darnell P., Margolis P., Springer-Verlag New York, Inc., New York, NY, 1991. Type: Book (9780387973890)
Dec 1 1991
C for programmers
Ammeraal L., John Wiley & Sons, Inc., New York, NY, 1991. Type: Book (9780471928515)
Dec 1 1991
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy