Embedded.com Tech Focus Newsletter (10-18-11): Remembering Dennis Ritchie - Embedded.com

Embedded.com Tech Focus Newsletter (10-18-11): Remembering Dennis Ritchie

Embedded Newsletter for 10-17-2011

» Click here to view online I » Forward to a friend I » Sign up for an EE Times Newsletter

Share this Newsletter:

facebook linkedin twitter digg

October 17, 2011

Tech Focus: Remembering Dennis Ritchie

HIGHLIGHTS

Dennis Ritchie, Father of C, dies

Dennis Ritchie, trailblazer in digital era, dies at 70


Editor's Note

Bernard Cole Bernard Cole
Site Editor
Embedded.com

Last week two giants of the computing industry died within a few days of one another after long illnesses – Dennis Ritchie and Steve Jobs. Under Jobs' driven and focused leadership at Apple, his company changed the face of personal computing, portable entertainment, and mobile phones.

Working quietly and collaboratively at Bell Labs for most of his life, Ritchie was the creator of the C language (with Brian Kernighan) and co-developer ofUNIX – the building blocks by which Jobs' engineers and more generally embedded systems developers are able to build today's pervasively connected computing devices.

As the co-developer of UNIX, the concepts Ritchie and Ken Thompson (now at Google) created live on in most current general-purpose and embedded OSes , including open source Linux. As the creator of C, Ritchie is responsible for much of what comprises embedded systems design, both hardware and software. C is the basis of nearly every programming and scripting tool and language embedded developers use, whether they incorporate elements of C's syntax or not, including Java, C++, Objective C, JavaScript, and Verilog. Even the load-store RISC architecture owes quite a bit to C. When the first RISC processors were being designed with the aim of efficiently processing high level programming languages, it was to C – and its compilers – that RISC developers looked for direction.

As some of the design articles and columns included here indicate, using C effectively requires a lot of care and feeding on the part of the programmer. But, as the many projects in which it has been used will attest, the effort is worth it. When using C or thinking of moving on to another language, programmers should remember what Ritchie himself said: “C is quirky, flawed, and an enormous success. ” And what he said about UNIX might also equally apply to the C language: “UNIX is very simple, it just needs a genius to understand its simplicity .”

Dennis Ritchie's legacy may not end with these contributions. Still to be evaluated will be the impact of the last major projects with which he was involved: The Plan9/Inferno Distributed OS and the Limbo distributed programming language . Tellingly, one company that has paid close attention to everything developed by the team he worked with at Bell Labs is Google. Its new Go programming language draws upon both C and Limbo and is designed for use in today's distributed computing environment.


Design How-Tos

Adopting C programming conventions

This ESC paper discusses some common problems found in a lot of code and suggests strategies for avoiding them.

Energy efficient C code for ARM devices

Here is an overview of some of the techniques for optimizing C-code for use on the ARM architecture. (Paper from ARM TechCon 2010.)

Tips for efficient embedded code generation

An understanding of the practical compiler optimizations allows the developer to write the most efficient code, and to know where to focus his time in improving the his product's performance. Following are a number of coding examples and tips for efficient code generation on compilers.

How to analyze C-code for parallelization

Computer scientists and engineers have understood for a long time – almost from the inception of computer science as a discipline – that a possible route to accelerating the execution of a computational task is to exploit the parallelism inherent in its program flow.

Doing C-code generation better: from graphical code to embedded target

How to use high-level design tools and their C-code generation capabilities to improve the design flow by exploring different use cases and how to reduce the expertise required to program embedded targets.

Doing C code unit testing on a shoestring: Part 1- The basics and the tools

In a three part article, Ark Khasin describes a new way to use the pre-processor in your standards-compliant C compiler for unit testing for safety specs such as IEC 61508. First up: unit testing requirements and what you will need.

Expressive vs. permissive languages: Is that the question?

The ease with which code is analyzable depends of the language type you use

Optimizing C programs for embedded SoC applications

Dror Maydan and Steve Leibson provides some guidelines for optimizing C programs in embedded SoC applications using compiler code optimizing efficiency and source code programming styles.

Lean coding

What's the cheapest way to get rid of bugs? Inspect code early and often.

Seventeen steps to safer C code

Here are 17 tips for writing safety-critical C code using methods adapted from C++ and Ada.

Six Rules for Writing Clean Code

What constitutes an effective coding style? Here are six general rules for writing clean code that will help you steer clear of the problems that poor coding style creates.

Tutorial: Achieve reliable embedded code with MISRA C

No software engineering process can guarantee reliable code, but following the right coding guidelines can dramatically reduce the number of errors in your code.

How to Reduce Code Size (and Memory Cost) Without Sacrificing Performance

Through an iterative process of building application code using different compiler optimization options and profiling the result, developers can hone in and identify infrequently used and non-critical sections of code to trade off performance where it matters least for reduced code size, providing minimal impact on system performance.

Designing hardware with C-based languages

With increasing design complexity and shortening time-to-market, hardware designers have sought to use higher levels of abstraction for both verification and design. For many hardware engineers, C-based languages (C/C++ or SystemC) have become a means to specify designs for verification, in addition to offering a starting point for implementation.


Embedded Systems Bookshelf

Excerpts

Embedded Books Reading Room
Bernard Cole's favorite links to book excerpts.

Reviews

Engineer's Bookshelf
Airport fiction blows. A look at books other engineers are reading and why you should read them, too. Recommend and write a review yourself. E-mail Brian Fuller.

Jack Ganssle's Bookshelf
A list of book reviews by Jack Ganssle, contributing technical editor of Embedded Systems Design and Embedded.com.

Max's Cool Beans
Clive “Max” Maxfield, the editor on Programmable Logic DesignLine, often writes about interesting books.


Products

Mentor's new Sourcery CodeBench IDE is based on GNU toolchain

Sourcery CodeBench from Mentor Graphics Corporation is a next-generation integrated development environment (IDE) based on the open source GNU toolchain.

J-Link Ultra debug probe for ARM Cortex enables power debugging

The J-Link Ultra debug probe from IAR Systems supports power debugging within IAR Embedded Workbench and is designed for use with ARM Cortex devices.

SOFTWARE TOOLS: ULINKpro provides debug and trace for Cortex-M3 MCUs

Keil has released of the ULINKpro debug and trace unit, which introduces support for ETM Instruction Trace on Cortex-M3 microcontroller devices.

Software tool suite simplifies source-code analysis

Klocwork Insight Pro increases productivity for the Agile software developer.

Cloud tools automate sequential C code analysis for multi-threading

A cloud-based tool for parallelizing sequential C code has been developed by Vector Fabrics BV (Eindhoven, The Netherlands).


Commentary

Five dangerous coding standard rules

Don't follow these five dangerous coding standard rules… TODO.

Language Lessons

Given a particular programming problem, what language should you use to realize the solution? Your choice could very well affect the success or failure of the project. So you'd better choose wisely.

Languages and custom

The multilingual culture of embedded programming has been replaced by a stultifying sameness. But from the ruins a retrograde movement has begun to stir.

Is C Passing?

Could the choice of programming language alone significantly improve the quality and safety of our finished products?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.