Overview
Different languages have different purposes, so it makes sense to talk about different kinds, or types, of languages. Some types are:- Machine languages — interpreted directly in hardware
- Assembly languages — thin wrappers over a corresponding machine language
- High-level languages — anything machine-independent
- System languages — designed for writing low-level tasks, like memory and process management
- Scripting languages — generally extremely high-level and powerful
- Domain-specific languages — used in highly special-purpose areas only
- Visual languages — non-text based
- Esoteric languages — not really intended to be used
Other types people have identified: Toy, Educational, Very High-Level, Compiled, Interpreted, Free-Form, Curly Brace, Applicative, Von Neumann, Expression-Oriented, Persistent, Concurrent, Glue, Intermediate, Quantum, Hybrid.
Machine Code
Most computers work by executing stored programs in a fetch-execute cycle. Machine code generally features- Registers to store values and intermediate results
- Very low-level machine instructions (
add
,sub
,div
,sqrt
) - Labels and conditional jumps to express control flow
- A lack of memory management support — programmers do that themselves
Assembly Language
An assembly language is basically just a simplistic encoding of machine code into something more readable. It does add labeled storage locations and jump targets and subroutine starting addresses, but not much more.High-Level Languages
A high-level language gets away from all the constraints of a particular machine. HLLs have features such as:- Names for almost everything: variables, types, subroutines, constants, modules
- Complex expressions (e.g.
2 * (y^5) >= 88 && sqrt(4.8) / 2 % 3 == 9
) - Control structures (conditionals, switches, loops)
- Composite types (arrays, structs)
- Type declarations
- Type checking
- Easy ways to manage global, local and heap storage
- Subroutines with their own private scope
- Abstract data types, modules, packages, classes
- Exceptions
System Languages
System programming languages differ from application programming languages in that they are more concerned with managing a computer system rather than solving general problems in health care, game playing, or finance. System languages deal with:- Memory management
- Process management
- Data transfer
- Caches
- Device drivers
- Operating systems
0 comments:
Post a Comment