Low-level and High-level Programming language --- Programming languages are often grouped into low-level and high-level languages based on how close they are to the computer’s hardware. **Low-Level Programming Languages** Low-level languages are close to hardware and give more control over system resources. **Types** **1.** **Machine Language** * Binary code (0s and 1s) * Directly executed by the CPU * Example: 10101000 00000001 **2. Assembly Language** **:** Is the low-level programming language that provides a human-readble symbolic representation of computer's specific machine code instructions. * Uses mnemonics instead of binary * Requires an assembler High-Level Programming Languages --- High-level languages are user-friendly and closer to human language. **Examples** * Python * Java * C++ * JavaScript * C# * PHP Transletor --- A translator is system software that converts a program written in a high-level or assembly language into machine language so that the computer can execute it. **Types of translators** **1. Compiler** * Translates the entire source code at once * Produces machine code or bytecode * Errors are shown after compilation **Examples:** C, C++ → machine code Java → bytecode (via javac) **2. Interpreter** * Translates and executes line by line * Stops at the first error * No separate executable file **Examples:** Python JavaScript Main types of errors --- Errors are bugs or mistakes in a program that prevent it from working correctly. **1. Syntax Errors** * Mistakes in grammar of the language * Detected by compiler or interpreter * Program will not run **2. Runtime Errors** * Occur while the program is running * Program starts but crashes **3. Logical Errors** * Program runs but gives wrong output * Hardest to find