Layers of Representation of Machine Structures
Layers of representation (high to low level)
- High-level language program
- high-level language - a programming language that uses English and mathematical symbols in its instructions (e.g. C)
- High-level programming languages are abstractions to lower-level programming languages
- compiler - turns high-level language problem into an assembly language program
- Assembly language program
- assembly language - a low-level programming language for a computer in which there is a strong correspondence between the language and the architecture's machine code instructions (e.g. MIPS, x86, 32b ARM)
- Assembly languages are abstractions of machine languages
- Assembly code is human-readable version of computer's native machine code
- There are different assembly languages for different CPUs following different ISAs (each assembly language is tied to a particular ISA)
- assembler - turns assembly language program into machine language program
- Machine Language Program (MIPS)
- machine language (machine code) - a low-level programming language that consists of bits (0s and 1s) and is the only language that is directly understood by the computer
- Machine interpretation
- Hardware Architecture Description (e.g. block diagrams)
- hardware architecture - refers to the identification of a system's physical components and their interrelationships
- Architecture implementation
- Logic circuit description (circuit schematic diagrams)
High-level vs. low-level programming languages
- Low-level languages
- In a low-level language, the programmer is most aware of how the particular computer that is being used works
- The programmer has more control over the precise way the computer carries out a computation
- Low-level languages are best for tasks in which knowledge of hardware is part of the problem itself (e.g. operating systems, compilers)
- Low-level language generally refers to assembly language or machine code
- Low-level languages can convert to machine code without a compiler or interpreter
- High-level languages
- In a high-level language, the programmer works at a higher level of abstraction
- The programmer needs to know less about how the computer actually performs tasks
- The programmer focuses more about how the problem is being solved
- High-level languages are best for writing application programs (e.g. word processor, web browser, etc.)
- Ex. Java, Python, Go, Ruby
Other helpful articles
- Levels of Programming Languages: https://thebittheories.com/levels-of-programming-languages-b6a38a68c0f2
Comments
Post a Comment