Concepts Learned Through 9 Programming Languages: Part 4 - High-Level Languages and Dynamically Typed Languages
Key point
High-level languages are characterized by memory management through a garbage collector and reference-based type storage.
Details
Programming languages are classified into high-level and low-level depending on how they manage memory. If memory is managed directly, as in C, the language is classified as low-level; if a Garbage Collector is used, it is classified as high-level.
The core characteristic of high-level languages is that most types are stored in the form of a Reference. In Java, when a class instance is assigned to a variable, it is not the instance itself but a reference that is copied, so multiple variables end up pointing to the same instance.
By contrast, the Value Type in C/C++ copies the instance itself. Value types offer performance optimization and simplicity of memory management, but because the required memory size differs by type, constraints arise during upcasting and downcasting.
Reference types store a fixed memory address (4 bytes on 32-bit, 8 bytes on 64-bit) regardless of instance size, so casting across hierarchical structures is unrestricted. Value types, on the other hand, have difficulty applying Variance rules due to differences in memory size.
This summary was generated automatically by AI. Check the original for the author's claims and context. Copyright belongs to the original author.
Our guide explains how the AI works. Report summary errors, attribution issues, or removal requests via Contact.