In article kst@thomsoft.com (Keith Thompson) writes: > In jsa@alexandria (Jon S Anthony) writes: > [...] > > But *languages* don't have GC. Implementations of them do. Even > > Meyer says little about GC in ETL - just that all *implementations* > > are *expected* to have it. > > That's not *quite* correct. It's admittedly difficult to define > garbage collection in a formal language definition, but the Java > definition at least attempts to do so. Here's paragraph 20.16.9 > of The Java Language Specification, version 1.0 (available at > ). > > 20.16.9 public void gc() > > Calling this method suggests that the Java Virtual Machine expend > effort toward recycling discarded objects in order to make the > memory they currently occupy available for quick reuse. When > control returns from the method call, the Java Virtual Machine > has made a best effort to recycle all discarded objects. (The > name gc stands for "garbage collector.") > > The Java runtime system will perform this recycling process > automatically as needed, in a separate thread, if the gc method > is not invoked explicitly. > > See also the method gc (�20.18.12) of class System, which is > the conventional and convenient means of invoking this method. > > This does refer to the "Java Virtual Machine", but I don't think there's > any requirement that the JVM be implemented via the usual byte code > interpreter. But the point is that it is talking about the JVM, _not_ JTL. The JVM is about a particular implementation. Moreover, "suggests", "expend effort toward", "made a best effort", etc. sounds a lot like "expected to have". > Even for a Java compiler that generates machine code directly, the > runtime system has to provide a JVM implementation as specified in > the language specification. I think. Where is this stated? Even if true, I don't see the relevance. /Jon -- Jon Anthony Organon Motives, Inc. Belmont, MA 02178 617.484.3383 jsa@organon.com