Computer Program

This is what my Software Engineering program is about, understanding all levels of how a computer program works, from software program down to the machine code. Super interesting!

Layers of the Program

  • Application software
    • Written in high-level language
  • System software
    • Compiler: translates HLL code to machine code
    • Operating System: service code
      • Handling input/output
      • Managing memory and storage
      • Scheduling tasks & sharing resources
  • Hardware
    • Processor, memory, I/O controllers

Levels of Program Code

High-level language

  • Level of abstraction closer to problem domain
  • Provides for productivity and portability

A Compiler converts this high-level language into Assembly language.

Assembly language

  • Textual representation of instructions

An Assembler converts Assembly into Machine Language.

Hardware representation (Machine Language)

  • Binary digits (bits)
  • Encoded instructions and data