Bei der Umsetzung eines Dolmetschers, ist es eine gute oder schlechte, um mit der Bahn aus der Sprache des Aufnahmelandes, garbage collector?
-
24-09-2019 - |
Frage
Angenommen, Sie implementieren einen Dolmetscher für eine GCed Sprache, in einer Sprache, die GCed.Es scheint mir, Sie bekommen würde die garbage collection für frei, solange Sie einigermaßen vorsichtig über Ihr design.
Ist dies in der Regel, wie es geht?Gibt es gute Gründe, dies nicht zu tun?
Lösung
Sprache und Laufzeit sind zwei verschiedene Dinge. Sie sind nicht wirklich IMHO Zusammenhang stehen.
Wenn also die Laufzeit bietet bestehenden ein GC bereits, es muss ein guter Grund, die Laufzeit mit einem anderen GC zu verlängern. In den guten alten Zeiten, als Speicherzuordnungen in den OS langsam und teuer waren, Apps ihren eigenen Heap-Manager gebracht, wo effizienter mit kleinen Datenmengen zu tun. Das war ein readon für das Hinzufügen eines weiteren Speicherverwaltung zu einem bestehenden Laufzeit (oder OS). Aber wenn Sie Java sprechen, .NET oder so -. Diese sollten bei der Hand gut und effizient genug für die meisten Aufgaben sein
Sie können jedoch wollen eine richtige Schnittstelle / API für Speicher und Objekt-Management-Aufgaben (und andere) erstellen, so dass Ihre Sprache ( „guest“) Laufzeit auf eine anderen Host-Laufzeit auf später umgesetzt werden könnte.
Andere Tipps
Für Dolmetscher sollte es kein problem mit die host GC, IMHO, vor allem auf den ersten.Wie immer Ziel sein sollte, um etwas funktioniert, dann Mach es richtig funktioniert, dann geht das ganz schnell.Dies gilt besonders für Domain-Spezifische Sprachen (DSL), wo das Ziel ist eine kleine Sprache.Für diese Umsetzung ein full GC wäre übertrieben.