System: You are ChatGPT, a large language model trained by OpenAI.
User: I will send you a body of text, I will then state what you do next.
User: 238 29 Classification of programming languages and translationINTRODUCTION Most programming is now done using high-level programming languages. In this chapter we will look at how programming languages have developed over time, in particular looking at the main types of programming languages and the different methods (or paradigms) of programming. Linked with this is the way in which the code that you write as a programmer is converted into 0s and 1s so that it can be understood and processed by the processor.SPECIFICATION COVERAGE 3.6.2 Classiﬁ  cation of programming languages3.6.3 Types of translator LEARNING OBJECTIVES In this chapter you will learn: •how programming can be performed in machine code, assemblylanguage and high-level languages •that there are different methods of programming known asparadigms •how interpreters and compilers are used to turn programming codeintomachine code (0s and 1s) •what bytecode is.
 ●Types of programming languagesAlthough computers as we know them have only been around since the mid-1940s they have changed beyond all recognition in that short timespan. Programming the early computers was a very tedious business asprograms were entered as a sequence of switch settings. Each switch waseither on or off so by combining enough switches the programmer couldrepresent different things.TYPES OF PROGRAMMING LANGUAGES239Thankfully, programming computers has become a much simpler process, though the ever-increasing complexity of the computers themselves brings its own problems.As computers have developed then so have the programming languages  that can be used on them. There are three main types of languages: ●Machine code●Assembly language ●High-level languageMachine code The processor of a computer can only work with binary digits (bits). This means that all the instructions given to a computer must, ultimately, be a pattern of 0s and 1s. Programs written in this format are said to be written in machine code . Having to write everything down as a sequence of 0s and 1s means t hat the programs are going to be very long-winded, and because everything is entered as bits there is a high risk of making a mistake. One way to make these bits easier to understand is to show a sequence of bits as either a decimal or hexadecimal number.To compound the problem further, it is also going to be very difficult to track down any errors or bugs that exist in the code. One final problem is that because machine code is written for a specific processor, it is unlikely to be very portable. This means that it will only work on a computer with the same type of processor as it was written for. Nevertheless because you are writing instructions that can be used directly by the processor, they will be executed very quickly and the processor will do exactly what you tell it to do. Assembly languageThe need to make programs more programmer-friendly led to the development of assembly languages . Rather than using sequences of 0s and 1 s, an assembly language allows programmers to write code using words. There is a very strong connection between machine code and assembly language. This is because assembly language is basically machine code with words. The number of words that can be used in an assembly language is generally small. Each of these commands translates directly into one command in machine code. This is called a one-to-one relationship.
 Most, but not all, assembly codes use a system of abbreviated words called mnemonics . In the small section of assembly code below, the mnemonic LDR stands for Load Register and STR means Store Register .  ADD and SUB  should be rather more obvious. In this simplified example all the numbers following each mnemonic refer to memory addresses – the place in memory where numbers are written to or read from. LDR 20ADD 43STR 20 SUB 41STR 45These two are known as low-level languages KEYWORD Machine code: the lowest level of code made up of 0s and 1s. KEYWORDS Assembly language: a way of progr amming that involves writing mnemonics. Mnemonics: short codes that are used as instructions when programming, e.g. LDR, ADD.29 Classification of programming languages and translation 240This code does the following: ●loads the accumulator with the contents of address 20●adds the value held in memory location 43 to the value held in theacc umulator ●stores the contents of the accumulator to address 20●subtracts the value held in memory location 41 from the value held in the accumulator ●stores the contents of the accumulator to address 45.Al though assembly language uses words, some of which you might recognise, the code is not particularly easy to understand. Before any code written in assembly language can be executed it has to be converted into machine code. This is because the processor can only understand binary digits (0s and 1s) – the words are meaningless to the computer, so the words must be converted into these binary digits. This conversion process is carried out by an assembler. The assembler will be able to identify some, but not all, of the errors that are likely to be hidden somewhere in the code. The code that the programmer creates is known as the source code . The assembler  takes this source code and translates it into a machine code version that is known as the object code . As with  machine code, assembly languages are based on one processor so they are generally not very portable.
 Assembly language is still used in certain situations today as it has a number of advantages over high-level languages: ●Programs are executed quickly as a compiler does not optimise thema chine code that it produces as effectively as a programmer who codesin an assembly language that maps directly to machine code.
 ●Program code is relatively compact for the same reason. ●Assembly language allows direct manipulation of the registers on thepr ocessor, giving high levels of control.
 Its main uses are where direct manipulation of hardware is required, for example in embedded systems where a low level of interaction is required with hardware. The processors in these systems may be relatively slow and have limited memory in which case the efficiency of an assembly language is needed. This may mean that very few commands are needed to operate the device. Therefore, these instructions can be programmed directly to the processor using an assembly language. Real-time applications may also use assembly language as they need to respond very quickly to inputs. This is particularly relevant where it is an embedded system. Assembly language does have other uses where only low-level coding is required. For example, some device drivers are written in assembly language, particularly for customised hardware and software. KEYWORDSource code: programming code that has not yet been compiled  into an executable file.
 Assembler: a program that transl ates a program written in assembly language into machine code.
 Object code: compiled code that can be  run as an executable on any computer.TYPES OF PROGRAMMING LANGUAGES 241High-level languagesMachine code and assembly languages are known collectively as low-level languages . The increasingly complex demands made on computers meant that writing programs in assembly code was too slow and cumbersome. High-level languages  were developed to overcome this problem.
 Whereas low-level languages are machine-oriented, high-level languages are  problem-oriented. This means that the commands and the way the program is structured are based on what the program will have to do rather than the components of the computer it will be used with. This means that a program written in a high-level language will be portable. It can be written on one type of computer and then executed on other types of computer. There are many different high-level languages available, each being written to cope with the demands of a specific type of problem. For example, some high-level languages are specifically designed for scientific applications, others for manipulating databases, whilst others are used to create web pages. The language the programmer chooses will depend to a large extent on the nature of the problem they are trying to solve. High-level languages are often classified into three groups based on the programming paradigm we saw in Chapter 5. A paradigm is a concept for the way something works: ●Imperative languages: Al so known as procedural languages, these workby typing in lists of instructions (known as subroutines or procedures) that the computer has to follow. Every time the program is run, it followsthe same set of instructions. ●Object-oriented languages: Th ese work by creating objects where theinstr uctions and data required to run the program are contained withina single object. Objects can be further grouped into classes.
 ●Declarative languages: Th ese work by describing what the program should accomplish rather than how it should accomplish it. One typeof declarative language is logic programming, which is used widely inthe fields of artificial intelligence and works by programming in factsand rules, rather than instructions. The program then uses these factsand rules to interrogate the data and provide results. Another type ofdeclarative language is a functional language , which works by treating pro cedures more like mathematical functions. The building blocks of theprogram therefore are functions rather than lists of instructions. The main characteristics of a high-level language are: ●It is easier for a programmer to identify what a command does as thekeywo rds are more like natural language.
 ●Like assembly languages, high-level languages need to be translated.
 ●Unlike assembly code, one command in a high-level language might berepr esented by a whole sequence of machine code instructions. This is called a one-to-many relationship. ●They are portable.
 ●They make use of a wide variety of program structures to make thepro cess of program writing more straightforward. As a result they arealso easier to maintain.KEYWORDS Imperative language: a lang uage based on giving the computer commands or procedures to follow.
 Object-oriented language: a progr amming paradigm that encapsulates instructions and data together into objects.
 Declarative languages: langua ges that declare of specify what properties a result should have, e.g. results will be based on functions.
 Functional language: a progr amming paradigm that uses mathematical functions.KEYWORDS Low-level language: machine code and as sembly language.
 High-level language: a prog ramming language that allows programs to be written using English keywords and that is platform independent.29 Classification of programming languages and translation242●Translating high-level languages One of the main features of high-level languages is that they are programmer-friendly. Unfortunately this means the computer will not understand any ofthe high-level language source code, so it will have to be translated in someway. This process is called translation and in order to carry it out a specialpiece of systems software called a translator  is needed. The asembler is the translator used for low-level languages and there are two types of translator for high-level languages: an interpreter and acompiler.
 InterpreterAn interpreter works by reading a statement of the source code and immediately performing the required action. It may do this by interpreting the syntax of each statement, or by calling predefined routines. In somecases, the source code is translated into an intermediate format before itis executed. Interpreters may examine every statement, which can reduceefficiency. For example, in an iterative statement, the interpreter will readthe same statement once for each iteration.
 Typically an interpreter only converts what needs to be translated.
 For example when the line of code: If Age<17 Then Output = "Cannot drive a car"needs to be translated, only the first section of the code If Age<17 Thenis translated and executed. The second part of the code is only translated if the condition is true. This saves time as only the code that is needed isconverted. Some interpreters translate an entire line of code before theyexecute it. These are known as line interpreters.
 Benefits of using an interpreter: ●You do not need to compile the whole program in order to run sectionsof code. You can execute the code one statement at a time. ●As the code is translated each time it is executed, program code can be run on processors with different instruction sets.
 ●Because of this, an interpreter is most likely to be used whilst a programis be ing developed. Drawbacks of using an interpreter: ●No matter how many times a section of code is revisited in a program itwill need translating every time. This means that the overall time needed to execute a program can be very long.
 ●The source code can only be translated and therefore executed on a computer that has the same interpreter installed. ●The source code must be distributed to users, whereas with a compiledpro gram, only the executable code is needed.
 CompilerA compiler  converts the whole source code into object code before the  program can be executed. The good thing about this is that once you have carried out this process you will have some object code that can be executed immediately every time, so the execution time will be quick. This is ideal once you have sorted out all the bugs in your program.KEYWORD Compiler: a program that translates a high-level language into machine code by translating all of the code.KEYWORDSTranslator: the general name for any program that translates code from one language to another, for example translating source code into machine code.
 Interpreter: a program for translating a high-level language by reading each statement in the  source code and immediately performing the action.BYTECODE243Benefits of using a compiler: ●Once the source code has been compiled you no longer need thecomp iler or the source code.
 ●If you want to pass your object code on to someone else to use they willfind it difficult to work out what the original source code was. This process of working out what the source code was is known as reverse engineering.
 Drawbacks of using a compiler: ●Because the whole program has to be converted from source code toobj ect code every time you make even the slightest alteration to yourcode, it can take a long time to debug. ●The object code will only run on a computer that has the sameplat form.
 ●BytecodeSome programming languages use bytecode , which is an instruction set that can be executed using a virtual machine. The virtual machine can emulate the architecture of a computer, meaning that the source codewritten using bytecode can be translated into a format that can be executedon any platform.
 For example, Java bytecode is compiled using either one or two bytes todefine the instruction and then any number of bytes to pass the parameters.This code can then be executed on any computer that is running the JavaVirtual Machine regardless of what type of processor or operating system isbeing used. Microsoft Common Intermediate Language (CIL) works on a similar basiswhere, as the name suggests, rather than translating source code intomachine code that is specific to a platform, the source code is translatedinto an intermediate code. This intermediate code can then be executed bythe virtual machine. Practice questions can be found at the end of the section on page 264.
 KEYWORDBytecode: an instruction set usedfor programming that can be executed on any computer using a virtual machine.29 Classification of programming languages and translation 244TASKS1 Under what circumstances would you compile a high-level computer  program?2 Explain the benefits of using a high-level language compared to an  assembly language.3 Explain the differences between a compiler and an interpreter.
 4 Why are machine code and assembly languages said to be  machine-oriented?5 Explain why there are so many different high-level languages.
 6 Explain why some programmers still write programs in an assembly  language.7 Explain why assembly language and machine code are said to have a  ‘one-to-one’ relationship.8 Why must assembly language programs be assembled before they  can be executed?STUDY / RESEARCH TASKS1 What is meant by the term artiﬁcial intelligence and what type of programming language might you use if working in this area?2 What features would you expect to ﬁnd in a programming language that was designed to work in a control environment?3 There are dozens of programming languages available. Select one particular language, e.g. Java, C#, Python or Visual Basic, and explain why the language was originally developed.KEY POINTS•There are three main typesof pro gramming languages: machine code, assemblylanguage and high-levellanguages.
 •Machine code and assemblylanguage are known as low- level languages.
 •Machine code uses 0s and 1s.
 •Assembly languages usemnemonics.
 •High-level languages usenatural language keywords. •Assembly language needs tobe co nverted to machine codeusing an assembler. •High-level languages needto be converted to machine code using an interpreter or acompiler.
 •There are three mainprogramming paradigms: imperative (procedural),declarative and object-oriented.
 •Bytecode is an instructionset that can be implemented using a virtual machineand is therefore platform-independent.
User: Make the following text more clear.
Format it properly.
Do NOT change the meaning of the words or methods used to obtain the answer or anything like that.
This is for AQA A(S)-Level Computer Science. I repeat, do not alter the words as it could have an effect on the marks acquired from the marking scheme.
However, remove any redundant information or USELESS examples that are not needed for a student to know, or simplify unnecessary information (if it has a definition or keywords, it is not unnecessary).
If you can, use different values for the examples.
For things that will not score a mark or are generally useless, for example, "we will cover" or a fun fact, change the wording. This is for AS Level, do not include information about topics that are ONLY A-Level Content (if it says it is)
Link the 'sections' of your answer to the following spec-points (by title):
e.g. "**Topic** (Spec Points: a.b.c. Whatever)
3.6.3 Types of program translator
Content
Additional information
Understand the role of each of the following:
assembler
compiler
interpreter.
Explain the differences between compilation and interpretation. Describe situations in which each would be appropriate.
Explain why an intermediate language such as bytecode is produced as the final output by some compilers and how it is subsequently used.
Understand the difference between source and object (executable) code.

3.6.2 Classification of programming langs
Content
Additional information
Show awareness of the development of types of programming languages and their classification into low-and high-level languages.
Know that low-level languages are considered to be:
machine-code
assembly language.
Know that high-level languages include imperative high level-language.
Describe machine-code language and assembly language.
Understand the advantages and disadvantages of machine-code and assembly language programming compared with high-level language programming.
Explain the term ‘imperative high-level language’ and its relationship to low-level languages.


You MUST make sure they are ALL met. Everything it says on there you should meet.
SOMETIMES the specification does not always mention everything. If you encounter something from the body of text that is not necessarily mentioned on the specification point, still try to include it but condense it. Do not make the notes unecessary or useless.

*If* the exam question has an image or any exam question has an image that may potentially increase the understanding and reliability of the notes, just link the image.

I already provided the available exam questions you MAY choose to add on to the notes, with 'des' explaining what it's about, and 'fil' meaning the Question ID.
The content, too. Delivered in the form 'fil', JSON
Ignore exam questions that contain 'Skeleton Program'. Do not only put like 2 exam questions, try to put more!
For the exam questions, in the original text, there is a label named 'Tasks'. Those (usually) six questions are NOT the exa questions. The exam questions are the ones that were given in JSON form to you, do NOT do the 'Tasks'. Do the exam questions that contain HTML in JSON!

In the markscheme, a ';' typically means that a mark was gained.
When mentioning exam questions, you *must* answer them, according to the markscheme, scoring full marks. No 'do it yourself'.

Include ALL definitions (KEYWORDS) from the original text I sent in your notes. When I mean all, I mean ALL.

If necessary for scoring marks, try to embed the exam-questions into your notes, sometimes without even referencing the fact that it is an exam question. For example, if an exam question is a definition or benefits, use the answer in your notes.
Remember. DO NOT ADD USELESS STUFF. Your task is to create the MOST EFFICIENT (SHORTEST [for an explanation] BUT STILL SCORES ALL MARKS) possible notes resource, which will score all marks easily, so its wording has to be mostly like that of the exam questions. By any means, if necessary, please include examples and exam questions! At the end you can have a 'try these exam questions' thing.
At the end of your answer, you will give a 'breakdown'/'summary' of each thing you covered which will tell the most concise FULLY MARK-SCORING explanation possible.

In summary, your answer must:

* Be efficient, useful
* For topics in an exam that may require some form of mathematical working, always show an example of a question.
* Be clear – provide clear, step-by-step examples/instructions when needed.
* Follow the entire specification and everything it says.
* Link your section to a spec point. E.g. **Topic** (Spec Points: a.b.c Whatever)
* Score ALL marks.
* Include ALL exam questions S at the end (except ones that contain 'Skeleton Program'), with the same wording as the original ones in the JSONs sent to you – and INCLUDE THE QUESTION CONTENT, AND THE ANSWERS/MARK SCHEME. Only the ones that I provided to you, include Question IDs.
* Remove redundant, unnecessary and useless information that would not be brought up in an exam answer.
* Be helpful to the reader
* Provide the full notes, covering ALL spec-points (and showing the spec-points covered in each section).
* Include ALL definitions (KEYWORDS, usually represented explicitly and specifically in the original text as Keyword: Definition), do not change the wording (unless that definition is an exam question). MAKE ALL THE DEFINITIONS FULL (yet consice, as they can sometimes even be 2 marks). Incorporate the definitons into the notes.
* Include a seperate section named 'Definitions' that covers the keywords and their simplest definition that scores all marks. These are (usually) found in the original text.
* Include a summary at the end (after definitions) that goes through everything you need to score all marks.

At the end of the formatted text, after everything is done, fill out the JSON:
Remove the type clarification.
{
"chapter": (int),
"page": (int),
"chapter_name": (str),
"topics": (list)
}

User: And these are the available exam questions, with 'des' explaining what it's about, and 'fil' meaning the Question ID.
{'S6$.3': [{'index1': '|E.B$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.3 | L6$.3', 'index5': '|', 'index6': 'QS09202', 'qid': 'QS09202', 'des': 'Machine code and assemblers', 'index7': '', 'marks': '2 marks', 'time': '2', 'ttext': 'Low-level languages', 'fld': 'AA_COM', 'fil': 'QS09202', 'year': 2009, 'res': '', 'flag1': 0}, {'index1': '|E.C$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.3 | L6$.3', 'index5': '|', 'index6': 'QS00A206', 'qid': 'QS00A206', 'des': 'Compiler vs assembler', 'index7': '', 'marks': '4 marks', 'time': '6', 'ttext': 'Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS00A206', 'year': 0, 'res': '', 'flag1': 0}, {'index1': '|E.B$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.3', 'index5': '|', 'index6': 'QS18S211p02', 'qid': 'QS18S211p02', 'des': 'Execute bytecode', 'index7': '', 'marks': '2 marks', 'time': '2', 'ttext': 'Low-level languages', 'fld': 'AA_COM', 'fil': 'QS18S211P02', 'year': 2018, 'res': '', 'flag1': 1}, {'index1': '|E.C$|', 'index2': '|2$|', 'index3': '2$', 'index4': 'S6$.3', 'index5': '|', 'index6': 'QS19S210p03', 'qid': 'QS19S210p03', 'des': 'Differences between assembler and compiler', 'index7': '', 'marks': '2 marks', 'time': '2', 'ttext': 'Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS19S210P03', 'year': 2019, 'res': '', 'flag1': 1}, {'index1': '|E.C$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.3 | L6$.3', 'index5': '|', 'index6': 'QW03109', 'qid': 'QW03109', 'des': 'Compilers and interpreters', 'index7': '', 'marks': '5 marks', 'time': '9', 'ttext': 'Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QW03109', 'year': 2003, 'res': '', 'flag1': 0}, {'index1': '|E.C$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.3 | L6$.3', 'index5': '|', 'index6': 'QS00N404', 'qid': 'QS00N404', 'des': 'Compiler vs interpreter', 'index7': '', 'marks': '3 marks', 'time': '5', 'ttext': 'Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS00N404', 'year': 0, 'res': '', 'flag1': 0}, {'index1': '|E.C$|', 'index2': '|2$|', 'index3': '2$', 'index4': 'S6$.3', 'index5': '|', 'index6': 'QS17202', 'qid': 'QS17202', 'des': 'Interpreter; compiler', 'index7': '', 'marks': '2 marks', 'time': '2', 'ttext': 'Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS17202', 'year': 2017, 'res': '', 'flag1': 0}, {'index1': '|D|E.C$|', 'index2': '|2$|', 'index3': '2$', 'index4': 'S6$.3', 'index5': '|', 'index6': 'Q22S206p3', 'qid': 'Q22S206p3', 'des': 'Explain how intermediate code is used; bytecode; compiler; translation', 'index7': '', 'marks': '2 marks', 'time': '2', 'ttext': 'Programming | Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'Q22S206P3', 'year': 2023, 'res': '', 'flag1': None}, {'index1': '|E.B$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.3 | S7$.3.e | L6$.3 | L7$.3.e', 'index5': '|', 'index6': 'QW09203', 'qid': 'QW09203', 'des': 'Assembly lang; machine code', 'index7': '', 'marks': '5 marks', 'time': '5', 'ttext': 'Low-level languages', 'fld': 'AA_COM', 'fil': 'QW09203', 'year': 2009, 'res': '', 'flag1': 0}, {'index1': '|E.C$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.3', 'index5': '|', 'index6': 'QS18S211p01', 'qid': 'QS18S211p01', 'des': 'Compiler; bytecode', 'index7': '', 'marks': '1 marks', 'time': '1', 'ttext': 'Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS18S211P01', 'year': 2018, 'res': '', 'flag1': 1}], 'S6$.2': [{'index1': '|D.A$|E.A$|E.B$|', 'index2': '|2$|', 'index3': '3$', 'index4': 'S6$.2 | S6$.3 | L6$.2 | L6$.3', 'index5': '|', 'index6': 'QS00N106', 'qid': 'QS00N106', 'des': 'High/low level languages', 'index7': '', 'marks': '6 marks', 'time': '9', 'ttext': 'Programming concepts | Classification | Low-level languages', 'fld': 'AA_COM', 'fil': 'QS00N106', 'year': 0, 'res': '', 'flag1': 0}, {'index1': '|E.B$|', 'index2': '|2$|', 'index3': '2$', 'index4': 'S6$.2', 'index5': '|', 'index6': 'QS19S210p02', 'qid': 'QS19S210p02', 'des': 'Differences between machine code and assembly languages; low-level languages', 'index7': '', 'marks': '2 marks', 'time': '2', 'ttext': 'Low-level languages', 'fld': 'AA_COM', 'fil': 'QS19S210P02', 'year': 2019, 'res': '', 'flag1': 1}, {'index1': '|E.A$|E.B$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.2 | S6$.3 | L6$.2 | L6$.3', 'index5': '|', 'index6': 'QW11207', 'qid': 'QW11207', 'des': 'Adv/ limitations of languages', 'index7': '', 'marks': '4 marks', 'time': '4', 'ttext': 'Classification | Low-level languages', 'fld': 'AA_COM', 'fil': 'QW11207', 'year': 2011, 'res': '', 'flag1': 0}, {'index1': '|E.B$|E.C$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.2 | S6$.3 | S7$.3.e | L6$.2 | L6$.3 | L7$.3.e', 'index5': '|', 'index6': 'QW06103', 'qid': 'QW06103', 'des': 'Assembly language/ machine code', 'index7': '', 'marks': '6 marks', 'time': '8', 'ttext': 'Low-level languages | Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QW06103', 'year': 2006, 'res': '', 'flag1': 0}, {'index1': '|E.A$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.2 | S7$.3.c | S7$.3.e | L6$.2 | L7$.3.c | L7$.3.e', 'index5': '|', 'index6': 'QS0847A', 'qid': 'QS0847A', 'des': 'Language generations', 'index7': '', 'marks': '3 marks', 'time': '4', 'ttext': 'Classification', 'fld': 'AA_COM', 'fil': 'QS0847A', 'year': 2008, 'res': '', 'flag1': 0}, {'index1': '|E.B$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.2 | S7$.3.c | S7$.3.e | L6$.2 | L7$.3.c | L7$.3.e', 'index5': '|', 'index6': 'QS11204', 'qid': 'QS11204', 'des': 'Machine level; opcode/operand', 'index7': '', 'marks': '5 marks', 'time': '5', 'ttext': 'Low-level languages', 'fld': 'AA_COM', 'fil': 'QS11204', 'year': 2011, 'res': '', 'flag1': 0}, {'index1': '|E.B$|E.C$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.2 | S6$.3 | L6$.2 | L6$.3', 'index5': '|', 'index6': 'QW10204', 'qid': 'QW10204', 'des': 'Benefits of interpreters/ compilers', 'index7': '', 'marks': '4 marks', 'time': '4', 'ttext': 'Low-level languages | Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QW10204', 'year': 2010, 'res': '', 'flag1': 0}, {'index1': '|E|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.2', 'index5': '|', 'index6': 'QS18S211p03', 'qid': 'QS18S211p03', 'des': 'Imperative high-level language definition; HLL', 'index7': '', 'marks': '2 marks', 'time': '2', 'ttext': 'Software', 'fld': 'AA_COM', 'fil': 'QS18S211P03', 'year': 2018, 'res': '', 'flag1': 1}, {'index1': '|E.A$|', 'index2': '|2$|', 'index3': '2$', 'index4': 'S6$.2', 'index5': '|', 'index6': 'QS17L25D', 'qid': 'QS17L25D', 'des': 'High-level; assembly; language', 'index7': '', 'marks': '4 marks', 'time': '6', 'ttext': 'Classification', 'fld': 'AA_COM', 'fil': 'QS17L25D', 'year': 2017, 'res': '', 'flag1': 1}, {'index1': '|E.A$|E.B$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.2 | L6$.2', 'index5': '|', 'index6': 'QS99N107', 'qid': 'QS99N107', 'des': 'Low/high level language; compilation', 'index7': '', 'marks': '6 marks', 'time': '9', 'ttext': 'Classification | Low-level languages', 'fld': 'AA_COM', 'fil': 'QS99N107', 'year': 0, 'res': '', 'flag1': 0}]}

User: These are the content of said exam questions, these are the ONLY exam questions, you will use these later, delivered in form 'fil', JSON: {'QS09202': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>Figures 1, 2 and 3</b> show three versions of the same program.</span></p>\r<p class="bottom">&nbsp;</p>\r<table class=MsoTableGrid cellspacing=0 cellpadding=4 style=\'margin-left:10.0pt;\'> \r\t<tr>  \r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Figure 1</b></p></td>\r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Figure 2</b></p></td> \r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Figure 3</b></p></td> \r\t</tr> \r\t<tr>  \r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box style=\'punctuation-wrap:simple;font-family:Courier New;text-autospace:none;vertical-align:   baseline\'>Total := 60 + 10;</p></td>\r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box style=\'punctuation-wrap:simple;font-family:Courier New;text-autospace:none;vertical-align:   baseline\'>LD&nbsp;&nbsp;&nbsp; #60</p></td> \r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box style=\'punctuation-wrap:simple;font-family:Courier New;text-autospace:none;vertical-align:   baseline\'>00101000&nbsp;&nbsp;&nbsp; 00111100</p></td>  \r\t</tr> \r\t<tr>  \r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box style=\'punctuation-wrap:simple;font-family:Courier New;text-autospace:none;vertical-align:   baseline\'>&nbsp;</p></td>\r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box style=\'punctuation-wrap:simple;font-family:Courier New;text-autospace:none;vertical-align:   baseline\'>ADD&nbsp;&nbsp;&nbsp;#10</p></td> \r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box style=\'punctuation-wrap:simple;font-family:Courier New;text-autospace:none;vertical-align:   baseline\'>00111000&nbsp;&nbsp;&nbsp; 00001010</p></td> \r\t</tr> \r\t<tr>  \r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box style=\'punctuation-wrap:simple;font-family:Courier New;text-autospace:none;vertical-align:   baseline\'>&nbsp;</p></td>\r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box style=\'punctuation-wrap:simple;font-family:Courier New;text-autospace:none;vertical-align:   baseline\'>ST&nbsp;&nbsp; Total</p></td> \r\t\t<td valign=top style=\'width:150.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box style=\'punctuation-wrap:simple;font-family:Courier New;text-autospace:none;vertical-align:   baseline\'>01100000&nbsp;&nbsp;&nbsp; 00101001</p></td>  \r\t</tr> \r</table>\r<p class="indent1">(a) &nbsp;&nbsp;&nbsp;&nbsp;What type of translator program would be used to convert <b>Figure 1&#x2019;s</b> program into <b>Figure 3&#x2019;s</b> program?</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b) &nbsp;&nbsp;&nbsp;&nbsp;What type of translator program would be used to convert <b>Figure 2&#x2019;s</b> program into <b>Figure 3&#x2019;s</b> program?</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="mark">(1)</p> \r<p class="mark">(Total 2 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp;</span> Compiler <br><b>R</b> Interpreter<br><b>A</b> Misspellings where meaning remains clear e.g. complier<br><b>R</b> More than one answer e.g. compiler or interpreter</p>\r<p class="levelms">1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(b) &nbsp;&nbsp;&nbsp;&nbsp;Assembler<br/><b>A</b> Misspellings where meaning remains clear<br/><b>R</b> More than one answer</p>\r<p class="levelms">1</p> \r<p class="mark">[2]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">The responses to this question were similar to those made on the same topic in January 2009.<br/> Most candidates were aware that an assembler is required to translate assembly code into machine code. Fewer candidates knew that a compiler translates a high level language statement into machine code. An interpreter will not produce machine code; it merely interprets and executes high level language statements.</span></p></h5>', 'notes': '', 'resources': ''}, 'QS00A206': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><i>Assemblers </i>and <i>compilers </i>are two kinds of program translators. Write <b>two </b>statements about each of them to distinguish one from the other. </p>  \r<p class="indent1new">An assembler</p>  \r<p class="indent1new answer-toggle">1. _____________________________________________________________________</p>  \r<p class="indent1new answer-toggle">_______________________________________________________________________</p>  \r<p class="indent1new answer-toggle">2. _____________________________________________________________________</p>  \r<p class="indent1new answer-toggle">_______________________________________________________________________</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">A compiler</p>  \r<p class="indent1new answer-toggle">1. _____________________________________________________________________</p>  \r<p class="indent1new answer-toggle">_______________________________________________________________________</p>  \r<p class="indent1new answer-toggle">2. _____________________________________________________________________</p>  \r<p class="indent1new answer-toggle">_______________________________________________________________________</p>  \r<p class="mark">(Total 4 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>Assembler:</b></p>  \r<p class="indent1new indentright m-t-0">To translate an assembly (low level) language routine or program;<br> One to one translation;<br> Assembler is m/c specific;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright"><b>Compiler:</b></p>  \r<p class="indent1new indentright m-t-0">To translate a HLL program;</p>  \r<p class="indent1new indentright m-t-0">One to many translation;</p>  \r<p class="indent1new indentright m-t-0">Has many options / stages;</p>  \r<p class="indent1new indentright m-t-0">Language specific;</p>  \r<p class="indent1new indentright"><i>For each, two statements <u>to distinguish</u> 1 mark each</i></p>  \r<p class="indent1new indentright m-t-0"><i>Max 4</i></p>\r<p class="mark">[4]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Even candidates who scored well overall confused assemblers with interpreters.</p></h5>', 'notes': '', 'resources': ''}, 'QS18S211P02': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Describe how bytecode programs are executed after the bytecode has been produced.</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="mark">(Total 2 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question indentright"><b>Marks are for AO1 (understanding)</b></p>\r\n<p class="indent1new indentright">A virtual machine; performs just in time compilation // translation; to convert the bytecode to object code and execute it;</p>\r\n<p class="indent1new indentright">//</p>\r\n<p class="indent1new indentright">A virtual machine; interprets bytecode an instruction at a time; and runs the necessary code / subroutine to carry out the command in the hardware’s instruction set;</p>\r\n<p class="indent1new indentright"><b>Max 2</b></p>\r\n<p class="indent1new indentright"><b>Max 1</b> if no concept of translation shown</p>\r\n<p class="indent1new indentright"><b>R.</b> Suggestion that anything other than the virtual machine carries out translation</p>\r\n<p class="mark">[2]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">A relatively large number of students did not attempt this question part. Identifying that a virtual machine is used was the most common mark point awarded. Where students attempted to describe the process – via just-in-time compilation or via interpretation – many failed to differentiate successfully between the process involving bytecode and the process involving high level source code.</p></h5>', 'notes': '', 'resources': ''}, 'QS19S210P03': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Assemblers and compilers are two different types of translator.</p>\r\n<p class="indent1new">Describe <b>one</b> similarity and <b>one</b> difference between the role of an assembler and the role of a compiler.</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="mark">(Total 2 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>Marks are for AO1 (understanding)</b></p>\r\n<p class="indent1new">Both convert source code into object code;</p>\r\n<p class="indent1new m-t-0">An assembler takes assembly code / (simple) mnemonics as input while a compiler takes complex instructions / HLL code;</p>\r\n<p class="mark">[2]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This question was quite well answered. The most common cause for a failure to gain marks was confusion between direction (e.g. an assembler converts assembly code to source code, or converts object code to assembly code).</p></h5>', 'notes': '', 'resources': ''}, 'QW03109': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">There are a large number of programming languages. System software such as <i>compilers,</i> <i>assemblers, interpreters </i>are used to translate programs into machine instructions.</p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; Explain the different ways in which a compiler and an interpreter operate.</p>  \r<p class="indent2new">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a compiler <span  "answer-toggle">_____________________________________________________</span></p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2new">(ii)&nbsp;&nbsp;&nbsp;&nbsp; an interpreter?<span  "answer-toggle"> __________________________________________________</span></p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; If both a compiler and an interpreter are available for a particular programming language, under what circumstances would it be preferable to use:</p>  \r<p class="indent2new">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a compiler;<span  "answer-toggle">____________________________________________________</span></p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2new">(ii)&nbsp;&nbsp;&nbsp;&nbsp; an interpreter;<span  "answer-toggle"> __________________________________________________</span></p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; In what way does an assembler differ from a compiler?</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(1)</p>  \r<p class="mark">(Total 5 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1a indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A compiler translates the <u>whole</u> source code;</p>  \r<p class="indent3new indentright m-t-0">Into object code; <b>A</b> machine code (instructions); <b>A</b> executable file;~</p>  \r<p class="indent3new indentright"><i>If implied that compiler executes then talked out</i></p>  \r<p class="levelms">Max 1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Interpreter translates line by line; as it executes/runs;</p>  \r<p class="indent3new indentright"><i>If object code created then talked out</i></p>  \r<p class="levelms">Max 1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1a indentright" >(b)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use compiler when execution should run as fast as possible;</p>  \r<p class="indent3new indentright m-t-0">When development is finished; when giving program to end user to run; to protect source code from end user interference;</p>  \r<p class="indent3new indentright m-t-0">To turn program without translator/compiler on computer;</p>  \r<p class="levelms">Max 1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Use interpreter during development time/testing/debugging/finding/correcting mistakes;</p>  \r<p class="indent3new indentright m-t-0">To support platform independence;</p>  \r<p class="indent3new indentright m-t-0"><i>(e.g. Java </i><i><span style=\'font-family:Symbol\'>®</span> bytecode, bytecode interpreted)</i></p>  \r<p class="levelms">Max 1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(c)&nbsp;&nbsp;&nbsp;&nbsp; Assembler translates assembly/low level program;</p>  \r<p class="indent2new indentright m-t-0">Compiler translates high level program;</p>  \r<p class="indent2new indentright m-t-0">Assembler maps 1:1; compiler maps 1:many;</p>  \r<p class="levelms">Max 1</p>  \r<p class="mark">[5]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This is not a new question. However, candidates provided very confused answers.</p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; A compiler translates a high level language program into object code. It does NOT execute it. An interpreter translates a line of code as it executes. It does NOT produce object code. Many candidates wrongly seemed to be under the impression that binary code is synonymous with machine code.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Some very weak answers were given such as ‘a compiler is used for large programs, an interpreter for small programs’ – sometimes the other way round! Creditworthy answers suggested the use of a compiler to protect source code or for distribution after development is completed and the use of an interpreter during program development while debugging.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; A significant number of candidates had no idea that an assembler translates assembly code programs. Many wrongly assigned it the job of linker/loader or even for reverse engineering.</p></h5>', 'notes': '', 'resources': ''}, 'QS00N404': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">A particular computer language is supplied with an interpreter and a compiler.</p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; Give <b>one</b> reason for using the interpreter during development.</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Give <b>two</b> reasons for using the compiler to translate the completed program.</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(2)</p>  \r<p class="mark">(Total 3 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; Can run just a part of the program so easier to find problems.</p>  \r<p class="indent2new indentright m-t-0">Do not have to keep re–compiling the whole program when correcting errors</p>  \r<p class="indent2new indentright"><i>Any 1 × 1</i></p>\r<p class="levelms">1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(b)&nbsp;&nbsp;&nbsp;&nbsp; Produces complete object code / executable version</p>  \r<p class="indent2new indentright m-t-0">No need to install language to run the program / needs less memory</p>  \r<p class="indent2new indentright m-t-0">Runs faster as no time wasted on translation.</p>  \r<p class="indent2new indentright m-t-0">User cannot change source code</p>  \r<p class="indent2new indentright"><i>Any 2 × 1</i></p>\r<p class="levelms">2</p>  \r<p class="mark">[3]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Candidates mostly knew the difference between an interpreter and a compiler but some found it hard to relate their knowledge to the question. In part (a) good candidates made the advantages of the interpreter during development very clear. Correct answers referred to the time saved during debugging as there is no need to re-compile after a change to the source code or the idea of being able to execute just part of the source code to help find errors. Weaker candidates tended to say “it is easier” and scored no marks.</p>  \r<p class="indent1new">Part (b) produced good answers from the best candidates dealing with the idea that an executable file is produced so there is no need for translation software at run-time. Many also realised that object code is less likely to be tampered with by users than source code. A minority of candidates had very little knowledge of the function of the translation software.</p></h5>', 'notes': '', 'resources': ''}, 'QS17202': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">A piece of software is being translated using an interpreter.</p>\r\n<p class="indent1new">State <b>two</b> reasons why an interpreter may have been selected to translate the software instead of a compiler.</p>\r\n<p class="indent1new answer-toggle">Reason 1 _______________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">Reason 2 _______________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="mark">(Total 2 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question indentright">The software is currently under development / being tested;</p>\r\n<p class="indent1new indentright m-t-0"><b>A</b>. When testing/debugging software</p>\r\n<p class="indent1new indentright">The software is to be targeted at a variety of processor types / architectures // software needs to be portable;</p>\r\n<p class="indent1new indentright">The language might only be available as an interpreted one // No compiler yet available on machine for language;</p>\r\n<p class="levelms">Max 2</p>\r\n<p class="mark">[2]</p></h5>', 'examinerreport': '', 'notes': '', 'resources': ''}, 'Q22S206P3': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Some compilers translate source code into an intermediate language rather than producing an executable file. Bytecode is one example of an intermediate language.</p>\r\n<p class="indent1new">Explain how intermediate language code is used after it has been generated.</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="mark">(Total 2 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>Marks are for AO1 (understanding)</b></p>\r\n<p class="indent1new indentright">Software must be used to finish the translation process (on the computer running the program);</p>\r\n<p class="indent1new indentright">The (JIT compiler) compiles the intermediate language code / bytecode into machine code for the processor / platform / computer it is being executed on;</p>\r\n<p class="indent1new indentright">Use a virtual machine // a just-in-time / JIT compiler;</p>\r\n<p class="indent1new indentright">(The virtual machine will) interpret / translate / execute the intermediate language code / bytecode // call functions within its own code to carry out the command;</p>\r\n<p class="indent1new indentright">Each processor instruction set / architecture will have its own virtual machine;</p>\r\n<p class="indent1new indentright"><b>MAX 2</b></p>\r\n<p class="mark">[2]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This question was about <b>how</b> an Intermediate Language (IL) is used and was badly answered with a third of students scoring no marks (and 1 in 8 students not attempting it at all.) The best answers showed an understanding that further translation of the IL was required and that this could be done using a virtual machine or JIT compiler.</p></h5>', 'notes': '', 'resources': ''}, 'QW09203': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; The high-level language statement</span></p>\r<p class="indent3new" style=\'font-family:Courier New;font-size:10pt\'>A := B + 5\r<p class="indent2new">is to be written in assembly language.</p>\r<p class="indent2new">Complete the following assembly language statements, which are to be the equivalent of the above high level language statement. The <span class="comp">Load</span> and <span class="comp">Store</span> instructions imply the use of the accumulator register.</span></p>\r<p class="indent3new" style=\'font-family:Courier New;font-size:10pt\'>Load ________</p>\r<p class="indent3new" style=\'font-family:Courier New;font-size:10pt\'>__________ #5</span></p>\r<p class="indent3new" style=\'font-family:Courier New;font-size:10pt\'>Store _______</span></p>\r<p class="mark">(3)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1a">(b)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;What type of translator is required to translate assembly code statements into machine code&#x003F;</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;What type of translator is required to translate a high-level language statement into machine code&#x003F;</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="mark">(1)</p> \r<p class="mark">(Total 5 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp;</span> Load B;<br/>Add  #5;<br><b>A</b> absolute addresses instead of A and B<br/>Store A;</p>\r<p class="levelms">3</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1a indentright" >(b)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Assembler;</p>\r<p class="levelms">1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiler; <br><b>R</b> Interpreter</p>\r<p class="levelms">1</p> \r<p class="mark">[5]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This question clearly showed which candidates had studied this topic. Answers mostly either gained full marks or hardly any. Candidates are not expected to be able to write lengthy low level code. They are expected to understand how a fairly simple assignment statement in a high level language would be represented in assembly code. Most candidates knew that an assembler is required to translate assembly code statements into machine code, but rather fewer candidates knew that only a compiler translates a high level language statement into machine code. An interpreter will not produce machine code; it merely interprets and executes high level language statements.</span></p></h5>', 'notes': '', 'resources': ''}, 'QS18S211P01': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Some compilers produce intermediate code such as bytecode as their final output whilst others produce executable code.</p>\r\n<p class="indent1new">Explain why some compilers produce bytecode as the final output instead of executable code.</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="mark">(Total 1 mark)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question indentright"><b>Mark is for AO1 (understanding)</b></p>\r\n<p class="indent1new indentright">The code may need to run on multiple platforms // target platform may not be known // may need to be platform independent;</p>\r\n<p class="indent1new indentright"><b>A.</b> Portable with some explanation</p>\r\n<p class="indent1new indentright"><b>A.</b> (May lead to) smaller file sizes</p>\r\n<p class="mark">[1]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Although many students were aware of the need for portability, this often wasn’t expressed in sufficient detail to be awarded a mark. There were a number of responses where the students talked themselves out of marks by not being clear about the difference between object code, source code, and byte code.</p></h5>', 'notes': '', 'resources': ''}, 'QS00N106': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; Contrast low-level and high-level programming languages.</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(4)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Describe <b>one</b> situation where a high-level language is inappropriate but a low-level language could be used.</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(2)</p>  \r<p class="mark">(Total 6 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; 2 each for any feature of a LLL, contrasted with the corresponding feature of a HLL, eg processor dependence / processor independence machine-oriented / task oriented 1-to-1 / 1 -to-many correspondence source / object code <i>translation is by assembler / compiler respectively </i>should be at least two aspects contrasted</p>  \r<p class="levelms">4</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(b)&nbsp;&nbsp;&nbsp;&nbsp; Where either program size or execution speed is critical, or precise timing needed, eg o/s kernel, device driver, real-time control, comms systems, or if direct control of the way a program functions is a requirement, etc</p>  \r<p class="indent2new indentright"><i>Can award 1 if situation is simply named</i></p>  \r<p class="levelms">2</p>  \r<p class="mark">[6]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This question was badly done - one suspects that few, if any, candidates have actually seen any low- level code or discussed the various programming languages in any depth. The instruction to “contrast” was widely ignored, many candidates simply brain-dumping a few phrases about high-level languages followed by a (usually inaccurate) sentence or two on low-level languages. A large number wrote, “high-level is close to English and low-level close to machine code”, although why candidates think that, for example, <b>while (*p++*(object..&gt;name++));</b><br> (a perfectly valid C++ instruction) is more English than <b>ADD EAX, [total]</b><br> (ditto Intel 80386 Assembler) is not immediately obvious.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">A fair number of candidates could give one correct contrast, such as machine specific / portable or many- one/one-one instruction translation, although few managed both and the examiners had to struggle to find what was being contrasted with what. Many believe, wrongly, that a low-level program occupies less memory than a high-level one, not necessarily true since in neither case is the translator present at run-time. For the second part, programs such as device drivers were the most popular, although few candidates appeared to understand why - the reason, of course, being that in such code precise control of timing is necessary to achieve synchronisation between devices. Some gave operating systems or BIOS as examples, on the grounds that they must be written in a low-level language because until they have executed no high-level translator can run - although in fact such systems are invariably written and compiled on other systems, usually in C.</p></h5>', 'notes': '', 'resources': ''}, 'QS19S210P02': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Describe <b>two</b> differences between machine code and assembly language.</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="mark">(Total 2 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>Marks are for AO1 (understanding)</b></p>\r\n<p class="indent1new">Machine code is binary/the actual instruction whereas assembly language is written using mnemonics;</p>\r\n<p class="indent1new m-t-0">Assembly language needs translating before it can run // machine code can be executed without needing to be translated;</p>\r\n<p class="mark">[2]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Although generally well answered, some students did not gain marks as they offered vague answers such as ‘machine code can be read by a computer whereas assembly cannot’ – both can be read by a computer, the difference is in the execution. Other vague answers referred to assembly as containing a language, English words or an instruction set.</p></h5>', 'notes': '', 'resources': ''}, 'QW11207': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">A programmer could use either an assembly language or a high level language to code programs for sale.</span></p>\r<p class="indent1">(a) &nbsp;&nbsp;&nbsp;&nbsp;Give <b>two</b> limitations of using assembly language to code a program.</p>\t\r<p class="indent2new answer-toggle">1. _________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">2. _________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="mark">(2)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b) &nbsp;&nbsp;&nbsp;&nbsp;If a program is coded using a high level language, then either a compiler or an interpreter will need to be used.</p>\r<p class="indent2new">Give <b>two</b> advantages of using a compiler, rather than an interpreter, to prepare a runnable program ready for sale.</p>\r<p class="indent2new answer-toggle">1. _________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">2. _________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="mark">(2)</p>\r<p class="mark">(Total 4 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp;</span> Very hard/difficult to understand;<br/>Very easy to make mistakes;<br/>Hard to find any errors/mistakes in the code;<br/>Time consuming to develop software in assembly language;<br/>Lack of portability;<br/>Lack of in-built functions/procedures;<br/><b>NE</b> harder to learn</p>\r<p class="levelms">Max 2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(b) &nbsp;&nbsp;&nbsp;&nbsp;Compiler produces object code to distribute that is difficult to reverse engineer/ no need to distribute the source code;<br/>Compiler optimises the code // The object code /program runs faster (as it does not need translating);<br/><b>NE</b> &#x201C;Runs faster&#x201D;, if not clear whether this applies to the program or the compiler.<br/>The target computer has no need to have the original compiler;<br/>Object code can be installed on target computer;<br/>No interpreter available for target machine;</p>\r<p class="levelms">2</p> \r<p class="mark">[4]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Part (a) about the limitations of assembly language had many candidates scoring at least one mark. A misconception amongst some candidates was that assembly language could not be used to code complex programs when in reality any program could be created in assembly language. Candidates who stated only that it would take a long time to program in assembly language did not secure the mark unless it was clear that it would take longer than using a HLL. Stating that assembly language is hard to read is not enough to secure a mark, but candidates were rewarded if they identified that assembly language is harder to understand.</span></p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">Even though part (b) has been asked in various forms before, many candidates failed to gain any credit. Too often candidates gave weak and vague answers that did not have enough detail to secure a mark. It is clear that some candidates are not clear over the differences between the terms &#x2018;program&#x2019;, &#x2018;source code&#x2019;, &#x2018;object code&#x2019; and &#x2018;executable&#x2019;. Candidates also need to be careful when they merely state that something will be &#x2018;quicker&#x2019; or &#x2018;faster&#x2019;. This was not enough for this question; candidates needed to make clear that it was the program that would execute more quickly.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">A few candidates stated that, &#x2018;it makes it hard to copy,&#x2019; which is not true as you can copy object code.<br/>The point that these candidates were probably trying to make is that it is harder to reverse engineer the object code. In the same way, many candidates wrote about a compiler &#x2018;protecting&#x2019; the source code. It is not really clear what &#x2018;protecting&#x2019; means in this sense.</p></h5>', 'notes': '', 'resources': ''}, 'QW06103': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>Figure 1 </b>and <b>Figure 2</b> below show<b> two </b>versions of the same program.</p>  \r<p class="indent2" style=\'margin-left:10.0cm;text-indent:-184.25pt\'><b>Figure 1</b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>Figure 2</b></p>  \r<p class="indent3" style=\'margin-top:0cm;margin-bottom:0cm;text-indent:4.0cm\'>(c)</p>  \r<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=5  style=\'margin-left:48pt;border-collapse:collapse\'>  \r\t<tr>      \r\t\t<td width=213 valign=top style=\'width:127.6pt;border:solid windowtext 1.0pt;   background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>Move&nbsp;&nbsp;&nbsp;&nbsp; #45,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R0</p></td>   \r\t\t<td width=47 valign=top style=\'width:1.0cm;border:none;background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>&nbsp;</p></td>   \r\t\t<td width=71 valign=top style=\'width:42.5pt;border:none;border-right:solid windowtext 1.0pt;   background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>100</p></td>   \r\t\t<td width=177 valign=top style=\'width:106.45pt;border:solid windowtext 1.0pt;border-left:none;background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>00101000 00101101</p></td>  \r\t</tr>  \r\t<tr>      \r\t\t<td width=213 valign=top style=\'width:127.6pt;border:solid windowtext 1.0pt;border-top:none;background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>Move&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #4,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R1</p></td>   \r\t\t<td width=47 valign=top style=\'width:1.0cm;border:none;background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>&nbsp;</p></td>   \r\t\t<td width=71 valign=top style=\'width:42.5pt;border:none;border-right:solid windowtext 1.0pt;   background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>101</p></td>   \r\t\t<td width=177 valign=top style=\'width:106.45pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>00101001 00000100</p></td>  \r\t</tr>  \r\t<tr>      \r\t\t<td width=213 valign=top style=\'width:127.6pt;border:solid windowtext 1.0pt;border-top:none;background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>Move&nbsp;&nbsp;&nbsp;&nbsp; #96,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;R2</p></td>   \r\t\t<td width=47 valign=top style=\'width:1.0cm;border:none;background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>&nbsp;</p></td>   \r\t\t<td width=71 valign=top style=\'width:42.5pt;border:none;border-right:solid windowtext 1.0pt;   background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>102</p></td>   \r\t\t<td width=177 valign=top style=\'width:106.45pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>00101010 01100000</p></td>  \r\t</tr>  \r\t<tr>      \r\t\t<td width=213 valign=top style=\'width:127.6pt;border:solid windowtext 1.0pt;border-top:none;background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>Add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R2,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R1</p></td>   \r\t\t<td width=47 valign=top style=\'width:1.0cm;border:none;background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>&nbsp;</p></td>   \r\t\t<td width=71 valign=top style=\'width:42.5pt;border:none;border-right:solid windowtext 1.0pt;   background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>103</p></td>   \r\t\t<td width=177 valign=top style=\'width:106.45pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>10100001 00000000</p></td>  \r\t</tr>  \r\t<tr>      \r\t\t<td width=213 valign=top style=\'width:127.6pt;border:solid windowtext 1.0pt;border-top:none;background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>Add&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R1,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R0</p></td>   \r\t\t<td width=47 valign=top style=\'width:1.0cm;border:none;background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>&nbsp;</p></td>   \r\t\t<td width=71 valign=top style=\'width:42.5pt;border:none;border-right:solid windowtext 1.0pt;   background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>104</p></td>   \r\t\t<td width=177 valign=top style=\'width:106.45pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;   background:white;padding:0cm 2.0pt 0cm 2.0pt\'><p class=box>10100000 00000000</p></td>  \r\t</tr> \r</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; What generation of programming language is shown in <b>Figure 1</b>?</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">&nbsp;(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; What generation of programming<b> </b>language is shown in <b>Figure 2</b>?</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; What would be a suitable heading<b> </b>for the column labelled (c) in <b>Figure 2</b>?</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(d)&nbsp;&nbsp;&nbsp;&nbsp; What software will be needed to translate the program code shown in <b>Figure 1</b> to the program code shown in <b>Figure 2</b>?</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(e)&nbsp;&nbsp;&nbsp;&nbsp; What is the relationship between the program instructions shown in <b>Figure 1</b> program instructions in <b>Figure 2</b>?</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(f)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; In addition to the executable file, what output could the software referred to in part (d) produce?</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(1)</p>  \r<p class="mark">(Total 6 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; Assembly language/code/program // second (generation);</p>  \r<p class="levelms">1</p>  \r<p class="indent1 indentright">(b)&nbsp;&nbsp;&nbsp;&nbsp; Machine code // first (generation);</p>  \r<p class="levelms">1</p>  \r<p class="indent1 indentright">(c)&nbsp;&nbsp;&nbsp;&nbsp; (Memory) address / location;</p>  \r<p class="indent2new indentright m-t-0"><b>R </b>Line number</p>  \r<p class="levelms">1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(d)&nbsp;&nbsp;&nbsp;&nbsp; Assembler;</p>  \r<p class="levelms">1</p>  \r<p class="indent1 indentright">(e)&nbsp;&nbsp;&nbsp;&nbsp; 1-to-l (mapping between instructions/op code/numbers written in assembler and their machine code equivalent) / each assembly instruction translates into one machine code instruction </p>  \r<p class="levelms">1</p>  \r<p class="indent1 indentright">(f)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <u>Error</u> / error list / error report / error count / highlight statement(s) illegally formed // / instruction count // symbol table;</p>  \r<p class="levelms">1</p>  \r<p class="mark">[6]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">The majority of candidates were able to recognise (a) and (b) as assembly language and machine code respectively.</p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; Very few candidates were able to suggest the numbers represented memory addresses, despite previous CPT1 papers asking candidates to explain the stored program concept where the basic&nbsp;&nbsp;&nbsp; concept of a program resident in addressable memory is fundamental to any computer system.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Candidates usually failed to get the mark by being too vague with explanations such as ‘Fig 1 was the same as Fig 2’, or ‘did the same thing’.</p>  \r<p class="indent2new">The required answer was the fundamental relationship between assembly language and machine code; namely a one-to-one correspondence between the instructions.</p>  \r<p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; This was poorly answered. </p></h5>', 'notes': '', 'resources': ''}, 'QS0847A': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"> A computer system has the following assembly code instructions that you are to use in this question:</span></p>  \r<p class="bottom">&nbsp;</p>  \r<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=5 style=\'margin-left:30pt;border-collapse:collapse\'>  \r\t<tr>     \r\t\t<td width=58 style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><b>Label</b></p></td>\r\t\t<td width=67 style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><b>Opcode</b></p></td>\r\t\t<td width=101 style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><b>Operand   (s)</b></p></td>\r\t\t<td width=398 style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><b>Description</b></p></td>\r\t</tr>\r\t<tr>     \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>AND</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>#nn</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Logical AND   the accumulator with hexadecimal value nn</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>OR</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>#nn</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Logical OR   the accumulator with hexadecimal value nn</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>LD</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>nnnn</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Load   contents of hexadecimal address nnnn into the accumulator</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>LD</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>label</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Load   contents of labelled memory into the accumulator</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>ST</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>nnnn</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Store   contents of the accumulator into hexadecimal address nnnn</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>ST</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>label</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Store   contents of the accumulator into labelled memory</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>ADD</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>#nn</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Add the   hexadecimal value nn to the accumulator</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>ADD</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>nnnn</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Add the   contents of hexadecimal address nnnn to the accumulator</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>MUL</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>#nn</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Multiply the accumulator by the hexadecimal value nn</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>MUL</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>nnnn</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Multiply the accumulator by the contents of the hexadecimal address nnnn</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>CMP</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>#nn</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Compare the accumulator with hexadecimal value nn</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>CMP</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>label</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Compare the accumulator with the contents of the labelled memory</p></td>\r\t</tr>\r\t<tr>     \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>JP</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>label</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Jump   unconditionally to the label</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>JE</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>label</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Jump to the label if the result of a compare shows the accumulator to be equal to the operand</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>JNE</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>label</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Jump to the label if the result of a compare shows the accumulator not to be equal to the operand</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>JG</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>label</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Jump to the label if the result of a compare shows the accumulator to be greater than the operand</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>JGE</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>label</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Jump to the label if the result of a compare shows the accumulator to be greater than or equal to the operand</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>JL</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>label</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Jump to the label if the result of a compare shows the accumulator to be less than the operand</p></td>\r\t</tr>\r\t<tr>      \r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>&nbsp;</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>JLE</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>label</p></td>\r\t\t<td style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Jump to the label if the result of a compare shows the accumulator to be less than or equal to the operand</p></td>  \r\t</tr> \r</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; Give <b>two</b> reasons why some software is still developed in an assembly language.</p>  \r<p class="indent2new answer-toggle">1. _________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">2. _________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(2)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Give <b>one</b> reason why the majority of software is no longer developed using assembly language.</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(1)</p>  \r<p class="mark">(Total 3 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; Need to access/address registers/exact memory addresses/ hardware directly;</span></p>  \r<p class="indent2 indentright m-t-0">Fast speed of operation needed;</p>  \r<p class="indent2new indentright m-t-0">Code needs to take up little <u>memory</u>// minimise the size of the executable code;</p>  \r<p class="indent2new indentright"><b>A</b> no compiler/interpreter exists yet for the machine// no other translator exists;</p>  \r<p class="indent2 indentright m-t-0"><b>R</b> manipulate bits</p>  \r<p class="indent2 indentright m-t-0"><b>R</b> comparison with machine code</p>  \r<p class="levelms">Max 2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(b)&nbsp;&nbsp;&nbsp;&nbsp; Takes longer to program;<br> Leads to more errors // more difficult to detect errors;<br> Requires more skill;<br> Difficult to understand;<br> Difficult to maintain;</p>  \r<p class="indent2new indentright m-t-0">Processor dependant// not portable// not problem oriented;</p>  \r<p class="levelms">Max 1</p>  \r<p class="mark">[3]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">It would seem that many candidates did not have sufficient knowledge or understanding of assembly language. This question was badly answered with many candidates’ responses suggesting that they had not been exposed to assembly language.</span></p></h5>', 'notes': '', 'resources': ''}, 'QS11204': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>Figure 1</b> and <b>Figure 2</b> show different versions of the same program.</span></p>\r<p class="bottom">&nbsp;</p>\r<table class=MsoTableGrid cellspacing=0 cellpadding=4 style=\'margin-left:20.0pt;border-collapse:collapse;border:0\'> \r\t<tr>  \r\t\t<td valign=top style=\'width:225.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Figure 1</b></p></td>\r\t\t<td valign=top style=\'width:225.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Figure 2</b></p></td>  \r\t</tr> \r\t<tr>  \r\t\t<td valign=top style=\'width:225.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><b>(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(y)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(z)</b></p></td>\r\t\t<td valign=top style=\'width:225.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><b>(x)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(y)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(z)</b></p></td>  \r\t</tr> \r\t<tr>  \r\t\t<td valign=top style=\'width:225.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span style=\'font-family:Courier New;font-size:10pt\'>200&nbsp;&nbsp;&nbsp;&nbsp; LOAD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7<br/>\r201&nbsp;&nbsp;&nbsp;&nbsp; ADD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br/>\r202&nbsp;&nbsp;&nbsp;&nbsp; ADD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6<br/>\r203&nbsp;&nbsp;&nbsp;&nbsp; STORE&nbsp;&nbsp;&nbsp;&nbsp; 255</span></p></td>\r\t\t<td valign=top style=\'width:225.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span style=\'font-family:Courier New;font-size:10pt\'>200&nbsp;&nbsp;&nbsp;&nbsp; 01010110&nbsp;&nbsp;&nbsp;&nbsp; 00000111<br/>\r201&nbsp;&nbsp;&nbsp;&nbsp; 11010000&nbsp;&nbsp;&nbsp;&nbsp; 00000011<br/>\r202&nbsp;&nbsp;&nbsp;&nbsp; 11010000&nbsp;&nbsp;&nbsp;&nbsp; 00000110<br/>\r203&nbsp;&nbsp;&nbsp;&nbsp; 11110000&nbsp;&nbsp;&nbsp;&nbsp; 11111111</span></p></td>\r\t</tr>\r</table>\r<p class="indent1">(a) &nbsp;&nbsp;&nbsp;&nbsp;What generation of programming language is shown in <b>Figure 1</b>&#x003F;</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b) &nbsp;&nbsp;&nbsp;&nbsp;In both figures above there is a column labelled <b>(x)</b>.</p>\t\r<p class="indent2new">What would be a suitable heading for this column&#x003F;</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c) &nbsp;&nbsp;&nbsp;&nbsp;In both tables the instruction is split into two parts.</p>\r<p class="indent2new">What are the names of the instruction parts in columns <b>(y)</b> and <b>(z)</b>&#x003F;</p>\r<p class="indent2new answer-toggle"><b>(y)</b> ________________________________________________________________</p>\r<p class="indent2new answer-toggle"><b>(z)</b> ________________________________________________________________</p>\r<p class="mark">(2)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(d) &nbsp;&nbsp;&nbsp;&nbsp;What is the relationship between the instructions in <b>Figure 1</b> and <b>Figure 2</b>&#x003F;</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="mark">(1)</p> \r<p class="mark">(Total 5 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; </span>Second (generation); <br><b>A</b> 2 <br><b>R</b> assembly code / language<br/><br><i>Note: Adding &#x201C;assembly&#x201D; / &#x201C;assembler&#x201D; does not talk out a valid mark for second / 2</i></p>\r<p class="levelms">1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(b) &nbsp;&nbsp;&nbsp;&nbsp;(memory) Address / location / offset;<br><b>A</b> line number<br/><b>R</b> instruction number</p>\r<p class="levelms">1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(c) &nbsp;&nbsp;&nbsp;&nbsp;(y) Opcode / operation code; <br><b>A</b> op-code <br><b>NE</b> operation<br/>(z) Operand;</p>\r<p class="levelms">2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(d) &nbsp;&nbsp;&nbsp;&nbsp;<b>Individual Instructions:</b><br/>One to one / each assembly language instruction translates to one machine code instruction;</p>\r<p class="indent2new indentright"><b>Programs:</b><br/>Figure 1 assembly language equivalent of figure 2 // figure 2 machine code version of figure 1 // figure 2 is assembled version of figure 1;<br/><b>NE</b> figure 2 &#x201C;binary version&#x201D; of figure 1<br/><b>NE</b> different generations of language</p>\r<p class="levelms">1</p> \r<p class="mark">[5]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Part (a) asked candidates to identify a segment of code as being from a second generation language. It was pleasing to see that most candidates could successfully identify this.</span></p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">Part (b) asked candidates to identify a label as &#x2018;memory address&#x2019;. A variety of responses were given that did not secure the mark but &#x2018;line number&#x2019; was accepted as the figure could have been showing a print out or part of a programming environment.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">Questions relating to the terms opcode and operand have been asked before and the majority of candidates managed to secure full marks for part (c), but a reasonable number did not secure any marks.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">Part (d) examined whether candidates realized the relationship between an assembly instruction and a machine code instruction. Candidates who indicated that there was a one to one relationship gained full credit. The majority of candidates compared the whole of the code segment and gained the mark if they could identify the kind of language being used. It was pleasing to see strong candidates go further in their answer and understand that Figure 2 was the assembled version of the assembly code in Figure 1.</p></h5>', 'notes': '', 'resources': ''}, 'QW10204': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Programs written in a high level language can be compiled or interpreted.</span></p>\r<p class="indent1">(a) &nbsp;&nbsp;&nbsp;&nbsp;Companies that develop computer programs to sell always compile the final version of a program before distributing it to customers.</p>\r<p class="indent2new">Explain why a compiler is used to produce the final version of a computer program.</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="mark">(2)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b) &nbsp;&nbsp;&nbsp;&nbsp;Scripting programming languages can be used to write programs which are interpreted and executed in a web browser on any Internet user&#x2019;s computer.</p>\r<p class="indent2new">Explain why programs written in a scripting language for this purpose are interpreted rather than compiled.</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="mark">(2)</p> \r<p class="mark">(Total 4 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; </span>So that source code cannot be accessed by users;<br/>Users do not need to have an interpreter / compiler / translator // users do not need programming environment;<br/>Users do not need knowledge of the programming environment;<br/>So that the program will execute more quickly;<br/><b>NE</b> it&#x2019;s faster<br/><b>NE</b> does not need to be compiled each time executed/run<br/><b>R</b> saves disk space</p>\r<p class="levelms">Max 2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(b) &nbsp;&nbsp;&nbsp;&nbsp;Can&#x2019;t know what type of processor will be in user&#x2019;s computer // Internet users have range of computers / devices with different processors;<br/>A compiled program will only execute on a processor of specific type / family / with same instruction set//A program run using an interpreter can execute on a computer with any type of processor;<br/><b>A</b> References to just different types of computer / device rather than specifically processors<br/><b>NB</b> Virtual Machine<br/><b>R</b> No compiler exists<br/><b>R</b> computers may have different web browsers/software</p>\r<p class="levelms">2</p> \r<p class="mark">[4]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Many candidates answered the question that they would like to have been asked about compilers and interpreters, rather than the question that was actually asked. Responses were often no more than repetition of bookwork about how compilers and interpreters work and showed little understanding.</span></p>\r<p class="indent1new">Responses to part (a) usually described the process of compilation, not why the compiler had been used by the software company. Answers often compared compilers and interpreters regarding their role at finding program errors &#x2013; this is not what the question was asking. Nevertheless, some candidates tackled the question well, gaining full marks in this part.</p>\r<p class="indent1new">Part (b) was also answered with reference to what an interpreter does regarding how it is easier to spot and correct errors, missing the point of the question entirely. A small but significant portion of the answers were left entirely blank suggesting that the topic was not well known by the candidates. A common incorrect answer was that &#x201C;the interpreter allowed a script to download line by line so that it could run line by line immediately rather than having to wait for a full compilation to download and then execute&#x201D;. Correct responses identified that interpreted code could be run on any type of processor which is important when programs are run in a browser as the program authors could not know what type of processor the end user would have.</p></h5>', 'notes': '', 'resources': ''}, 'QS18S211P03': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Explain what is meant by the term imperative high-level language.</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="mark">(Total 2 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question indentright"><b>Marks are for AO1 (knowledge)</b></p>\r\n<p class="indent1new indentright">Instructions are executed in a programmer-defined order // Imperative programs define sequences of commands for the computer to perform;</p>\r\n<p class="indent1new indentright m-t-0">Imperative languages describe how to solve a problem (in terms of sequences of actions to be taken);</p>\r\n<p class="indent1new indentright"><b>Max 1</b></p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright">High level language instructions use English-like keywords // constructs;</p>\r\n<p class="indent1new indentright m-t-0">High level languages support structured statements (<b>A.</b> by example);</p>\r\n<p class="indent1new indentright m-t-0">High level languages support use of <u>local</u> variables / parameters / named constants / indentation;</p>\r\n<p class="indent1new indentright m-t-0"><b>R.</b> Closer to natural language / almost written in English</p>\r\n<p class="indent1new indentright m-t-0"><b>R.</b> Machine independent / problem-oriented / top-down</p>\r\n<p class="indent1new indentright"><b>Max 1</b></p>\r\n<p class="mark">[2]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Unfortunately, it is clear that many students do not understand the term “imperative high-level language”, despite similar questions being asked in previous examinations. Students often attempted to explain the meaning of a high-level language without referencing the concept of being imperative. A large number of students answered with points from the mark scheme that were considered insufficient, often referencing closeness to English language.</p></h5>', 'notes': '', 'resources': ''}, 'QS17L25D': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Discuss the advantages and disadvantages of programming using a high-level language compared to programming using assembly language.</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="indent1new answer-toggle">_______________________________________________________________________</p>\r\n<p class="mark">(Total 4 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question indentright"><b>All marks AO1 (understanding)</b></p>\r\n<p class="indent1new indentright"><b>Advantages of high-level language (MAX 2):</b></p>\r\n<p class="indent1new indentright">Program code is easier to understand/maintain/debug;</p>\r\n<p class="indent1new indentright m-t-0">Faster development time // programmers can be more productive // one line of HLL code can do the same job as many lines of assembly language;</p>\r\n<p class="indent1new indentright m-t-0">Programs are (more) portable (to other hardware platforms)</p>\r\n<p class="indent1new indentright m-t-0">Availability of flow control structures; <b>A</b>. Example(s) eg loops, selection</p>\r\n<p class="indent1new indentright m-t-0">Improved features for supporting modularity; <b>A</b>. Ability to use subroutines</p>\r\n<p class="indent1new indentright m-t-0">Built-in support for data structures; <b>A</b>. Example(s) eg arrays, records</p>\r\n<p class="indent1new indentright m-t-0">Language is problem-oriented;</p>\r\n<p class="indent1new indentright m-t-0">Support for different paradigms; <b>A</b>. Examples eg functional programming</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright"><b>Disadvantages of high-level language (MAX 2):</b></p>\r\n<p class="indent1new indentright">Assembly language code may execute more quickly;</p>\r\n<p class="indent1new indentright m-t-0"><b>R</b>. If response suggests that faster execution is because translation is not required Assembly language code may use less memory;</p>\r\n<p class="indent1new indentright m-t-0">Assembly language gives direct/better access to computer hardware // enables direct manipulation of memory (contents);</p>\r\n<p class="indent1new indentright m-t-0"><b>NE</b>. “More efficient” for either executes more quickly or uses less memory</p>\r\n<p class="indent1new indentright">Award marks for disadvantages as opposite of advantage points eg a disadvantage of assembly language could be “Program code is harder to understand/maintain”. <b>BUT</b> do not award two marks for an advantage and its corresponding disadvantage.</p>\r\n<p class="mark">[4]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Students were more familiar with advantages of high-level languages than disadvantages of them. Most commonly students wrote about high-level languages having easier to understand code, facilitating faster development times and being more portable. Some answers also focussed on facilities that would be available in high-level languages such as significant libraries of built-in functions and data structures. Some responses were too vague to be mark worthy, for example stating that program code written in high-level languages was &#8220;close to English&#8221;.</p>\r\n<p class="indent1new">Good responses about the disadvantages of high-level languages recognised that a compiler might generate machine code that was less than optimal in the sense of using more memory than required or executing more slowly. Other good points related to limitations such as the inability to control directly the contents of registers or specific memory locations. Points related to different translation methods such as compilation taking longer than assembling were not considered mark worthy.</p></h5>', 'notes': '', 'resources': ''}, 'QS99N107': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; Explain what is meant by a <i>programming language</i>.</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(2)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Distinguish between <i>low-level</i> and<i> high-level</i> programming languages.</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(2)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; What must happen to the source code of a program before it can be executed, and why is this necessary?</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(2)</p>  \r<p class="mark">(Total 6 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; Set of rules for syntax / semantics / grammar for writing sets of instructions to be run on a computer</p>  \r<p class="levelms">2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(b)&nbsp;&nbsp;&nbsp;&nbsp; Low-level is oriented towards a particular processor (1), high-level towards a problem type (1).</p>  \r<p class="indent2new indentright">Accept: low-level requires knowledge of machine architecture (1), whereas high-level is machine-independent (1) or low-level has one-to-one correspondence with machine code instructions (1), high-level is one-to-many (1) or machine-oriented (l/l) s. human-oriented (h/l) no credit for naming languages</p>  \r<p class="levelms">2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(c)&nbsp;&nbsp;&nbsp;&nbsp; Program needs to be translated (accept compiled, assembled or interpreted) (1) into machine code computer can only execute machine code (1)</p>  \r<p class="levelms">2</p>  \r<p class="mark">[6]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Few candidates scored both marks for the first part of this question: “a language for writing programs” merely rephrases the question. A language is essentially the set of rules which defines what does and does not make sense in the particular context: thus a programming language defines the rules for writing sets of instructions for computers. In part (b), far too many candidates thought low level languages are synonymous with machine code (they have a one-to-one correspondence, but that is not the same thing), and that high level languages are “close to English”. The answers looked for contrasted machine-orientation against task-orientation, but answers around the concept of one-to-one / one-to-many instructions were acceptable. Most candidates scored both marks for (c), although far too many thought the purpose of a compiler is error-checking.</p></h5>', 'notes': '', 'resources': ''}}
User: Now, the user will ask questions after this message. Use everything I gave you and the knowledge you have acquired, and from the notes you made, to answer their question in a very concise way that WILL score ALL marks. Just like the notes. For this, your answer will not have the same structure as the revision notes. Think of it as answering an exam question: short, consice, useful, scores ALL marks. Just like the exam questions provided to you, you will not leave your response in a 'notes' manner. You are just answering an exam question: which means it has to be very short unless explicitly specified by the user that it must be long and detailed. So, keep it short, concise, and only a couple of sentences that score ALL marks. Remember, it is an A-Level exam question and you will style it as such: incredibly concise sentences (essentially like bullet points but without the bullet points) that score marks. Most sentences won't even have commas, this does not mean you can't use them. Also do not repeat the question in your answer, just do it. Score all marks, assume how many marks there are based on the question if it is not provided to you. Imagine that for every sentence you make, you score a mark (for simpler questions), for high (>5 mark) questions that may differ.
In summary, you must:
* Answer very concisely. Kind of like bullet points but as a short para. Most of the time, a sentence, or point, will be a mark.
* Do not repeat the question at the start.
* Don't over-do your answer. Please. 1 mark (e.g., usually, 'What' questions) is like one very short sentence usually. Remember the summary from the notes? Your answer will essentially be like that for most questions but a bit (a bit!) more developed. Remember, this is just A-Levels. Use some of the exam questions that I provided as an example of how you should model your answers.
* When you're listing examples, don't list every example in the universe.
* Score all marks. Be helpful.
User: Under what circumstances would you compile a high-level computer program?
Assistant: Compile a high-level program to produce object code that runs efficiently and securely. Use when you want fast execution and to protect source code for distribution, ensuring independence from the development environment.
User: Explain the differences between a compiler and an interpreter.  simple
Assistant: A compiler translates the entire source code into machine code before execution, resulting in faster runtime performance. An interpreter translates and executes code line-by-line, allowing for immediate execution but slower performance.
User: Explain the differences between a compiler and an interpreter.  5 MARKS but in simple bullet-points
Assistant: - A compiler translates the entire source code into object code before execution.
- Execution of compiled code is faster as it doesn't require further translation.
- An interpreter reads and executes code line-by-line.
- Interpreted code usually runs slower due to real-time translation.
- Compiled code does not need a compiler present to run, whereas an interpreter must be available at runtime.
User: Make notes on the following:  -Benefits and drawback of Interpreter  -Benefits and drawbacks of compiler 
Assistant: **Interpreter:**

**Benefits:**
- Provides immediate execution and is useful for development and debugging, as changes can be tested quickly without recompiling the entire program.
- Allows code to be portable across different systems without modification, as long as the interpreter is available.

**Drawbacks:**
- Execution speed is slower compared to compiled code, as each line must be translated every time it's executed.
- Requires the interpreter to be installed on every machine that runs the program.

**Compiler:**

**Benefits:**
- Produces object code that executes faster since it doesn't require translation at runtime.
- Protects source code from tampering or inspection, as only the compiled code needs to be distributed.

**Drawbacks:**
- Requires the entire program to be recompiled after each change, slowing the development process.
- Compiled code is not easily portable between different system architectures or processor types.
User: Define Bytecode.  (1 mark)
Assistant: Bytecode is an intermediate code that can be executed by a virtual machine, allowing it to be platform-independent.
User: This kind of translator converts assembly into machine code ...
Assistant: