System C Project - Write a Garbage Collector from Scratch

所在平台: Udemy

课程主页: https://www.udemy.com/course/memory-leak-detector/

课程评论:没有评论

第一个写评论        关注课程

课程简介

课程名称:系统C项目 - 从零开始编写垃圾收集器 课程概述:在亚马逊和谷歌的面试中,我常被问到两个问题:1. 你如何设计一个C程序的垃圾收集器?2. 如果设计垃圾收集器如此简单,为什么C编程语言中没有集成它?通过本课程,您将找到答案。这是一门基于项目的课程,整个过程都涉及C语言的编码。在简历上提及这个项目,会让你倍感自豪。该项目允许扩展至C++,您将学习并编写一个库,用于捕捉应用程序中可能存在的内存泄漏。此项目逐步解释如何设计和实现一个名为MLD(内存泄漏检测器)的垃圾收集器库,将其集成到您的应用程序中,可以捕捉泄漏的对象并进行报告。MLD库是通用库,能够解析任何应用程序的数据结构并对其进行操作。 项目分为三个阶段进行说明。需要注意的是,虽然本课程适合初学者,但要求有一定的分析能力。对于需要“口口相传”式教学的学生,请谨慎报名参加基于项目的课程。 课程亮点: 自C/C++编程语言诞生以来,内存管理一直是开发者需要解决的一大责任。C/C++软件常常面临两种内存相关问题:内存损坏和内存泄漏。与Java不同,C/C++没有自动垃圾收集的便利。Java不允许程序员直接访问物理内存,而C/C++允许,同时也暴露指针给开发者,因此C/C++应用面临内存损坏的问题。 在本课程中,我们将为C程序设计并实现内存泄漏检测器(MLD),该工具可轻松扩展到C++。一些学生曾要求对此项目提供正式描述。学生们可以在简历上提及该项目,或将其作为操作系统项目,标题和摘要如下: 标题:“为C程序设计和实现类Java的垃圾收集器”。在此项目中,我们尝试为C程序实现一个垃圾收集器,该收集器基于对象的可达性原则来检测内存泄漏。通过本项目,我们了解了此类垃圾收集器在C类编程语言中的局限性(与Java/Python不同,C类语言允许直接访问基础内存地址),并分析其作为C类语言内置特性的局限性和成本。

课程评论(0条)

课程详情

I was asked this question in Amazon/Google Interviews: 1. How would you design a garbage collector for C programs? 2. If designing a garbage collector was that easy, why we don't have it integrate with C programming language already ?? Complete this course to get the answers. :pThis course is a Project-based course and involved coding in C at every stage of the course.Mention this project on your Resume with all proud.This is a C Project (open for extension for C++) in which you will learn and write a library that catches the memory leaks, if any, by the application. In this project, I have explained step by step how to design and implement a garbage collector library called MLD (Memory Leak Detector) which when integrated to your application will provide the facility to catch leaked objects and report them. MLD library will be the generic library and has the ability to parse any application's data structures and manipulate them.The Project is explained in 3 phases.Note: This is a course that require a little bit of analysis power, beginner students can also learn much from this course that how you can create a program which can parse its own objects and structures. This technique is used to create many other projects out of which one is Memory leak detection. Advice: Class of Students who needs "spoon-feeding", pls refrain from enrolling in project-based courses.Key highlights: Since the advent of C/C++ Programming language, Memory management is one of the responsibilities which the developer has to deal withC/C++ Softwares often suffers from Two Memory related Problems:Memory corruptionMemory leakUnlike Java, C/C++ does not have the luxury for automatic garbage collectionJava does not allow programmer to access the physical memory directly, but C/C++ does, not does java expose pointers directly to the developer/coder. Therefore Java applications do not suffer from Memory corruption either, but C/C++ doesIn this course, we will design and implement Memory Leak Detector (MLD) tool for C programs, easily extensible to C++ as wellSome Students have requested to provide a formal description of this project. For Students who want to mention this project in their resume, or doing this project as their OS project - you can mention the following title and abstract of this project as below: Title: "Design and Implementation of Java-like Garbage Collector for C Programs".In this project, we try to implement a garbage collector for C programs which work on the principle of reachability of objects to detect memory leaks. Through this project, we understand the limitation of such a garbage collector for C like programming languages (which have direct access to underlying memory addresses, unlike Java/python) and analyze its limitations and cost for being an inbuilt feature of C-like language.

课程标签

0人关注该课程

主题相关的课程