High Level Programming Language
A high-level programming language (HLL) is designed to simplify computer programming by
abstracting away the complexities of the machine's hardware. These languages use syntax and
semantics that resemble human languages, making them easier to read, write, and understand.
Characteristics of High-Level Languages
High-level languages offer several key characteristics:
Abstraction: They hide the complex details of how computers work, allowing programmers
to focus on what the program should do rather than how it will run on the machine.
Human-Readable Syntax: They use words and symbols that are easier for humans to
understand, making the code more readable and maintainable.
Portability: Programs written in high-level languages can run on different types of computers
with minimal changes.
Automatic Memory Management: These languages handle memory allocation and
deallocation automatically, reducing the risk of memory leaks.
Enhanced Debugging and Error Handling: They come with tools that make finding and
fixing mistakes easier.
Examples of High-Level Languages
Some popular high-level languages include:
Python: Known for its simplicity and readability, used in web development, data analysis,
artificial intelligence, and scientific computing and Cyber Security.
Java: Used in enterprise environments, Android app development, and large systems
development.
C++: Combines features of both low and high-level languages, suitable for performance-
critical applications.
JavaScript: Essential for web development, used in both front-end and back-end
development.
Machine Level Language
Machine language, also known as machine code or object code, is a low-level
programming language that consists of binary bits, i.e., only 0 and 1.
This binary form is the only language that computers can directly understand and
execute.
Each instruction in machine language is directly executed by the CPU, making it
extremely fast in execution.
Example of Machine Language
To illustrate, consider a simple addition operation in machine language:
01100110
00001010.
This binary sequence represents an instruction that tells the computer to add two numbers
together
Advantages and Disadvantages
Advantages:
Speed: Machine language is faster in execution because it is in binary form and
directly executed by the CPU.
No Translation Needed: Machine language does not need to be translated, as it is
already in a form that the computer can understand.
Disadvantages:
Complexity: Machine language is complex to understand and memorize, making it
nearly impossible for humans to learn.
Error-Prone: Writing code in machine language is time-consuming and prone
(possible to occur)to errors.
Platform Dependency: Machine languages are platform-dependent, meaning the
code written for one type of processor may not work on another.
Role of system software
A computer program is a sequence of statements in a programming language that instructs the
CPU to achieve a particular result.
Editor
Editors or text editors are software programs that enable the user to create and edit
text files.
Notepad, Wordpad are some of the common editors used on Windows OS and vi,
emacs, Jed, pico are the editors on UNIX OS.
Features normally associated with text editors are — moving the cursor, deleting,
replacing, pasting, finding, finding and replacing, saving etc.
Compiler
A compiler is a specialized system tool that translates a program written in a specific
programming language into the assembly language code.
The assembly language code is specific to each machine and is governed by the CPU
of the machine.
Assembler
The assembler translates assembly code to the machine code and then stores the result in an
object file.
This file contains the binary representation of our program.
Example 1:
INC COUNT ; Increment the memory variable COUNT
MOV TOTAL, 48 ; Transfer the value 48 in the
; memory variable TOTAL
ADD AH, BH ; Add the content of the
; BH register into the AH register
AND MASK1, 128 ; Perform AND operation on the
; variable MASK1 and 128
ADD MARKS, 10 ; Add 10 to the variable MARKS
MOV AL, 10 ; Transfer the value 10 to the AL register
Example 2:
This code is written for the x86 architecture and uses NASM (Netwide Assembler) syntax. It
performs the following steps:
1. Defines three data variables: num1, num2, and result.
2. Loads the value of num1 into the AL register.
3. Adds the value of num2 to the AL register.
4. Stores the result back into the result variable.
5. Exits the program using a system call.
Linker
The linker combines all external programs (such as libraries and other shared components)
with our program to create a final executable.
Loader
It loads the final executable code into memory.
Operating System
It acts as an intermediary between the user and the computer hardware, ensuring that
applications can run efficiently and effectively.
An Operating System (OS) is a system software that manages computer hardware and
software resources, providing common services for computer programs.
Examples of Operating Systems
Windows: Widely used on personal computers and laptops.
Linux: Popular for servers and also used on personal computers.
macOS: Used on Apple’s personal computers.
Android: Dominant in the smartphone market.
iOS: Used on Apple’s iPhones and iPads.
Types of Operating Systems
1. Batch Operating System
2. Time-Sharing Operating System
3. Distributed Operating System
4. Network Operating System
5. Real-Time Operating System
6. Multiprocessing Operating System
7. Single-User Operating System
8. Multi-User Operating System
9. Embedded Operating System