Program Construction Flashcards
Assembly Code
a low-level programming language designed for a specific type of processor that can be converted to machine code using an assembler
High-Level Language
a programming language designed to simplify computer programs, is high-level because it is several steps removed from the actual code run on the CPU
Intermediate Code
used as an intermediary when translating source code into machine code
Lexeme
character sequence forming a specific instance of a token, such as num
Linker
combines pre-compiled modules of code, such as standard libraries, and your program into a single executable file
Loader
executes at runtime, part of the OS, checks there is enough memory for the program and allocates RAM
Low Level Language
a programming language that contains basic instructions recognised by a CPU, such as assembly code and machine code
Machine Code
code that the computer can understand, made up of 1s and 0s
Mnemonics
short code used in assembly language, chosen to remind the programmer of the program instruction it represents
Object Code
code that is executed
Source Code
code that you type
Translator
tool that translates source code into object code.
Assembler
a computer program that will take the mnemonics used in assembly language and convert them into machine code so they can be processed by the computer. This is done by converting one word assembly instructions into opcode, and allocating memory to variables, often resulting in an operand
Compiler
converts the whole program into a single executable program in one go
Interpreter
takes code written in high-level language and translates it into machine code. It translates everything one line at a time
Lexical Analysis
translates code into a series of tokens, removing any white space, indentation and comments
Symbol Table Construction
created to store variables, comments and non key-words, involves simple error checking
Syntax Analysis
breaks up strings into statements, which are parsed using syntax or BNF definitions; information on data types and scope of variables is added to the symbol table and errors are reported
Semantic Analysis
type checking occurs and checks all variables have been declared
Code Generation
produces an object code version of the program, producing several instructions for high-level instruction; variables and constants are given symbolic addresses and immediate byte code is generated
Optimisation
optimises the program for the processor that it is run on, either by improve processing speed, reducing number of instructions or reducing memory needed (only on compilers)
Parsing
where strings are broken up into statements then checked against he rules of the language
Low Level Language
a programming language that contains basic instructions recognised by a CPU, such as assembly code and machine code
Reverse Engineering
involves extracting design information from code
Type Checking
verifies that the types of values and expressions in a program are consistent and compatible
Strongly Typed Languages
a language with firm restrictions imposed on data types and values
Weakly Typed Languages
a language without firm restrictions imposed on data types and values
Virtual Machine
computer system where software on one computer is used to emulate the functionality of another computer, for example, emulating Windows XP on Windows 10