3 ms·
"No reference to any computer or mechanism should be necessary to understand it." I share the sentiment, but even Oberon has pointers. It's also a strongly typ
by open-source-ux 6y ago
"No reference to any computer or mechanism should be necessary to understand it."
I share the sentiment, but even Oberon has pointers. It's also a strongly typed programming language. You could argue that types are a way of mapping how computers represent data (inseparable from the advantages of type checking in program design). For example, you don't simply declare an integer in some languages, you declare it as 8-, 16-, 32- or 64-bit integer. And many compiled languages have specific memory-related syntax.
Although I prefer strongly typed programming languages, it's actually dynamic languages that have shielded programmers (for better or worse) from types, pointers and manual memory manipulation. Without the need to expose computer workings, it's dynamic languages that fulfil the sentiment in Wirth's statement, much more than strongly typed languages.
- pjmlp 6y agoDepends on the dynamic language, Common Lisp can be used to write full stack OSes. Python also exposes pointers and manual memory manipulation via ctypes package.
- MarcusE1W 6y agoI think Ada get’s quite close to that approach. Mostly you describe data structures you need, rather a representation the computer understands. The compiler is supposed to sort out the transition from programmer need to computer need. E.g. type Day_Type is range 1 .. 31; type Integ_Type is digits 5 range -1.0 .. 1.0; The compiler then chooses the best representation.