Joker_vD 6 days ago

Yes, pretty much. To be fair, C at this point was basically BCPL with slightly different syntax (and better char/string support). The introduction of structs (and then longs) changed it forever.

1
kragen 5 days ago

BCPL had a lot of features C didn't have at this point and still doesn't. You mean B.

Joker_vD 5 days ago

Could you elaborate on those features? From the top of my head, those are: nested functions — those always were of dubious usefulness compared to the implementation difficulties needed; labels are actual constants, so computed GOTO is available — that's definitely a feature standard C still doesn't have; manifest constants — this one is Ritchie's most baffling omission in the language; multiple assignment — it's not actually parallel so merely a syntax nicety (with a footgun loaded); valof-resultis — while very nice, it's also merely a syntax nicety, "lvalue := valof (... resultis expr; ...)" is the same as "{... lvalue = expr; goto after; ... } after: ;".

What else is there? Pointless distinction between the declaration syntax of functions and procedures?

kragen 5 days ago

That includes everything I was thinking of and several things I didn't know about.

psjs 5 days ago

What features did BCPL have at that point that C didn’t have (and stil does not)?