Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The insight they had with Simula was similar to that of lisp. Code/behaviour as a first class thing:

"In Simula I, Dahl made two changes to the Algol 60 block: small changes, but changes with far-reaching consequences. First, “a block instance is permitted to outlive its calling statement, and to remain in existence for as long as the program needs to refer to it” [11]. Second, references to those block instances are treated as data, which gives the program a way to refer to them as independent objects. As a consequence of these changes, a more general storage allocation mechanism than the stack is needed: a garbage collector is required to reclaim those areas of storage occupied by objects that can no longer be referenced by the running program."

https://www.sciencedirect.com/science/article/pii/S089054011...



It's interesting that this somewhat implies the notion of a heap and garbage collection, but that this was not considered for strings.


Strings were really more thought of as arrays/buffers at the time. You could create a String class to serve the purpose of a “modern” string, I believe. However, Simula didn’t yet have operator overloading to make it look like a built-in type.




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

Search: