2.5 Translators and Facilities of Languages COMPLETE Flashcards
What are assemblers responsible for?
Converting low-level assembly language into machine code.
How do assemblers have a one to one relationship?
Each line of assembly code is converted or looked up by the assembler and translates directly into one line of binary.
Why are assemblers processor specific?
Each CPU has a unique set of instructions for itself, which won’t work on other CPU’s
Define translator
Any program which converts source code (code written in a programming language) into the machine code (binary).
What are compilers and interpreters responsible for?
Converting high-level languages into binary.
How do compilers and interpreters have a one to many relationship?
Each single line of high level source code written by a programmer translates into many lines of binary.
How do interpreters translate a high level language?
They take one line of high language program code and convert it directly into binary and then run it
Why are interpreters useful when debugging a program?
Because they will stop at the first line which contains an error.
What is a disadvantage of interpreters debugging a program?
The interpreter will require access to the whole source code each time it needs to translate it.
How are interpreters debugging a program inefficient?
It’s a security issue, the code can be stolen.
The code executes quite slowly, especially for large programs.
How do compilers translate a high level language?
They take the entire program and converts it into object code which can be quite slow.
Why can a compiler be better than an interpreter?
The compiled object code will run a lot faster than an interpreted version.
Why can an interpreter be better than a compiler?
If the program needs to be updated now, the original source code would have to be changed and a new version compiled and distributed.
What is an integrated development environment (IDE)?
A program which provides resources and tools with high level languages.
What are some included tools?
Multi-window text editing.
Run Time Environment.
Built-in translator.
Integrated debugger.
Why do most professional programmers use more complex IDE’s?
Because they provide a whole host of extra features and resources to help them complete their complex programs faster.
What is a text editor?
A text area used for programmers to enter code directly into the IDE.
It contains:
Syntax highlighting.
Autocomplete code.
Self-indentation support.
What are error diagnostics?
A feature which reports errors (mainly syntax) in the code and potential problems along with where they’re found and often suggestion on who to fix.
What are runtime environments?
Software to support the execution and running of programs.
They allow developer to run their code during development in order to check for logical error.
What is auto-documentation?
A feature which tracks variables declared by the programmer in order to produce self – documentation.
It helps with:
Program maintenance.
Debugging.
Support.
What is high-level language?
A programming language that uses key words such as PRINT or IF and it has a set of grammar rules (syntax) making it close to English.
E.g. python, java or C++
What is assembly language?
A low level language written in mnemonics that closely reflects CPU operations used for device drivers.
What is a driver?
It tells a specific hard drive what to do and is used when fast execution is required or there is limited memory / file size.
Why does the high level language need to translated into binary?
Because the only thing computers understand is binary as the 1’s and 0’s represent on and off for each instruction.
Why might someone compile their code?
If they made a new program worth millions and wanted to sell it to people, they could compile the code and then send them it in binary so the people can’t copy your source code.
What is a disadvantage of compiling?
If there are errors in the source code, you will have to fix it and compile the code again which takes time.
Define a program
Instructions which tell the computer what to do to find a solution to a problem.
Which languages are hardware specific and not portable (needs to be modified to run on another computer?
Machine and assembly.
Why might high-level languages need to be modified?
Because they can’t run on different OS.
Instructions for computers are written in programming languages that need to be translated into what before the computer can understand them?
Machine code
Is machine language a high level or low level language?
Low level
Is assembly language a high level or low level language?
Low level
Processors only understand instructions written in…
1s and 0s
At the processing level, what form are computer programs in?
Millions of 1s and 0s known as machine code or machine language