TITLE:-
High level language and low level language with types in full details leacture 2.
#language
# high-level-language
#low-level-language
#coding
#clanguage
#programmer
#sigmapersonality
#education
#technology
#techtools
discription
## High-Level Languages (HLLs)
High-Level Languages are programming languages that provide a strong abstraction from the details of the computer’s hardware. They are designed to be easy to read and write for humans, often using natural language elements and automating (or hiding) significant areas of computing systems (e.g., memory management). Here are the main types and features:
### 1. **Procedural Languages**
– **Definition**: These languages are based on the concept of procedure calls. Procedures, also known as functions, routines, or subroutines, consist of a series of computational steps to be carried out.
– **Examples**: C, Pascal, Fortran.
– **Characteristics**:
– Focus on a sequence of actions or commands.
– Use control structures like loops and conditionals.
– Variables and data are often separate from the functions.
### 2. **Object-Oriented Languages (OOP)**
– **Definition**: Languages that are based on the concept of “objects,” which can contain data in the form of fields and code in the form of procedures (methods).
– **Examples**: Java, C++, Python, Ruby.
– **Characteristics**:
– Encapsulation: Bundling data with methods that operate on the data.
– Inheritance: Mechanism to create new classes from existing ones.
– Polymorphism: Ability to process objects differently based on their data type or class.
### 3. **Functional Languages**
– **Definition**: Languages that treat computation as the evaluation of mathematical functions and avoid changing-state and mutable data.
– **Examples**: Haskell, Lisp, Erlang.
– **Characteristics**:
– Emphasis on expressions rather than execution of instructions.
– Use of first-class and higher-order functions.
– Pure functions without side effects.
### 4. **Scripting Languages**
– **Definition**: Languages often used for automating processes and tasks, usually interpreted rather than compiled.
– **Examples**: Python, JavaScript, Perl, PHP.
– **Characteristics**:
– High-level abstractions and ease of use.
– Typically used for writing short programs or scripts.
– Often used in web development, system administration, and rapid prototyping.
### 5. **Declarative Languages**
– **Definition**: Languages that express the logic of a computation without describing its control flow.
– **Examples**: SQL, Prolog.
– **Characteristics**:
– Focus on what to achieve rather than how to achieve it.
– Often used in database queries and configuration management.
## Low-Level Languages (LLLs)
Low-Level Languages are programming languages that provide little or no abstraction from a computer’s instruction set architecture. These languages are closer to the hardware, providing more control over the system at the cost of complexity and lack of portability.
### 1. **Assembly Language**
– **Definition**: A symbolic representation of a computer’s machine code, which is specific to a particular CPU architecture.
– **Examples**: x86 Assembly, ARM Assembly.
– **Characteristics**:
– Uses mnemonic codes and labels to represent machine-level instructions.
– Requires detailed knowledge of hardware architecture.
– Faster and more efficient execution but difficult to learn and use.
### 2. **Machine Language**
– **Definition**: The lowest-level programming language, consisting of binary code (0s and 1s) that is directly executed by the CPU.
– **Characteristics**:
– Directly executed by the hardware without translation.
– Highly efficient but extremely challenging to program and debug.
– Each instruction corresponds to a specific operation in the CPU.
## Key Differences Between HLLs and LLLs
1. **Abstraction Level**:
– HLLs provide a high level of abstraction from hardware details, making them more human-readable and easier to program.
– LLLs provide minimal abstraction and are closely tied to hardware architecture.
2. **Portability**:
– HLLs are generally portable across different systems, as they are often translated into machine code by compilers or interpreted by interpreters.
– LLLs are not portable, as they are specific to a particular type of hardware.