1. Introduction
Before the rise of modern programming languages, developers had to write software by directly manipulating binary machine code or using assembly language — a low-level, hardware-specific language that offered minimal abstraction. This process was error-prone, tedious, and tightly coupled to specific processor architectures.
Over time, high-