last day (15 days later) » 

08:59
24
A: Who invented garbage collection?

RaffzahnTL;DR: Garbage collection is no stand alone item but part of a dynamic storage management Only languages having dynamic storage objects management to handle them C is none of them Languages like LISP or BASIC need it Either had it years before C was developed. Garbage collection is never a sta...

Though GC was there in LISP 1.5 (and fully described in the LISP 1.5 Programmer's Manual) you're correct it wasn't there "from the start". But they had known that they needed GC. John McCarthy in his article "History of LISP" says: "Once we decided on garbage collection, its actual implementation could be postponed, because only toy examples were being done." He's referring to the very first implementation effort, in 1958. (I don't know when after that they added it.) (Reminds me of a common joke about mathematicians ...)
Also C did have dynamic memory management in its library: malloc/free were there from the start! But of course it was all managed by the programmer. (Contrast, e.g., FORTRAN and COBOL which did not even have that.)
@davidbak I guess it's wrong either way I write it. I did add that 'almost' to avoid someone coming up with an early example. The question isn't who thought of it, but who did it. As you rightful state, C's malloc is a static heap concept, thus not a dynamic memory management. Last, ALGOL had it, so no need to reference to FORTRAN (and COBOL had similar, but as part of implied run time/OS mechanics, i.e. not user visible.
Didn't know that about COBOL (unless you're referring to internal buffer management for I/O?) forgot ALGOL had it. ALGOL 58? 60? Obviously ALGOL 68 had GC, full closures, etc..... And I've always called what C had/has "dynamic memory managment". Just not "automatic memory management" (which is GC).
p.s. i wasn't quibbling about the LISP thing. more like "clarifying" or even better "supplementing". I think it's neat that they did some very early "software engineering": don't need it yet? don't bother with it! (if only more projects did that!)
@davidbak Sure, one starts at some end of the package to be done ... and while the professional world will not talk much about it before the whole thing is gone, the academic world will start to publish papers even before the first lien of code is done :))
No dynamic storage (no GC) in Algol 60, since all you could do with "strings" in the language was to write string literals, and pass them around from one procedure to another, for ultimate consumption by a code procedure. Also for evidence against GC, witness the fairly general rejection of the "dynamic own" interpretation of that part of the language.
08:59
@Raffzahn thanks for taking the time to explain this to me. The tone of the comments give me the impression some people are annoyed that a random noob on the internet did not fully comprehend the C language. I dont know why posters are suprised that some people on SE know less than them on certain subjects.
Although it's only a minor language, maybe Muddle deserves mention. Carl Hewitt, one of the main architects of Mudddle, just passed. I wrote the GC for Muddle, as part of memory management. Wikipedia
@WalterMitty You did? Neat. Had a look at many many years ago when I wrote a system to define an adventure world. Was a total noob back then, so the result was a bastard somewhere between Lisp, Prolog and BASIC :))
@NeilMeyer Well, isn't what what RC.SE is for? It's just that people tend to be opinionated about what they laove and opinion easy takes a front line. At the same time, Questions wording can create an image one step beside reality, adding unwanted angles.
P.S. Also opinionated about what they hate perl/php cough cough
@davidbak don't get me going :))
@another-dave - search didn't turn up anything for "ALGOL-68 dynamic own" - can you be more specific about what that was and/or what the controversy was? Actually, I'll ask that in a different question ...
08:59
@davidbak -the answer is ready and waiting....
@WalterMitty: Whow. I had never heard of Muddle, but holy cow does that language have an impressive array of "fathers" and "progenies". As someone who is aware of Carl Hewitt and Gerald R. Sussmann, and Planner, Scheme, Smalltalk, PLASMA, and the Actor Model, I can't believe I missed it.
@davidbak - I wrote 'Algol 60 dynamic own', your comment said 'Algol 68'. Typo, or did you mis-read? Algol 68 disowned own.
@another-dave - no, it was this: a) had never ever heard of ALGOL 60 "dynamic" anything really; and b) I mentioned GC in the context of ALGOL 68. So I thought 1) you were referring to GC in ALGOL 68 though you had written 60 and 2) I know that heap was one of the things left out of several ALGOL 68 (subset) compilers. So it was a multiple-collision of different errors of mine. I do have a question about heap though, may still ask it separately, but I found sci-hub.se/doi.org/10.1007/BF01935562 and have to read it first.
Muddle, aka MDL was unkown outside of the Dynamic Modeling group at project MAC, led by JCR Licklider. I was on staff there from 1970 to 1972. It doesn't get mentioned in Hewitt or Sussman's bio, but I believe it played a role in the progress of their thinking.
And Zork was written initially in Muddle.

last day (15 days later) »