Hacker News new | past | comments | ask | show | jobs | submit login

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



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?


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


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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: