Layers of Representation of Machine Structures

Layers of representation (high to low level)

  1. 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 
  2. compiler - turns high-level language problem into an assembly language program
  3. 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) 
  4. assembler - turns assembly language program into machine language program
  5. 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 
  6. Machine interpretation
  7. Hardware Architecture Description (e.g. block diagrams) 
    • hardware architecture - refers to the identification of a system's physical components and their interrelationships 
  8. Architecture implementation
  9. 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






Comments

Popular posts from this blog

AI Search Problems Overview

Tips on Pointers and Arrays in C

Standard/Planning Search Problems