LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Канонический пример задачи, которая не решается без сборки мусора - это интерпретатор лисп с возможностью удалять определения. Символы ссылаются на функции и значения, а функции - на символы, функции и значения. А значения - друг на друга. Ссылаются они так, как захочет пользователь. Вместо лиспа можно взять любой язык со ссылочными типами данных. В задаче линковки обычной программы на Си, думаю, тоже нужна сборка мусора над объектами, подлежащими линковке, чтобы выкинуть неиспользуемые объекты. Хотя это не «сборка мусора, встроенная в язык», а «алгоритм сборки мусора, применённый к конкретным структурам данных», т.е. её можно реализовать на любом языке. Ещё один вариант применения сборки мусора - это версионные СУБД, например, Postgresql и Firebird (про Оракл меньше уверен, они там грубо себя ведут и состаривают данные принудительно, вроде у них могут из-за этого возникать «висячие указатели» на уже забытые данные, не доходят руки освежить знания).

Исправление den73, :

Канонический пример задачи, которая не решается без сборки мусора - это интерпретатор лисп с возможностью удалять определения. Символы ссылаются на функции и значения, а функции - на символы, функции и значения. А значения - друг на друга. Ссылаются они так, как захочет пользователь. Вместо лиспа можно взять любой язык. В задаче линковки обычной программы на Си, думаю, тоже нужна сборка мусора над объектами, подлежащими линковке, чтобы выкинуть неиспользуемые объекты. Хотя это не «сборка мусора, встроенная в язык», а «алгоритм сборки мусора, применённый к конкретным структурам данных», т.е. её можно реализовать на любом языке. Ещё один вариант применения сборки мусора - это версионные СУБД, например, Postgresql и Firebird (про Оракл меньше уверен, они там грубо себя ведут и состаривают данные принудительно, вроде у них могут из-за этого возникать «висячие указатели» на уже забытые данные, не доходят руки освежить знания).

Исправление den73, :

Канонический пример задачи, которая не решается без сборки мусора - это интерпретатор лисп с возможностью удалять определения. Символы ссылаются на функции и значения, а функции - на символы, функции и значения. Вместо лиспа можно взять любой язык. В задаче линковки обычной программы на Си, думаю, тоже нужна сборка мусора над объектами, подлежащими линковке, чтобы выкинуть неиспользуемые объекты. Хотя это не «сборка мусора, встроенная в язык», а «алгоритм сборки мусора, применённый к конкретным структурам данных», т.е. её можно реализовать на любом языке. Ещё один вариант применения сборки мусора - это версионные СУБД, например, Postgresql и Firebird (про Оракл меньше уверен, они там грубо себя ведут и состаривают данные принудительно, вроде у них могут из-за этого возникать «висячие указатели» на уже забытые данные, не доходят руки освежить знания).

Исходная версия den73, :

Канонический пример задачи, которая не решается без сборки мусора - это интерпретатор лисп с возможностью удалять определения. Символы ссылаются на функции и значения, а функции - на символы, функции и значения.