Computer Science Notes

Notes From CS Undergrad Courses FSU

This project is maintained by awa03

Program translation uses system translation in order to translate it to machine code.

  1. Loads onto memory (in a format -> code space + operation space)
  2. OS gives program a control, "launches process"
Name Process
sp Stack↓ ↑Dynamic Data/ Heap
gp Static Data
pc Text
Address 0 Resereved

If the stack and the Dynamic Data/Heap meet than we unfortunately have a segmentation fault

The Translation Process

The compiler depends on the programming language, the assembler depends on the chipset. It must be translated to meet the machine code of the chips type.

The linker finds functions, and other libraries. It "links" the library code into the program.

This eventually produces an executable. The loader must be invoked after to run the executable.

Compiling

Assembling

A symbol table is create. It is essentially a dictionary for the names and addresses. Any identifier created by the user and not the language is stored in here

The Object File

Linking

Loading

The loader copies the executables file from disk