- Instruction set: Basic operations like adding one or seeing if the number is a prime number.
- Program: Collection of instructions necessary to solve the problem.
- Low level languages: one-to-one correspondence from language to specific macine instructions. The programmer still needs to know the instruction set of the computer, aka not portable.
- Assembly Languages: Allows programmer to work with machine on a higher level using symbolic names in stead of binary (one to one).
- Assembler: Translates assembly-language program from from its symbolic language to specific machine instructions.
- "Higher" level languages: Opened up possibility for more complex programs.
- FORTRAN (FORmulaTRANslation): First language. No concern for architecture, far from the instruction set of the computer. Programs could be machine independent.
- Compiler: Program to translate high-level language to someting the PC can understand
- Compiling Process (C):
a). File to compile starts off as an "example.c" file. Known as the source program.
b). Initiation of compilation by command, for example using the GNC C compiler "gcc test.c".
c). Compiler checks syntax and semantics (undefined variables). If found, cancels compile.
d). Translates to "lower" form, meaning translates statements to statements in the assembly language needed to perform the identical task.
e). Assembler used to translate assembly language code to a program. Usually initiated automagicly.
f). Program is in binary form, known as object-code.
- Linking Process:
a). System programs used from the program library are searched and linked.
b). Objects like printf.obj are connected.
c). Final linked file is created as an executable
Integrated Development Environment: used to edit, compile, debug run and build
Language interpreters: Programs are not compiled but interpreted. Code is analized and executed at the same time. Much slower (JAVA, PYTON).