Bob Koure
1 min readJun 14, 2023

--

>> not how it maps to machines and memory with pointers

But it's worth remembering that C was intended to be a portable assembler. The operators match up well to PDP11 assembly code (for obvious reasons), relatively well to other Von Neuman machines, allowing a programmer to switch back and forth. Pointers were how the base machine worked. C's ability to cast a pointer into a pointer-to a struct, array, or whatever lets the programmer unload the pointer math onto the compiler. Referencing data of dimensional arrays of structs in assembler requires... concentration. Much less fraught in C.

I'd agree that *now* programming should be done in higher level terms as CPUs are enough faster and compiler optimization steps are enough better for there to no longer be a need - excepting some specialized scenarios like real-time code running in a systems level handler.

Disclaimer: I came to C after a decade or so of various assemblers. Loved what it could do.

--

--

Bob Koure
Bob Koure

Written by Bob Koure

Retired software architect, statistical analyst, hotel mgr, bike racer, distance swimmer. Photographer. Amateur historian. Avid reader. Home cook. Never-FBer

Responses (1)