Systems Programming Notes
Systems Programming Notes
Early Computing
- Primitive Operations:
- Early computers only understood basic commands, such as turning components on/off
using switches.
- Example: An engineer flipping switches manually to add numbers in a binary system.
- Need for Complexity:
- As requirements grew, users wanted computers to process complex instructions like
calculations.
- Example: Users wanted to input commands such as 'If Y = 10, calculate X = 30 × Y,' but
early machines couldn’t understand this without intermediate programs.
- Modern Shift: Today, computers rely on systems programs (like compilers or interpreters)
to translate these high-level instructions into machine-readable formats.
1. Compilers
- Convert high-level programming languages (e.g., Python, Java) into machine code (binary).
- Example: A C++ program written to calculate interest is converted into binary instructions
that the processor can execute.
2. Loaders
- Prepare machine language programs for execution by loading them into memory.
- Example: When running a compiled Python program, the loader prepares it to interact
with the hardware.
3. Macro Processors
- Allow programmers to use shortcuts or predefined commands.
- Example: Instead of writing repetitive code for a loop, a macro can automate this.
- Example: A macro like '#define SQUARE(x) (x * x)' replaces repetitive operations with a
single command.
Current Scenario
- Usage:
- Over 100,000 computers are operational worldwide across industries, used for
everything from personal tasks to critical operations like healthcare and banking.
- Factors Influencing Productivity:
- Efficiency: How resources (CPU, memory) are utilized.
- Example: An optimized operating system uses minimal memory to process tasks quickly.
- Sophistication: Advanced system programs offer better functionality.
- Example: A modern OS supports multi-tasking and user-friendly GUIs.
- Effectiveness: Systems programs need to meet user requirements.
- Example: A compiler that handles complex languages like Rust enhances productivity for
developers.