Physics.Math.Code
138K subscribers
5.12K photos
1.83K videos
5.78K files
4.23K links
VK: vk.com/physics_math
Чат инженеров: @math_code
Учебные фильмы: @maths_lib
Репетитор IT mentor: @mentor_it
YouTube: youtube.com/c/PhysicsMathCode

Обратная связь: @physicist_i

№ 5535336463
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Сборка мусора (англ. garbage collection) в программировании — одна из форм автоматического управления памятью. Специальный процесс, называемый сборщиком мусора (англ. garbage collector - GC), периодически освобождает память, удаляя из неё ставшие ненужными объекты. Автоматическая сборка мусора позволяет повысить безопасность доступа к памяти. Сборка мусора была впервые применена Джоном Маккарти в 1959 году в среде программирования на разработанном им функциональном языке программирования Лисп. Впоследствии она применялась в других системах программирования и языках, преимущественно — в функциональных и логических. Необходимость сборки мусора в языках этих типов обусловлена тем, что структура таких языков делает крайне неудобным отслеживание времени жизни объектов в памяти и ручное управление ею. Широко используемые в этих языках списки и основанные на них сложные структуры данных во время работы программ постоянно создаются, надстраиваются, расширяются, копируются, и правильно определить момент удаления того или иного объекта затруднительно.

В промышленных процедурных и объектных языках сборка мусора долго не использовалась. Предпочтение отдавалось ручному управлению памятью, как более эффективному и предсказуемому. Но со второй половины 1980-х годов технология сборки мусора стала использоваться и в директивных (императивных), и в объектных языках программирования, а со второй половины 1990-х годов всё большее число создаваемых языков и сред, ориентированных на прикладное программирование, включают механизм сборки мусора либо как единственный, либо как один из доступных механизмов управления динамической памятью. В настоящее время она используется в Оберон, Java, Python, Ruby, C#, D, F#, Go и других языках.

▪️Висячая ссылка (англ. dangling pointer) — это ссылка на объект, который уже удалён из памяти. После удаления объекта все сохранившиеся в программе ссылки на него становятся «висячими». Память, занимаемая ранее объектом, может быть передана операционной системе и стать недоступной, или быть использована для размещения нового объекта в той же программе. В первом случае попытка обратиться по «повисшей» ссылке приведёт к срабатыванию механизма защиты памяти и аварийной остановке программы, а во втором — к непредсказуемым последствиям. Появление висячих ссылок обычно становится следствием неправильной оценки времени жизни объекта: программист вызывает команду удаления объекта до того, как его использование прекратится.

▪️Утечки памяти — Создав объект в динамической памяти, программист может не удалить его после завершения использования. Если ссылающейся на объект переменной будет присвоено новое значение и на объект нет других ссылок, он становится программно недоступным, но продолжает занимать память, поскольку команда его удаления не вызывалась. Такая ситуация и называется утечкой памяти (англ. memory leak). Если объекты, ссылки на которые теряются, создаются в программе постоянно, то утечка памяти проявляется в постепенном увеличении объёма используемой памяти; если программа работает долго, объём используемой ею памяти постоянно растёт, и через какое-то время ощутимо замедляется работа системы (из-за необходимости при любом выделении памяти использовать свопинг), либо программа исчерпывает доступный объём адресного пространства и завершается с ошибкой. 📱 Подробности

📱 Автор видео: Владимир Балун

#программирование #архитектура #многопоточность #сборщикмусора #cpp #java #coding #programming

💡 Physics.Math.Code
// @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
📚 Подборка книг по C++ от Бьёрне Страуструпа

Страуструп представляет возможности C++ в контексте поддерживаемых ими стилей программирования, таких как объектно-ориентированное и универсальное программирование. Его экскурсия на удивление обширна. Освещение начинается с основ, затем широко распространяется по более продвинутым темам, уделяя особое внимание новым языковым возможностям. В этом издании рассматриваются многие новые функции C++20, реализованные основными поставщиками C++, включая модули, концепции, сопрограммы и диапазоны. В нем даже представлены некоторые используемые в настоящее время библиотечные компоненты, включение которых в стандарт не запланировано до C++23.

💾 Скачать книги

Это авторитетное руководство не ставит своей целью научить вас программировать (об этом читайте в книге Страуструпа "Программирование: принципы и практика использования C++", второе издание), и оно не будет единственным ресурсом, который вам понадобится для овладения C++ (об этом читайте в книге Страуструпа "Язык программирования C++", четвертое издание). Издание и рекомендуемые онлайн-источники). Однако, если вы программист на C или C++, желающий лучше познакомиться с текущим языком C++, или программист, разбирающийся в другом языке, желающий получить точное представление о природе и преимуществах современного C++, вы не найдете более короткого или простого введения.
#cpp #cplusplus #programming #C #си #программирование #подборка_книг #разработка #архитектура

💡 Physics.Math.Code // @physics_lib
Книги C++ Бьёрн Страуструп.zip
180.8 MB
📚 Подборка книг по C++ от Бьёрне Страуструпа

📘 Язык программирования C++ [2013] Бьёрн Страуструп
📕 Программирование. Принципы и практика с использованием C++ (2е издание) [2016] Страуструп Б.
📗 A Tour of C++ Second Edition [2018] Bjarne Stroustrup
📔 Язык программирования С++. Краткий курс. 2-е издание [2019] Страуструп Бьярне
📙 Язык программирования С++. Специальное издание [2019] Страуструп Бьерн
📓 Дизайн и эволюция языка C++ [2007] Страуструп Б.
📒 Экскурсия по C++, 3-е издание [2023] Страуструп Бьярне


Книга написана Бьерном Страуструпом - автором языка программирования C++ - и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный объектно-ориентированный подход к созданию программных продуктов.
Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук». #cpp #cplusplus #programming #C #си #программирование #подборка_книг #разработка #архитектура

💡 Physics.Math.Code // @physics_lib