Chapter 5. Using C/C++ and WebAssembly

The C programming language—a language which combines the flexibility of assembly language with the power of assembly language.

Anonymous

This begins a bit of a turning point in our discussion. Up until now, we have been focusing exclusively on WebAssembly and its immediate group of related tools and technologies. As we have seen, this is a useful way to explore what the platform offers, but it is an inefficient way to think about developing new software. Higher-level programming languages have long elevated our profession beyond the initial details of working with low-level instruction sets. It is simply easier and more efficient to express logic in syntactically clean and semantically rich languages.

To really appreciate what WebAssembly is providing, we need to consider one of the many source languages that compile down to it. The point is that not every problem is suitably expressed in JavaScript, so having the option to use another language for its performance, clarity of expression, or to simply reuse existing code is appealing.

The C language is one of the most important and widely used programming languages in the world.1 I started playing around with it in high school on my Atari ST computer. I had read about it in Computer Language magazine and a friend gave me a copy of the seminal, eponymously named book The C Programming Language by Brian Kernighan and the late, great Dennis Ritchie.2

There is an immense amount of software available ...

Get WebAssembly: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.