If someone could give me a definition in terms of SDD HSC course, the differences, an example for the following. I would be forever grateful:
(remember i did post all that shit about error checking techniques)
-Compiled code
-Object code
-Decompiled code
-Machine code
-Source code
-Reverse engineering
-Imperative code
-Declarative code
-Uncompiled code
-Decompilation
-Compilation
-Programming languages
-Assembler code
Compiled Code, Machine Code, Object Code (there all synonyms and they are all exactly the same
) - binary instructions that can be executed by the CPU. They can not be ported to different platforms
Decompiled Code - Code that was machine code and has now been converted back into assembler or a high level language. (ie. human readable code). Decompiled code is usually formatted badly and harder to read then original source code. It doesn't contain comments.
Source Code - Code in a high level language (such as Java or C) which can be easily read by a human. This is what developers write
Reverse Engineering - Working out what machine code does. This could be done by determining its algorithm or decompiling, but decompiling is not the only way to reverse engineer so make sure that you don't only mention that if you get asked about reverse engineering
Not sure about Imperative or declarative code, in the syllabus is says imperative languages are 3rd Gen languages. Perhaps someone else can post this.
Uncompiled code - Not sure where you got this from I never seen this one before, but it seems to be a misspelling of decompiled
Decompilation - the process of converting machine code into source code or assembler code.
Compilation - The process of converting source code to machine code, in one go. It has three stages: lexical analysis, syntactical analysis, and code generation. There is also an optional fourth step linking, which connects different files of machine code. Compilation creates machine code files that can then be distributed. You should be aware that interpretation is the same thing, but done line by line at runtime.
The order of compilation is lexical -> syntactical -> code generation.
Lexical Analysis - looks at every character and ensures it is a valid language elements. It creates a symbol table of variables and instructions. It removes comments. It allocates memory
Syntactical Analysis - checks the grammer of the high level language (think of it as using ebnf diagrams to check a statement). It generates the parse tree.
Code generation - converts the parse tree into machine code
Programming languages - languages that use sentences or phrases to describe a task performed by a computer.
Assembler Code - a lower level of language which uses mnemonics to represent each individual machine code instruction. It is harder to read then programming languages but allows for greater control.