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.
Link the 'sections' of your answer to the following spec-points (by title):
e.g. "**Topic** (Spec Points: a.b.c. Whatever)
3.6.2 Classification of programming langs
None

3.6.3 Types of program translator
None


You MUST make sure they are ALL met. Everything it says on there you should meet.

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$.2': [{'index1': '|D|E|E.B$|', 'index2': '|2$|', 'index3': '2$', 'index4': 'S6$.2', 'index5': '|', 'index6': 'Q23S206p2', 'qid': 'Q23S206p2', 'des': 'Low-level language; high-level language; advantages; disadvantages', 'index7': '', 'marks': '6 marks', 'time': '7', 'ttext': 'Programming | Software | Low-level languages', 'fld': 'AA_COM', 'fil': 'Q23S206P2', 'year': 2023, '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|', '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$|E.B$|', 'index2': '|2$|', 'index3': '2$', 'index4': 'S6$.2', 'index5': '|', 'index6': 'QS17S24B', 'qid': 'QS17S24B', 'des': 'High-level; assembly; assembler; low-level; language', 'index7': '', 'marks': '3 marks', 'time': '4', 'ttext': 'Classification | Low-level languages', 'fld': 'AA_COM', 'fil': 'QS17S24B', 'year': 2017, '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.C$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.2 | S6$.3', 'index5': '|', 'index6': 'QS16S209', 'qid': 'QS16S209', 'des': 'High level languages and translation', 'index7': '', 'marks': '8 marks', 'time': '10', 'ttext': 'Classification | Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS16S209', 'year': 2016, 'res': '', 'flag1': 0}, {'index1': '|E.A$|E.C$|E.D$|E.E$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.1.b | S6$.2 | S6$.3', 'index5': '|', 'index6': 'QS16203', 'qid': 'QS16203', 'des': 'Software classifications + development', 'index7': '', 'marks': '9 marks', 'time': '9', 'ttext': 'Classification | Compilers and interpreters | Operating systems | Applications', 'fld': 'AA_COM', 'fil': 'QS16203', 'year': 2016, 'res': '', 'flag1': 0}, {'index1': '|E.B$|E.C$|', 'index2': '|3$|', 'index3': '3$', 'index4': 'S6$.2 | L1$.2.a | L6$.2', 'index5': '|', 'index6': 'QSPL206', 'qid': 'QSPL206', 'des': 'Assembly code + high-level languages', 'index7': '', 'marks': '8 marks', 'time': '12', 'ttext': 'Low-level languages | Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QSPA206', 'year': 2014, 'res': '', 'flag1': 0}, {'index1': '|E.A$|E.B$|E.C$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.2 | S6$.3 | L6$.2 | L6$.3', 'index5': '|', 'index6': 'QS15202', 'qid': 'QS15202', 'des': 'Programming languages; compilers and interpreters', 'index7': '', 'marks': '9 marks', 'time': '9', 'ttext': 'Classification | Low-level languages | Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS15202', 'year': 2015, 'res': '', 'flag1': 0}, {'index1': '|D.A$|E.A$|E.B$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.1.b | S6$.1.c | S6$.2 | S6$.3 | L6$.1.b | L6$.1.c | L6$.2 | L6$.3', 'index5': '|', 'index6': 'QS14201', 'qid': 'QS14201', 'des': 'Classifying software; language levels', 'index7': '', 'marks': '8 marks', 'time': '8', 'ttext': 'Programming concepts | Classification | Low-level languages', 'fld': 'AA_COM', 'fil': 'QS14201', 'year': 2014, 'res': '', 'flag1': 0}, {'index1': '|E.A$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.2 | L6$.2', 'index5': '|', 'index6': 'QS13201', 'qid': 'QS13201', 'des': 'Generation of programming language', 'index7': '', 'marks': '2 marks', 'time': '2', 'ttext': 'Classification', 'fld': 'AA_COM', 'fil': 'QS13201', 'year': 2013, 'res': '', 'flag1': 0}, {'index1': '|C|C.A$|C.D$|E.C$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.2 | S6$.3 | S7$.2 | S7$.3.e | S7$.4.a | L6$.2 | L6$.3 | L7$.2 | L7$.3.e | L7$.4.a', 'index5': '|', 'index6': 'QS13204', 'qid': 'QS13204', 'des': 'Protocol; interpreter; stored program; machine code; input device', 'index7': '', 'marks': '16 marks', 'time': '16', 'ttext': 'Hardware | Internal components | Processor | Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS13204', 'year': 2013, 'res': '', 'flag1': 0}, {'index1': '|E.A$|E.B$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.2 | L6$.2', 'index5': '|', 'index6': 'QW13203', 'qid': 'QW13203', 'des': 'Differences between three types of programming language', 'index7': '', 'marks': '8 marks', 'time': '8', 'ttext': 'Classification | Low-level languages', 'fld': 'AA_COM', 'fil': 'QW13203', 'year': 2013, 'res': '', 'flag1': 0}, {'index1': '|E.A$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.2 | L6$.2', 'index5': '|', 'index6': 'QS12204', 'qid': 'QS12204', 'des': 'Imperative high level language', 'index7': '', 'marks': '3 marks', 'time': '3', 'ttext': 'Classification', 'fld': 'AA_COM', 'fil': 'QS12204', 'year': 2012, 'res': '', 'flag1': 0}, {'index1': '|E.B$|E.C$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.2 | S6$.3 | S7$.3.d | S7$.3.e | L6$.2 | L6$.3 | L7$.3.d | L7$.3.e', 'index5': '|', 'index6': 'QW12201', 'qid': 'QW12201', 'des': 'Machine code; memory address', 'index7': '', 'marks': '9 marks', 'time': '9', 'ttext': 'Low-level languages | Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QW12201', 'year': 2012, '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.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': '|C.A$|C.D$|E.B$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.2 | S6$.3 | S7$.1 | S7$.3.a | S7$.3.b | S7$.3.e | L6$.2 | L6$.3 | L7$.1 | L7$.3.a | L7$.3.b | L7$.3.e', 'index5': '|', 'index6': 'QS10207', 'qid': 'QS10207', 'des': 'Fetch-execute cycle', 'index7': '', 'marks': '12 marks', 'time': '12', 'ttext': 'Internal components | Processor | Low-level languages', 'fld': 'AA_COM', 'fil': 'QS10207', 'year': 2010, '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.A$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.2 | L6$.2', 'index5': '|', 'index6': 'QS09203', 'qid': 'QS09203', 'des': 'Imperative and declarative ', 'index7': '', 'marks': '2 marks', 'time': '2', 'ttext': 'Classification', 'fld': 'AA_COM', 'fil': 'QS09203', 'year': 2009, '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.A$|E.C$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S5$.1.a | S6$.2 | S6$.3 | L5$.1.a | L6$.2 | L6$.3', 'index5': '|', 'index6': 'QW08104', 'qid': 'QW08104', 'des': 'Language classification', 'index7': '', 'marks': '9 marks', 'time': '14', 'ttext': 'Classification | Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QW08104', 'year': 2008, '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$|E.C$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.2 | S6$.3 | L6$.2 | L6$.3', 'index5': '|', 'index6': 'QW04102', 'qid': 'QW04102', 'des': 'Generations of programming language', 'index7': '', 'marks': '13 marks', 'time': '15', 'ttext': 'Classification | Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QW04102', 'year': 2004, 'res': '', 'flag1': 0}, {'index1': '|E.C$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S1$.1.b | S1$.1.f | S6$.2 | S6$.3 | L1$.1.b | L1$.1.f | L6$.2 | L6$.3', 'index5': '|', 'index6': 'QS02103', 'qid': 'QS02103', 'des': 'Translators; imperative HLL characteristics', 'index7': '', 'marks': '10 marks', 'time': '15', 'ttext': 'Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS02103', 'year': 2002, 'res': '', 'flag1': 0}, {'index1': '|C.A$|E.A$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.2 | S6$.3 | S7$.3.a | S7$.3.b | S7$.3.e | S7$.4.b | L6$.2 | L6$.3 | L7$.3.a | L7$.3.b | L7$.3.e | L7$.4.b', 'index5': '|', 'index6': 'QW02101', 'qid': 'QW02101', 'des': 'Computer components; ', 'index7': '', 'marks': '12 marks', 'time': '18', 'ttext': 'Internal components | Classification', 'fld': 'AA_COM', 'fil': 'QW02101', 'year': 2002, 'res': '', 'flag1': 0}, {'index1': '|E.A$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.2 | L6$.2', 'index5': '|', 'index6': 'QW01103', 'qid': 'QW01103', 'des': 'First/second/third generation language', 'index7': '', 'marks': '3 marks', 'time': '5', 'ttext': 'Classification', 'fld': 'AA_COM', 'fil': 'QW01103', 'year': 2001, 'res': '', 'flag1': 0}, {'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.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}], 'S6$.3': [{'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': '|D|E.C$|', 'index2': '|2$|', 'index3': '2$', 'index4': 'S6$.3', 'index5': '|', 'index6': 'Q22S206p4', 'qid': 'Q22S206p4', 'des': 'Give one reason for a compiler outputting intermediate code instead of machine code; bytecode', 'index7': '', 'marks': '1 marks', 'time': '1', 'ttext': 'Programming | Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'Q22S206P4', 'year': 2023, 'res': '', 'flag1': None}, {'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': '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}, {'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': 'QS17S24A', 'qid': 'QS17S24A', 'des': 'Compiler; interpreter', 'index7': '', 'marks': '4 marks', 'time': '5', 'ttext': 'Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS17S24A', 'year': 2017, 'res': '', 'flag1': 1}, {'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': '|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.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$.1.c | S6$.1.d | S6$.3 | L6$.1.c | L6$.1.d | L6$.3', 'index5': '|', 'index6': 'QS08102', 'qid': 'QS08102', 'des': 'Types of program translator', 'index7': '', 'marks': '8 marks', 'time': '11', 'ttext': 'Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS08102', 'year': 2008, 'res': '', 'flag1': 0}, {'index1': '|C.D$|E.A$|E.B$|', 'index2': '|1$|', 'index3': '2$', 'index4': 'S6$.3 | S7$.2 | S7$.3.d | S7$.3.e | L6$.3 | L7$.2 | L7$.3.d | L7$.3.e', 'index5': '|', 'index6': 'QS08104', 'qid': 'QS08104', 'des': 'Basic machine operations', 'index7': '', 'marks': '8 marks', 'time': '12', 'ttext': 'Processor | Classification | Low-level languages', 'fld': 'AA_COM', 'fil': 'QS08104', 'year': 2008, 'res': '', 'flag1': 0}, {'index1': '|D.A$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S1$.1.b | S1$.1.j | S1$.1.k | S1$.1.l | S4$.1 | S6$.3 | L1$.1.b | L1$.1.j | L1$.1.k | L1$.1.l | L4$.1 | L6$.3', 'index5': '|', 'index6': 'QW06102', 'qid': 'QW06102', 'des': 'Procedures/ functions: variables; ', 'index7': '', 'marks': '11 marks', 'time': '15', 'ttext': 'Programming concepts', 'fld': 'AA_COM', 'fil': 'QW06102', 'year': 2006, 'res': '', 'flag1': 0}, {'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': '|D.A$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S1$.1 | S6$.3 | L1$.1 | L6$.3', 'index5': '|', 'index6': 'QS01104', 'qid': 'QS01104', 'des': 'Structured approach/high level languages', 'index7': '', 'marks': '9 marks', 'time': '13', 'ttext': 'Programming concepts', 'fld': 'AA_COM', 'fil': 'QS01104', 'year': 2001, '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': '|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}]}

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: {'Q23S206P2': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Discuss the <b>advantages and disadvantages</b> of high-level languages compared to low-level languages.</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 6 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"><b>Level of response question</b></p>\r\n<p class="bottom">&nbsp;</p>\r\n<table class="data-table left1"> \r\n\t<tr>\r\n\t\t<td class="col-3 vert-top"><p class="padded"><b>Level</b></p></td>\r\n\t\t<td class="col-16 vert-top"><p class="padded text-left"><b>Description</b></p></td>\r\n\t\t<td class="col-4 vert-top"><p class="padded"><b>Mark Range</b></p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-3 vert-top"><p class="padded">3</p></td>\r\n\t\t<td class="col-16">\r\n\t\t\t<p class="padded text-left">Responses demonstrate a clear understanding of the differences between high and low-level programming languages by discussing a broad range of advantages and disadvantages of high-level programming languages when compared with low-level ones.</p>\r\n\t\t\t<p class="padded text-left">There will be explicit comparison of the two types of languages throughout the response.</p>\r\n\t\t\t<p class="padded text-left">Answers in this band are likely to offer clear examples of when each type of language would be beneficial but this is not necessary to gain the highest marks.</p></td>\r\n\t\t<td class="col-4 vert-top"><p class="padded">5&#150;6</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-3 vert-top"><p class="padded">2</p></td>\r\n\t\t<td class="col-16">\r\n\t\t\t<p class="padded text-left">Responses demonstrate some understanding of the differences between high and low-level programming languages by discussing a small number of advantages and disadvantages of high-level programming languages when compared with low-level ones.</p>\r\n\t\t\t<p class="padded text-left">In order to gain marks at the top of this band, there should be some direct comparison of the two types of languages present in the response but this may not be throughout.</p></td>\r\n\t\t<td class="col-4 vert-top"><p class="padded">3&#150;4</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-3 vert-top"><p class="padded">1</p></td>\r\n\t\t<td class="col-16">\r\n\t\t\t<p class="padded text-left">Responses demonstrate some awareness of the differences between high and low-level programming languages by stating a small number of features of high level or low-level programming languages. These may not be presented as advantages or disadvantages.</p>\r\n\t\t\t<p class="padded text-left">There is unlikely to be any clear comparison of the two types of languages but there is evidence of a limited understanding of the concept.</p></td>\r\n\t\t<td class="col-4 vert-top"><p class="padded">1 &#150; 2</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-3 vert-top"><p class="padded">0</p></td>\r\n\t\t<td class="col-16">\r\n\t\t\t<p class="padded text-left">Nothing creditworthy is written</p></td>\r\n\t\t<td class="col-4 vert-top"><p class="padded">0</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new"><b>Indicative Content</b></p>\r\n<p class="indent1new"><b>Advantages of high-level languages / Disadvantages of low-level languages</b></p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;High-level languages may be processor agnostic // low-level languages are processor (family) specific.</p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;High-level languages are written in a form designed to be easier for humans to interpret // High-level languages are more abstracted from how the processor operates.</p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;High-level languages often have extra features such as abstract data types and built-in functions.</p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;High-level languages may have a wider range of programming structures (e.g. loops) available.</p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;High-level languages are easier to understand/write/debug/maintain than low-level languages // uses English-like keywords.</p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Programs written in high-level language are quicker to write/develop.</p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;More tools for developing high-level languages are likely to exist // low-level languages might have fewer tools available to aid development.</p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Some high-level languages (e.g. SQL) are designed for solving specific types of problem (as they provide domain specific features).</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new"><b>Advantages of low-level languages / Disadvantages of high-level languages</b></p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Not all low-level languages need to be translated, all high-level languages do.</p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level language programs are likely to use less memory when executing.</p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level language programs may execute faster than (equivalent) high-level language programs.</p>\r\n<p class="indent1 m-t-0">&#149;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Low-level language programs can directly interact with / control hardware.</p>\r\n<p class="indent1new"><b>A.</b> Examples, e.g. <i>&#x201C;a program written in Python can be interpreted and executed on many types of processor&#x201D;.</i></p>\r\n<p class="indent1new"><b>A.</b> Points expressed the other way around.</p>\r\n<p class="mark">[6]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Over three-quarters of students gained at least half marks on this question.</p>\r\n<p class="indent1new">Some of the better responses clearly outlined the programming features and structures that are available in high-level languages that are not available in low-level languages. Level 1 responses often included vague statements such as &#x201C;high-level languages are user-friendly&#x201D; or &#x201C;low-level languages are close to the computer&#x2019;s hardware&#x201D; which do not show a clear understanding.</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': ''}, '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': ''}, 'QS17S24B': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">A company is using a newly-developed processor in its latest microwave oven.</p>\r\n<p class="indent1new">A software developer is writing the program to control the oven.</p>\r\n<p class="indent1new">The developer chose to use <b>assembly language</b> rather than a high-level language to write the program.</p>\r\n<p class="indent1new">Explain why the developer may have made this decision.</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 3 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 AO2 (analyse)</b></p>\r\n<p class="bottom">&nbsp;</p>\r\n<table class="data-table left1">\r\n\t<tr>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left"><b>Point</b></p></td>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left"><b>Expansion</b></p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left">There may not/probably is not an interpreter/compiler for the chip</p></td>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left">as it is bespoke / new</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left">As the chip is probably slow (<b>A</b>. low powered) / low in memory</p></td>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left">memory space needs to be used efficiently // code needs to be (time) efficient</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left">For an interpreted solution the chip would have to incorporate an interpreter</p></td>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left">which would increase the memory requirements // restrict the programmer to a specific language</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left">Platform dependence is not relevant</p></td>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left">since code will only run on one type of device</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left">(Translated) assembly language (solution) would (probably) be faster / more efficient</p></td>\r\n\t\t<td rowspan="3" class="col-12 vert-top"><p class="padded text-left">&nbsp;</p></td>\r\n\t</tr>\r\n\t<tr>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left">(Translated) assembly language (solution) would (probably) require less memory than high level code</p></td>\r\n\t</tr>\r\n\t\r\n\t<tr>\r\n\t\t<td class="col-12 vert-top"><p class="padded text-left">Assembly language (solution) provides for direct control of hardware <b>A</b>.&nbsp;by example <b>R</b>.&nbsp;registers</p></td>\r\n\t</tr>\r\n</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright"><b>Mark as follows:</b></p>\r\n<p class="indent1new indentright m-t-0"><b>1 mark</b> for each point or expansion <b>MAX 3</b> marks</p>\r\n<p class="indent1new indentright"><b>Point needed for expansion mark to be awarded.</b></p>\r\n<p class="mark">[3]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Many students demonstrated a lack of understanding of the reasons to choose assembly code over high level code. In some cases, this was a lack of understanding of the advantages, with &#8216;cheaper&#8217; and &#8216;harder to steal&#8217;, and &#8216;quicker to write/debug&#8217; being frequently asserted. A common confusion was that assembly code is quicker to translate. Whist this may well be correct, it is irrelevant in this scenario.</p>\r\n<p class="indent1new">On a more significant level, fundamental misconceptions were demonstrated with many students stating that assembly code is easier to understand, is universal and will run on any processor, and that it is more suitable for simple tasks whereas high level languages are only suitable for problem solving. The need to apply knowledge to specified scenarios is a skill which needs to be developed in the classroom.</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': ''}, 'QS16S209': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="questiona">(a)&nbsp;&nbsp;&nbsp;&nbsp; Some high-level languages are imperative. Explain the term imperative.</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">(2)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Explain the advantages and disadvantages of programming using imperative high-level languages compared with low-level 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="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">(c)&nbsp;&nbsp;&nbsp;&nbsp; A program written in a high-level language needs to be translated using either a compiler or an interpreter before it can be executed. Describe <b>two</b> differences between a compiler and an interpreter.</p>\r<p class="indent2new answer-toggle"><b>Difference 1:</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="indent2new answer-toggle"><b>Difference 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">(2)</p>\r<p class="mark">(Total 8 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="questiona">(a)&nbsp;&nbsp;&nbsp;&nbsp; <b>Marks are for AO1 (knowledge)</b></p>\r<p class="indent2new indentright5">Instructions are executed in a programmer-defined order // Imperative high level language programs define sequences of commands for the computer to perform;</p>\r<p class="indent2new indentright5 m-t-0">Imperative high level languages describe <i>how</i> to solve a problem (in terms of sequences of actions to be taken);</p>\r<p class="level">2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; <b>Marks are for AO1 (understanding)</b></p>\r<p class="indent2new indentright5 m-t-0">Programs written in a high-level language are machine independent / portable;</p>\r<p class="indent2new indentright5 m-t-0">People find it easier to debug high-level language programs;</p>\r<p class="indent2new indentright5 m-t-0">People find it easier to read/write/understand high-level language program code;</p>\r<p class="indent2new indentright5 m-t-0">High-level languages save time for programmers as they use fewer lines of program code;</p>\r<p class="indent2new indentright5 m-t-0">Programs written in a high-level language may not make best use of specific features of a particular processor;</p>\r<p class="indent2new indentright5 m-t-0">Programs written in a high-level language may not execute as quickly;</p>\r<p class="indent2new indentright5 m-t-0">Some programs cannot be (easily) written using a high-level language &#150; particularly some parts of a computer\'s operating system;</p>\r<p class="indent2new indentright5 m-t-0">Programs written in a high-level language may use more memory;</p>\r<p class="indent2new indentright5"><b>Max 4</b>\r<p class="indent2new indentright5"><b>Max 3</b> if all advantages of one type of language or all disadvantages of one type of language</p>\r<p class="level">4</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; <b>Marks are for AO1 (understanding)</b></p>\r<p class="indent2new indentright5">A compiler produces object/machine code (<b>A.</b> executable file) whilst an interpreter does not // once code has been compiled it does not (normally) need to be recompiled whilst an interpreter has to translate code every time a program is run // if using an interpreter it needs the source code each time it executes the program whereas a compiler only needs to use the source code once;</p>\r<p class="indent2new indentright5 m-t-0">A compiler translates the whole of the source code into object code (prior to execution) whilst an interpreter translates and executes line by line;</p>\r<p class="indent2new indentright5 m-t-0">The object code produced by a compiler will execute faster once it is compiled than interpreting the source code (every time the program is run);</p>\r<p class="indent2new indentright5 m-t-0">An interpreter can run (syntactically correct) parts of a program whilst there are syntax errors in other parts of it, which a compiler cannot;</p>\r<p class="indent2new indentright5 m-t-0"><b>Max 2</b></p>\r<p class="level">2</p>\r<p class="levelms">[8]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This question was about programming languages and program translators.</span></p>\r<p class="indent1new">Part (a) was the question that candidates found the most challenging on this exam paper, with very few providing any creditworthy explanation of what an imperative language is.</p>\r<p class="indent1new">Parts (b) and (c) were better answered, though a number of candidates got confused between high and low-level languages and gave the reverse of the correct answers.</p></h5>', 'notes': '', 'resources': ''}, 'QS16203': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="questiona">(a)&nbsp;&nbsp;&nbsp;&nbsp; Below is a list of different software classifications:</p>\r<p class="indent2">1.&nbsp;&nbsp;&nbsp;&nbsp; General purpose application software</p>\r<p class="indent2 m-t-0">2.&nbsp;&nbsp;&nbsp;&nbsp; Utilities</p>\r<p class="indent2 m-t-0">3.&nbsp;&nbsp;&nbsp;&nbsp; Operating systems</p>\r<p class="indent2 m-t-0">4.&nbsp;&nbsp;&nbsp;&nbsp; Translators</p>\r<p class="indent2new">Complete each row of the following table with the number from the list above that represents the most appropriate software classification.</p>\r<p class="bottom">&nbsp;</p>\r<table class="data-table align1">\r\t<tr>\r\t\t<td class="col-6 vert-top"><p class="padded text-left m-l-2"><b>Software</b></p></td>\r\t\t<td class="col-6"><p class="padded"><b>Classification (number)</b></p></td>\r\t</tr>\r\t<tr>\r\t\t<td class="col-6"><p class="padded text-left m-l-2">Virus scanner</p></td>\r\t\t<td class="col-6"><p class="padded">&nbsp;</p></td>\r\t</tr>\r\t<tr>\r\t\t<td class="col-6"><p class="padded text-left m-l-2">Interpreter</p></td>\r\t\t<td class="col-6"><p class="padded">&nbsp;</p></td>\r\t</tr>\r\t<tr>\r\t\t<td class="col-6"><p class="padded text-left m-l-2">Spreadsheet</p></td>\r\t\t<td class="col-6"><p class="padded">&nbsp;</p></td>\r\t</tr>\r</table>\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; Another software classification is library programs.</p>\r<p class="indent2new">Explain the purpose of library programs.</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="indent1a">(c)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Explain what is meant by an imperative high level programming language.</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new 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="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Explain why translators are needed for high level programming languages.</p>\r<p class="indent3new answer-toggle">______________________________________________________________</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">(d)&nbsp;&nbsp;&nbsp;&nbsp; A company has software made for it.</p>\r<p class="indent2new">Name the classification of this type of software and suggest <b>one</b> advantage and <b>one</b> disadvantage of obtaining software in this way.</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">(3)</p>\r<p class="mark">(Total 9 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="questiona">(a)&nbsp;&nbsp;&nbsp;&nbsp;</p>\r<table class="data-table align1">\r\t<tr>\r\t\t<td class="col-7"><p class="padded text-left"><b>Software</b></p></td>\r\t\t<td class="col-7"><p class="padded"><b>Classification (number)</b></p></td>\r\t</tr>\r\t<tr>\r\t\t<td class="col-7"><p class="padded text-left">Virus scanner</p></td>\r\t\t<td class="col-7"><p class="padded">2</p><p class="padded"><b>A.</b> utilities</p></td>\r\t</tr>\r\t<tr>\r\t\t<td class="col-7"><p class="padded text-left">Interpreter</p></td>\r\t\t<td class="col-7"><p class="padded">4</p><p class="padded"><b>A.</b> translators</p></td>\r\t</tr>\r\t<tr>\r\t\t<td class="col-7"><p class="padded text-left">Spreadsheet</p></td>\r\t\t<td class="col-7"><p class="padded">1</p><p class="padded"><b>A.</b> general purpose (application software)</p></td>\r\t</tr>\r</table>\r<p class="indent2new indentright5"><b>1 mark</b> for any two correct rows</p>\r<p class="indent2new indentright5"><b>2 marks</b> for all 3 correct rows</p>\r<p class="level">2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; To allow sharing of run-time code across programs;</p>\r<p class="indent2new indentright5 m-t-0">To save memory as routines are only loaded when needed;</p>\r<p class="indent2new indentright5 m-t-0">To provide access to procedures/functions/subroutines when writing a program;</p>\r<p class="indent2new indentright5 m-t-0">To reduce amount of programming required // time taken to write program // allow code to be re-used;</p>\r<p class="level">MAX 1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1a indentright5">(c)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b>imperative:</b></p>\r<p class="indent3new indentright5 m-t-0">Follows a sequence of instructions provided by a programmer // instructions specify how to solve the problem;</p>\r<p class="indent3new indentright5"><b>high-level:</b></p>\r<p class="indent3new indentright5 m-t-0">A language that uses English-like keywords // one instruction maps to several machine code instructions // has structures/support for assignment/iteration/selection/subroutines // support for a variety of data structures;</p>\r<p class="level">2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2 indentright5">(ii)&nbsp;&nbsp;&nbsp;&nbsp; To convert the source code/program into object/machine code which can be executed;</p>\r<p class="indent3new indentright5 m-t-0">Processor cannot directly execute source code;</p>\r<p class="indent3new indentright5 m-t-0">Interpret the statements of the source code/program/high level language and perform the actions they describe;</p>\r<p class="level">MAX 1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(d)&nbsp;&nbsp;&nbsp;&nbsp; <b>Software:</b></p>\r<p class="indent2new indentright5 m-t-0">Bespoke (software);</p>\r<p class="indent2new indentright5"><b>Advantage (MAX 1):</b></p>\r<p class="indent2new indentright5 m-t-0">It is made to meet the requirements of the company;</p>\r<p class="indent2new indentright5 m-t-0">It can be made to fit in with existing software/hardware;</p>\r<p class="indent2new indentright5"><b>Disadvantage (MAX 1):</b></p>\r<p class="indent2new indentright5 m-t-0">It takes time to develop;</p>\r<p class="indent2new indentright5 m-t-0">It is more expensive as the company has to cover all costs;</p>\r<p class="indent2new indentright5 m-t-0"><b>NE</b> more expensive</p>\r<p class="indent2new indentright5 m-t-0">It is more likely to contain bugs;</p>\r<p class="indent2new indentright5 m-t-0">There is a lack of third party support;</p>\r<p class="level">3</p>\r<p class="levelms">[9]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">The majority of students secured all of the marks for question part (a) and it was pleasing to see more correct responses to part (b) than on a previous COMP2 paper when this topic was asked about. Many students recognised that library programs provide subroutines for a programmer to call and make use of during the development of their own code.</span></p>\r<p class="indent1new">Securing the marks for part (c) proved to be more challenging than expected. Students struggled to explain precisely what is meant by an imperative high level programming language. Weaker students made an attempt at describing the use of English-like keywords but often just mentioned that the code is written in English and failed to secure the mark. Explaining the term imperative was often missed but it was pleasing to see ideas such as \'following a programmer defined sequence\' from more able students.</p>\r<p class="indent1new">Part (d) was answered well by the majority of students. They were able to identify that it was bespoke software and pointed out how this can be designed to meet the exact requirements of the company. Securing the disadvantage mark was harder but it was pleasing to see some students clearly putting across the point that as there was only one customer they would have to cover all of the production costs making the software likely to be more expensive. Just stating that it would be \'more expensive\' was not enough to secure the mark.</p></h5>', 'notes': '', 'resources': ''}, 'QSPA206': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>Figure 1</b> shows the structure of an example machine code instruction, taken from the instruction set of a particular processor.</p>\r<p class="graph"><b>Figure 1</b></p>\r<!--\r<p class="bottom">&nbsp;</p>\r<table class=MsoTableGrid cellspacing=0 cellpadding=5 style=\'margin-top:0cm; margin-left:100.0pt;border-collapse:collapse;\'> \r\t<tr>\r\t\t<td colspan=7 valign=top style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Opcode</b></p></td>\r\t\t<td colspan=8 rowspan=2 valign=top style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Operand(s)</b></p></td>\r\t</tr>\r\t<tr>\r\t\t<td colspan=6 valign=top style=\'border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Basic Machine<br/>Operation</b></p></td>\r\t\t<td valign=top style=\'width:50.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Addressing Mode</b></p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>0</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>1</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>1</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>0</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>1</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>0</p></td>\r\t\t<td valign=top style=\'width:50.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>1</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>0</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>0</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>1</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>0</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>1</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>0</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>1</p></td>\r\t\t<td valign=top style=\'width:5.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>1</p></td>\r\t</tr>\r</table>--></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="graph"><img src=\'AA_COM/QSPA206_files_Q/img01.png\'>&nbsp;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(a) &nbsp;&nbsp;&nbsp;&nbsp;How many different basic machine operations could be supported by the instruction set of the processor used in the example in <b>Figure 1</b>?</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="indent1new"><b>Figure 2</b> shows an assembly language program together with the contents of a section of the main memory of the computer that the program will be executed on.</p>\r<p class="indent1new">The assembly language instruction set that has been used to write the program is listed in <b>Table&nbsp;1</b>.The lines of the assembly language program have been numbered to help you answer question parts (<b>b</b>) to (<b>d</b>)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="graph"><b>Figure 2</b></p>\r<p class="bottom">&nbsp;</p>\r<table class=MsoTableGrid cellspacing=0 cellpadding=5 style=\'margin-top:0cm; margin-left:60.0pt;border-collapse:collapse;\'> \r\t<tr>\r\t\t<td valign=top style=\'width:40.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><b>Line</b></p></td>\r\t\t<td valign=top style=\'width:140.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 15.4pt;\'><p class=boxl><b>Command</b></p></td>\r\t\t<td valign=top style=\'width:30.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>&nbsp;</p></td>\r\t\t<td rowspan=3 valign=center style=\'width:70.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Memory</b><br/><b>Address</b><br/><b>(in decimal)</b></p></td>\r\t\t<td rowspan=3 valign=center style=\'width:70.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Main&nbsp;Memory</b><br/><b>Contents</b><br/><b>(in decimal)</b></p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign=top style=\'width:40.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>1</b></p></td>\r\t\t<td valign=top style=\'width:140.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 15.4pt;\'><p class=boxl><span class="comp">LDR&nbsp;&nbsp;R2,&nbsp;&nbsp;&nbsp;#100</span></p></td>\r\t\t<td valign=top style=\'width:30.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>&nbsp;</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign=top style=\'width:40.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>2</b></p></td>\r\t\t<td valign=top style=\'width:140.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 15.4pt;\'><p class=boxl><span class="comp">LDR&nbsp;&nbsp;R3,&nbsp;&nbsp;&nbsp;101</span></p></td>\r\t\t<td valign=top style=\'width:30.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>&nbsp;</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign=top style=\'width:40.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>3</b></p></td>\r\t\t<td valign=top style=\'width:140.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 15.4pt;\'><p class=boxl><span class="comp">ADD&nbsp;&nbsp;R2,&nbsp;&nbsp;&nbsp;R2,&nbsp;&nbsp;&nbsp;R3</span></p></td>\r\t\t<td valign=top style=\'width:30.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>&nbsp;</p></td>\r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><span class="comp">100</span></p></td>\r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><span class="comp">23</span></p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign=top style=\'width:40.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>4</b></p></td>\r\t\t<td valign=top style=\'width:140.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 15.4pt;\'><p class=boxl><span class="comp">LSL&nbsp;&nbsp;R3,&nbsp;&nbsp;&nbsp;R2,&nbsp;&nbsp;&nbsp;#1</span></p></td>\r\t\t<td valign=top style=\'width:30.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>&nbsp;</p></td>\r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><span class="comp">101</span></p></td>\r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><span class="comp">10</span></p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign=top style=\'width:40.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>5</b></p></td>\r\t\t<td valign=top style=\'width:140.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 15.4pt;\'><p class=boxl><span class="comp">HALT</span></p></td>\r\t\t<td valign=top style=\'width:30.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>&nbsp;</p></td>\r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><span class="comp">102</span></p></td>\r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><span class="comp">62</span></p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign=top style=\'width:40.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>&nbsp;</p></td>\r\t\t<td valign=top style=\'width:140.0pt;border:none;padding:0cm 5.4pt 0cm 15.4pt;\'><p class=box>&nbsp;</p></td>\r\t\t<td valign=top style=\'width:30.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>&nbsp;</p></td>\r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><span class="comp">103</span></p></td>\r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><span class="comp">18</span></p></td>\r\t</tr>\r</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b) &nbsp;&nbsp;&nbsp;&nbsp;What value will be stored in register <span class="comp">R2</span> immediately after the command in line 1 has been executed?</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 value will be stored in register <span class="comp">R2</span> immediately after the program has executed the commands from line 1 through to line 3?</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 value will be stored in register <span class="comp">R3</span> after the complete program has finished executing?</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="graph"><b>Table 1</b></p>\r<p class="bottom">&nbsp;</p>\r<table class=MsoTableGrid cellspacing=0 cellpadding=5 style=\'margin-top:0.0cm; margin-left:30.0pt;border-collapse:collapse;\'> \r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">LDR Rd, &lt;memory ref&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Load the value stored in the memory location specified by<br/><span class="comp">&lt;memory ref&gt;</span> into register <span class="comp">d</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">STR Rd, &lt;memory ref&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Store the value that is in register <span class="comp">d</span> into the memory location specified by <span class="comp">&lt;memory ref&gt;</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">ADD Rd, Rn, &lt;operand2&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Add the value specified in <span class="comp">&lt;operand2&gt;</span> to the value in register <span class="comp">n</span> and store the result in register <span class="comp">d</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">SUB Rd, Rn, &lt;operand2&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Subtract the value specified by <span class="comp">&lt;operand2&gt;</span> from the value in register <span class="comp">n</span> and store the result in register <span class="comp">d</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">MOV Rd, &lt;operand2&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Copy the value specified by <span class="comp">&lt;operand2&gt;</span> into register <span class="comp">d</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">CMP Rn, &lt;operand2&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Compare the value stored in register <span class="comp">n</span> with the value specified by <span class="comp">&lt;operand2&gt;</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">B &lt;label&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Always branch to the instruction at position <span class="comp">&lt;label&gt;</span> in the program.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">B&lt;condition&gt; &lt;label&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Conditionally branch to the instruction at position <span class="comp">&lt;label&gt;</span> in the program if the last comparison met the criteria specified by the <span class="comp">&lt;condition&gt;</span>. Possible values for <span class="comp">&lt;condition&gt;</span> and their meaning are:<br/>\r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;EQ: Equal to.\r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;NE: Not equal to.\r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;GT: Greater than.\r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;LT: Less than.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">AND Rd, Rn, &lt;operand2&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Perform a bitwise logical AND operation between the value in register <span class="comp">n</span> and the value specified by <span class="comp">&lt;operand2&gt;</span> and store the result in register <span class="comp">d</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">ORR Rd, Rn, &lt;operand2&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Perform a bitwise logical OR operation between the value in register <span class="comp">n</span> and the value specified by <span class="comp">&lt;operand2&gt;</span> and store the result in register <span class="comp">d</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">EOR Rd, Rn, &lt;operand2&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Perform a bitwise logical exclusive or (XOR) operation between the value in register <span class="comp">n</span> and the value specified by <span class="comp">&lt;operand2&gt;</span> and store the result in register <span class="comp">d</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">MVN Rd, &lt;operand2&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Perform a bitwise logical NOT operation on the value specified by <span class="comp">&lt;operand2&gt;</span> and store the result in register <span class="comp">d</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">LSL Rd, Rn, &lt;operand2&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Logically shift left the value stored in register <span class="comp">n</span> by the number of bits specified by <span class="comp">&lt;operand2&gt;</span> and store the result in register <span class="comp">d</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">LSR Rd, Rn, &lt;operand2&gt;</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Logically shift right the value stored in register <span class="comp">n</span> by the number of bits specified by <span class="comp">&lt;operand2&gt;</span> and store the result in register <span class="comp">d</span>.</p></td>\r\t</tr>\r\t<tr>\r\t\t<td valign="top" style=\'width:150.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">HALT</span></p></td>\r\t\t<td style=\'width:330.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl>Stops the execution of the program.</p></td>\r\t</tr>\r</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="graph"><b>Interpretation of <span class="comp">&#x003C;operand2&#x003E;</span></b></p>\r<p class="indent1new"><span class="comp">&#x003C;operand2&#x003E;</span> can be interpreted in two different ways, depending upon whether the first symbol is a <span class="comp">#</span> or an <span class="comp">R</span>:</p>\r<p class="indent1">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comp">#</span> - use the decimal value specified after the <span class="comp">#</span>, eg <span class="comp">#25</span> means use the decimal value 25.</p>\r<p class="indent1 m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="comp">Rm</span> - use the value stored in register <span class="comp">m</span>, eg <span class="comp">R6</span> means use the value stored in register 6.</p>\r<p class="indent1new">The available general purpose registers that the programmer can use are numbered 0 to 12.</p>\r<p class="indent1new">Programs written in a high-level language can be compiled or interpreted.</p>\r<p class="indent1new">Companies that develop computer programs to sell usually compile the final version of a program before distributing it to customers.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(e) &nbsp;&nbsp;&nbsp;&nbsp;Explain why the final version of a computer program is usually translated using a compiler.</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">(f) &nbsp;&nbsp;&nbsp;&nbsp;The JavaScript programming language can be used to write programs that are executed in a web browser on any Internet user&#x2019;s computer.</p>\r<p class="indent2new">Explain why programs written in the JavaScript language, to be executed in a web browser, 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="mark">(2)</p> \r<p class="mark">(Total 8 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;<b>Mark is for AO1 (understanding)</b></p>\r<p class="indent2new indentright m-t-0">64 / 2<sup>6</sup>;</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;<b>Mark is for AO2 (apply)</b></p>\r<p class="indent2new indentright m-t-0">100;</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;<b>Mark is for AO2 (apply)</b></p>\r<p class="indent2new indentright m-t-0">110;</p>\r<p class="indent2new indentright m-t-0"><b>A</b> The response given to question part (b) with 10 added on.</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;<b>Mark is for AO2 (apply)</b></p>\r<p class="indent2new indentright m-t-0">220;</p>\r<p class="indent2new indentright m-t-0"><b>A</b> The response given to question part (c) multiplied by 2.</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">(e) &nbsp;&nbsp;&nbsp;&nbsp;<b>All marks AO1 (understanding)</b></p>\r<p class="indent2new indentright m-t-0">So that source code cannot be accessed by users;</p>\r<p class="indent2new indentright m-t-0">So that it is more convenient for users to run it / / users do not need to have an interpreter;</p>\r<p class="indent2new indentright m-t-0">So that the program will execute more quickly;</p>\r<p class="indent2new indentright m-t-0"><b>Max 2</b></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">(f) &nbsp;&nbsp;&nbsp;&nbsp; <b>All marks AO1 (understanding)</b></p>\r<p class="indent2new indentright m-t-0"><b>1 mark:</b> Can\'t know what type of processor will be in user&#x2019;s computer / / Internet users have range of computers / devices with different processors; <b>A</b> References to just different types of computer / device rather than specifically processors</p>\r<p class="indent2new indentright m-t-0"><b>1 mark:</b> 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;</p>\r<p class="indent2new indentright m-t-0"><b>R</b> No compiler exists</p>\r<p class="levelms">2</p> \r<p class="mark">[8]</p></h5>', 'examinerreport': '', 'notes': '', 'resources': ''}, 'QS15202': {'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; First and second generation languages are known as low-level languages.</p>\r<p class="indent2new m-t-0">What is meant by the term low-level language?</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; Programs written using a high-level language are easier to maintain and understand than programs written in a low-level language.</p>\r<p class="indent2new">Describe <b>two</b> ways in which high-level languages can make this possible.</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">(2)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; A student new to programming has heard that some languages are compiled and others are interpreted, and that compilers and interpreters are both known as types of translator.</p>\r<p class="indent2new">Describe to this student:</p>\r<p class="indent2">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the role of a translator</p>\r<p class="indent2 m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the differences between a compiler and an interpreter</p>\r<p class="indent2 m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a situation where you would use a compiler</p>\r<p class="indent2 m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a situation where you would use an interpreter.</p>\r<p class="indent2new">In your answer, you will be assessed on your ability to use good English and to organise your answer clearly in complete sentences, using specialist vocabulary where appropriate.</p>\r<p class="indent2new answer-toggle">Use the space provided to write your answer to this question</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="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="mark">(6)</p> \r<p class="mark">(Total 9 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; A language that is close to the hardware;</p>\r<p class="indent2new indentright">Language that interacts with basic hardware / tasks of the computer;</p>\r<p class="indent2new indentright">Commands map directly / very closely to processor instruction set;</p>\r<p class="indent2new indentright">One instruction maps to one processor instruction;</p>\r<p class="indent2new indentright">A processor / architecture dependent language // language that is not portable;</p>\r<p class="indent2new indentright"><b>NE</b> machine code or assembly language<br/><b>R</b> directly executable by the processor</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">(b) &nbsp;&nbsp;&nbsp;&nbsp;HLL allows several machine code statements to be replaced by one high level statement // HLL program shorter that its low level equivalent;</p>\r<p class="indent2new indentright">HLL program expressed in language that is human-oriented / uses English-like keywords;<br/><b>A</b> structured English<br/><b>NE</b> written in English / closer to English</p>\r<p class="indent2new indentright">Allow programmers to:<br/>use meaningful identifier names;<br/>use procedures / functions / subroutines / libraries;<br/>use programming structures such as IF THEN ELSE / REPEAT UNTIL;<br/>use data structures such as arrays / lists;</p>\r<p class="indent2new indentright">Easier to see logic / structure of program / what is to be executed;<br/><b>A</b> easier to spot / check errors // easier to debug;</p>\r<p class="indent2new indentright">Can maintain one codebase for use across multiple architectures;</p>\r<p class="levelms">MAX 2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1a indentright">(c) &nbsp;&nbsp;&nbsp;&nbsp;&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The role of a translator is to take program code / source code and to translate it into a low-level / machine code</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A compiler takes the whole source code and translates it (into machine code / object code)</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compiled code will execute more quickly</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Produces an executable file // no need for compiler to be distributed with program // no need to distribute source code to execute program</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An interpreter works through / translates / recognises program source code line-by-line</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Interpreters call routines built into the interpreter to execute commands</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Interpreting code is slower than running compiled code</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Can run (parts of) a program using an interpreter even if it contains syntax errors</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source code is required for the program to be interpreted // when running interpreted code the interpreter is always required</p>\r<p class="indent2new indentright"><b>Situations (MAX 1 each for compiler and interpreter)</b></p>\r<p class="indent2new indentright m-t-0">Compiler:</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;So that source code cannot be accessed by users</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When creating an executable file for distribution</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Where speed of execution is important</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Where targeting a device with a small amount of memory</p>\r<p class="indent2new indentright">Interpreter:</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;To allow execution on a wide range of processors</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When prototyping and testing / debugging code</p>\r<p class="indent2 indentright m-t-0">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;When no compiler yet exists for the processor</p>\r<p class="indent2new indentright m-t-0"><b>A</b>  (example of) building a web-application<br/>How to award marks:</p>\r<p class="indent2new indentright"><b>Mark Bands and Description</b></p>\r<p class="indent2new indentright"><i>To achieve a mark in this band, candidates must meet the subject criterion (SUB) and all 5 of the quality of written communication criteria (QWCx).</i></p>\r<p class="indent2 indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>SUB</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Candidate has made at least five mark-worthy points and covers both interpreter and compiler with a valid situation for at least one.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC1</i>&nbsp;&nbsp;Text is legible.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC2</i>&nbsp;&nbsp;There are few, if any, errors of spelling, punctuation and grammar. Meaning is clear.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC3</i>&nbsp;&nbsp;The candidate has selected and used a form and style of writing appropriate to the purpose and has expressed ideas clearly and fluently.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC4</i>&nbsp;&nbsp;Sentences (and paragraphs) follow on from one another clearly and coherently.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC5</i>&nbsp;&nbsp;Appropriate specialist vocabulary has been used.</p>\r<p class="levelms">5-6</p>\r<p class="indent2new indentright m-t-0"><i>To achieve a mark in this band, candidates must meet the subject criterion (SUB) and 4 of the 5 quality of written communication criteria (QWCx).</i></p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>SUB</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Candidate has made at least three mark-worthy points and covers both compiler and interpreter.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC1</i>&nbsp;&nbsp;Text is legible.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC2</i>&nbsp;&nbsp;There may be occasional errors of spelling, punctuation and grammar. Meaning is clear.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC3</i>&nbsp;&nbsp;The candidate has, in the main, used a form and style of writing appropriate to the purpose, with occasional lapses. The candidate has expressed ideas clearly and reasonably fluently.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC4</i>&nbsp;&nbsp;The candidate has used well-linked sentences (and paragraphs).</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC5</i>&nbsp;&nbsp;Appropriate specialist vocabulary has been used.</p>\r<p class="levelms">3-4</p>\r<p class="indent2new indentright m-t-0"><i>To achieve a mark in this band, candidates must meet the subject criterion (SUB) and 3 of the 5 quality of written communication criteria (QWCx).</i></p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>SUB</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Candidate has made a small number of relevant points.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC1</i>&nbsp;&nbsp;Most of the text is legible.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC2</i>&nbsp;&nbsp;There may be some errors of spelling, punctuation and grammar but it should still be possible to understand most of the response.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC3</i>&nbsp;&nbsp;The candidate has used a form and style of writing which has many deficiencies. Ideas are not always clearly expressed.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC4</i>&nbsp;&nbsp;Sentences (and paragraphs) may not always be well-connected.</p>\r<p class="indent2new indentright" style=\'margin-top:0cm;margin-left:3.5cm;text-indent:-1.5cm\'><i>QWC5</i>&nbsp;&nbsp;Specialist vocabulary has been used inappropriately or not at all.</p>\r<p class="levelms">1-2</p>\r<p class="indent2new indentright m-t-0">Candidate has made no relevant points.</p>\r<p class="levelms">0</p>\r<p class="indent2new indentright">Note: Even if English is perfect, candidates can only get marks for the points made at the top of the mark scheme for this question.</p>\r<p class="indent2new indentright">If a candidate meets the subject criterion in a band but does not meet the quality of written communication criteria then drop mark by one band, providing that at least 4 of the quality of language criteria are met in the lower band. If 4 criteria are not met then drop by two bands.</p>\r<p class="levelms">MAX 6</p> \r<p class="mark">[9]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1new m-t-0">This question was looking at generations of programming languages and the concept of a translator. Whilst a lot of students could describe low-level languages as &#x2018;machine code and assembly code&#x2019; this was not enough to secure a mark. It was pleasing to see answers pointing out that they are specific to a processor type.</p>\r<p class="indent1new">Describing the benefits of higher level languages has been asked before and the majority of students picked up a mark. Good answers pointed out some of the features of HLL such as procedures, functions and libraries. It was pleasing to see that students could point out that you could have one program and then use it on different architectures.</p>\r<p class="indent1new">Some students are still providing answers for HLL programs in the form &#x2018;written in English&#x2019; which is not creditworthy but those that could identify that the syntax, commands or keywords would be in English did get rewarded with a mark.</p>\r<p class="indent1new">Part (c) was based around the topic of translators and asked students to describe the differences between compilers and interpreters. Students who had a sound grasp of this area scored highly and could point out the key features of compilers and interpreters alongside being able to provide a situation where they would be used.</p>\r<p class="indent1new">It was evident from looking at students&#x2019; answers that there is also some confusion over this topic area. A group of students thought that it was the length of the code that would determine whether you should use a compiler or an interpreter. There was also confusion over the idea of error checking with a group of students assuming that an interpreter was better as it checked line by line or was a better translator as it was slower. A group of students presented the idea that a compiler would translate to a low-level language but an interpreter would translate to a high-level language.</p>\r<p class="indent1new">The idea of one-to-one for low-level languages and one-to-many for high-level languages was presented by students in answering these question parts but was only rewarded with a mark if a student explained a bit further. For example, an answer of the form &#x2018;a high-level language is one to many&#x2019; did not secure a mark unless the student explained what this actually means.</p></h5>', 'notes': '', 'resources': ''}, 'QS14201': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1new m-t-0">The diagram below shows the classifications of various types of software used on  a computer system and some examples of these types.</span></p>\r<p class="indent1"><img src="AA_COM/QS14201_files_Q/img01.png"/>&nbsp;</p>\r<p class="indent1">(a) &nbsp;&nbsp;&nbsp;&nbsp;Complete the diagram by suggesting labels for the boxes numbered <b>1</b> to <b>4</b> in the diagram.</p>\r<p class="indent2new answer-toggle">1. _________________________________________________________________</p>\r<p class="indent2new answer-toggle">2. _________________________________________________________________</p>\r<p class="indent2new answer-toggle">3. _________________________________________________________________</p>\r<p class="indent2new answer-toggle">4. _________________________________________________________________</p>\r<p class="mark">(4)</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;Machine code is the first generation of programming language.</p>\r<p class="indent3new">What is the second generation of programming language?</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; A program written in a second generation programming language has been loaded into a computer. In this form it cannot be directly executed on this computer.</p>\r<p class="indent3new">What has to be done to make an executable form of the program, which can be directly executed by this computer, and what would be used, typically, to do this?</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new 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="indent2">(iii)&nbsp;&nbsp;&nbsp;&nbsp; A programmer then finds that when the executable form of the program is transferred unaltered to another computer, the program does not run and an error message is displayed.</p>\r<p class="indent3new">Why might the executable form of the program not be able to run on this computer?</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="mark">(1)</p> \r<p class="mark">(Total 8 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 m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;special purpose (application software);</span></p>\r<p class="indent3 indentright m-t-0">&nbsp;&nbsp;<b>A</b> specific purpose</p>\r<p class="indent3 indentright m-t-0">&nbsp;&nbsp;<b>R</b> special (software) / specialist (software)</p>\r<p class="indent2">2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;word processor / / spreadsheet / /</p>\r<p class="indent3 indentright m-t-0">&nbsp;&nbsp;presentation software / program / / database;</p>\r<p class="indent3 indentright m-t-0">&nbsp;&nbsp;<b>A</b> any other sensible answer</p>\r<p class="indent3 indentright m-t-0">&nbsp;&nbsp;<b>R</b> (web) browser</p>\r<p class="indent3 indentright m-t-0">&nbsp;&nbsp;<b>R</b> text editor</p>\r<p class="indent2">3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;translator (software / program);</p>\r<p class="indent3 indentright m-t-0">&nbsp;&nbsp;<b>A</b> translating / translation</p>\r<p class="indent2">4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;utility (software / program);</p>\r<p class="indent2new indentright"><b>R</b> just trade name of a specific piece of software unless used as an example (ie MS Word)</p>\r<p class="levelms">4</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;assembly (language);</p>\r<p class="indent3 indentright m-t-0"><b>A</b> assembly code</p>\r<p class="indent3new indentright m-t-0"><b>R</b> 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;has to be translated into <u>machine code</u> / / each assembly language instruction will be translated into <u>machine code</u> equivalent;</p>\r<p class="indent3new indentright">by an assembler;</p>\r<p class="indent3new indentright m-t-0"><b>A</b> converted for translated</p>\r<p class="indent3 indentright m-t-0"><b>A</b> first generation for machine code</p>\r<p class="levelms">2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2 indentright">(iii)&nbsp;&nbsp;&nbsp;&nbsp;Because it does not have the same processor (type) / / the instruction set is different / / different architecture / platform;</p>\r<p class="indent3new indentright">(Assembled / linked for a) different operating system;</p>\r<p class="indent3 indentright m-t-0"><b>NE</b> operating software</p>\r<p class="indent3new indentright">The program refers to a memory address that does not exist on this computer / / relocatable code used but addressing system on new machine different;</p>\r<p class="indent3new indentright">not enough memory space;</p>\r<p class="indent3 indentright m-t-0">required peripherals are not available;</p>\r<p class="indent3 indentright m-t-0">required <u>library</u> (code / program) missing;</p>\r<p class="levelms">MAX 1</p> \r<p class="mark">[8]</p></h5>', 'examinerreport': '<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;In this part , candidates were expected to complete a figure representing the classifications of various types of software. Over half of the candidates achieved three or more marks for this part. Candidates should be reminded that answers such as \'Microsoft Word document\' will not be accepted as generic terms such as word processor are required. The most challenging item for candidates to identify was translator software.</p>\r<p class="indent1">(b) &nbsp;&nbsp;&nbsp;&nbsp;This part was well tackled with a good number of candidates securing all of the marks. For part (i) a few candidates provided the answer \'assembler\' which was not accepted as the name for the second generation of programming language. The majority of candidates either answered with assembly code or assembly language which both secured the mark. Part (ii) was also generally well known, but there was confusion over what would be used to translate the assembly code into machine code. Most candidates secured at least one mark, but if they then discussed compiler or interpreters they did not secure the second mark which was for mentioning assembler. Part (iii) was found to be slightly more challenging and around 40% of candidates secured the mark. Good answers talked about differences between processors or the architecture of machines with a few including detailed examples. Weaker responses demonstrated some confusion over what the meaning of executable and discussed problems in the actual program itself, for example a bug in the code.</p></h5>', 'notes': '', 'resources': ''}, 'QS13201': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">For each problem in the table below, place a tick in the appropriate box to indicate the generation of programming language best suited to developing a solution to the problem.</span></p>\r<p class="indent1new">Do <b>not</b> tick more than one box in each row.</p>\r<table class=MsoTableGrid cellspacing=0 cellpadding=5 style=\'margin-left:30.0pt;border-collapse:collapse;\'> \r\t<tr>\r\t\t<td style=\'width:300.0pt;border:none;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>&nbsp;</p></td>\r\t\t<td colspan="3" style=\'width:90.0pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt\'><p class=box>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>Generation</b></p></td> \r\t</tr> \r\t<tr>\r\t\t<td style=\'width:300.0pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt\'><p class=box><b>Problem</b></p></td>\r\t\t<td style=\'width:30.0pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt\'><p class=box><b>1<sup class="xsmall">st</sup></b></p></td> \r\t\t<td style=\'width:30.0pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt\'><p class=box><b>2<sup class="xsmall">nd</sup></b></p></td>\r\t\t<td style=\'width:30.0pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt\'><p class=box><b>4<sup class="xsmall">th</sup></b></p></td>\r\t</tr> \r\t<tr>\r\t\t<td style=\'width:300.0pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt\'><p class=boxl>Developing a diagnosis program for medical symptoms</p></td>\r\t\t<td style=\'width:30.0pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt\'><p class=box>&nbsp;</p></td>\r\t\t<td style=\'width:30.0pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt\'><p class=box>&nbsp;</p></td>\r\t\t<td style=\'width:30.0pt;border:solid windowtext 1.0pt;padding:0.2cm 5.4pt 0.2cm 5.4pt\'><p class=box>&nbsp;</p></td> \r\t</tr> \r\t<tr>\r\t\t<td style=\'width:300.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=boxl>Developing a program for an embedded microprocessor for a washing machine</p></td>\r\t\t<td style=\'width:30.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>&nbsp;</p></td>\r\t\t<td style=\'width:30.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>&nbsp;</p></td>\r\t\t<td style=\'width:30.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>&nbsp;</p></td> \r\t</tr> \r</table>\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">First row tick in \'4<sup class="xsmall">th</sup>\' column;<br/>Second row tick in \'2<sup class="xsmall">nd</sup>\' column;</span></p>\r<p class="indent1new indentright m-t-0"><b>A</b> Other symbols instead of ticks<br/><b>R</b> Responses where more than one box is ticked on the same line</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">This question asked students to identify the generations of programming language that would most likely be used to develop solutions for two different scenarios. It was pleasing to see the majority of students identify that a 4<sup class="xsmall">th</sup> generation language would be most suited for a medical diagnosis solution. The embedded microprocessor for a washing machine had a large amount of students identifying the correct answer of 2<sup class="xsmall">nd</sup> generation but quite a few indicated that a solution would be developed using a 1<sup class="xsmall">st</sup> generation language. It is unlikely that a solution would be written in machine code if an assembly language were available.</h5>', 'notes': '', 'resources': ''}, 'QS13204': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">A school robotics club has recently purchased a robotics kit after the teacher in charge saw an advert in a magazine. The advert is reproduced below.</span></p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="bottom">&nbsp;</p>\r<table class=MsoTableGrid cellspacing=0 cellpadding=5 style=\'margin-left:30.0pt;border-collapse:collapse;\'> \r\t<tr>\r\t\t<td style=\'width:440.0pt;border-top:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;border-bottom:solid windowtext 0.0pt;border-left:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=boxl><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\'font-size:125%;font-family:Arial;\'>RoboEddy - a new educational robot</span></b></p></td>\r\t</tr>\r\t<tr>\r\t\t<td style=\'width:440.0pt;border-top:solid windowtext 0.0pt;border-right:solid windowtext 1.0pt;border-bottom:solid windowtext 0.0pt;border-left:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=boxl><b>Specification</b><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>Hardware</b></i><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;500 Mhz processor<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;32 MB RAM<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4 timers<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wi-Fi communications via WLAN 802.11g radio<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dual H-bridge motor driver</p></td>\r\t</tr>\r\t<tr>\r\t\t<td style=\'width:440.0pt;border-top:solid windowtext 0.0pt;border-right:solid windowtext 1.0pt;border-bottom:solid windowtext 0.0pt;border-left:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=boxl>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<i><b>Software</b></i><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Built in interpreter for the high level language RobotC<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Directly run assembly code<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XMODEM protocol for reliable file transfer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Support for various analogue and digital sensors</p></td>\r\t</tr>  \r\t<tr>\r\t\t<td style=\'width:440.0pt;border-top:solid windowtext 0.0pt;border-right:solid windowtext 1.0pt;border-bottom:solid windowtext 1.0pt;border-left:solid windowtext 1.0pt;padding:0.4cm 5.4pt 0.2cm 5.4pt\'><p class=box><br/><img align="left" src="AA_COM/QS13204_files_Q/img01.png"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img align="right" src="AA_COM/QS13204_files_Q/img02.png"/></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; Using the XMODEM protocol, students at the robotics club can copy a RobotC program prepared on a desktop computer to the robot.</p>\r<p class="indent2new">What is meant by the term <i>protocol</i>?</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; The RobotC program that has been copied to the robot can be executed by the built-in interpreter.</p>\r<p class="indent2new">How does a high level language interpreter work?</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; The robot processor is different in some ways from a processor in a desktop computer, but it still follows the stored program concept.</p>\r<p class="indent2new">What is meant by the term <i>stored program concept</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">(3)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(d)&nbsp;&nbsp;&nbsp;&nbsp; As well as using RobotC, it is also possible to program the robot using assembly language.</p>\r<p class="indent2new">The motor driver uses memory locations to store the current speed of each motor. The left motor speed is stored in memory location <span class="comp">21</span> and the right motor speed is stored in memory location <span class="comp">22</span>.</p>\r<p class="indent2new">The following set of three assembly language instructions can be used to take basic control of the motors:</p>\r<p class="indent2new"><span class="comp">LOAD XX</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\t - load a value from memory location XX into the accumulator</p>\r<p class="indent2new"><span class="comp">ADD XX</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - add the value stored in memory location XX to the accumulator</p>\r<p class="indent2new"><span class="comp">STORE XX</span>&nbsp;&nbsp;&nbsp;&nbsp; - store the value in the accumulator in memory location XX</p>\r<p class="indent2new">Selecting from the set of three instructions above, write a sequence of instructions that will swap the current left motor speed with the current right motor speed. Your program may use memory location <span class="comp">23</span> for temporary storage.</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">(3)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(e)&nbsp;&nbsp;&nbsp;&nbsp; The students develop a program that can sort coloured balls into piles but it is found that the program is not very effective.</p>\r<p class="indent2new">With regards to touch and vision, state <b>three</b> factors why a robot may find a task, such as sorting coloured balls, a hard task whereas for a 4-year-old child it is a relatively easy one.</p>\r<p class="indent2new answer-toggle">Factor 1 ____________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">Factor 2 ____________________________________________________________ </p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="indent2new answer-toggle">Factor 3 ____________________________________________________________</p>\r<p class="indent2new answer-toggle">___________________________________________________________________</p>\r<p class="mark">(3)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(f)&nbsp;&nbsp;&nbsp;&nbsp;The robot identifies the colour of the balls using a digital still camera component.\r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Describe the principles of operation of a digital still camera.</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="mark">(3)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The digital still camera component can take high resolution images but the students have chosen to program it to take low resolution images instead.</p>\r<p class="indent3new">Give a reason why the students might have only used a low resolution.</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="mark">(1)</p> \r<p class="mark">(Total 16 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 m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; A set of rules / regulations (to allow communication between devices) // set of agreed signals / codes for data exchange;</p>\r<p class="indent2new indentright m-t-0"><b>NE</b> a rule // a regulation // a signal // a code<br/><b>NE</b> instruction(s)</p>\r<p class="levelms">1</p> \r<p class="indent1 indentright">(b)&nbsp;&nbsp;&nbsp;&nbsp; Analyses statement by statement each line of source code</p>\r<p class="indent2new indentright m-t-0"><b>A</b> runs / translates / executes line by line<br/><b>R</b> compiles (line by line)</p>\r<p class="indent2new indentright">Calls routines to carry out each instruction / statement</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">(c)&nbsp;&nbsp;&nbsp;&nbsp; Instructions / programs stored (with data) in main memory; <b>A</b> memory // RAM</p>\r<p class="indent2new indentright">Program run by fetching,  (decoding and executing) <u>instructions</u> <br>(from main memory)* in sequence;</p> \r<p class="indent2new indentright">Program can be replaced by loading another program into (main) memory</p>\r<p class="indent2new indentright">Contents of a (main) memory location can be interpreted as either an instruction or data; </p>\r<p class="indent2new indentright">* = This mark can be awarded without the explicit reference to main memory if main memory has already been mentioned elsewhere in the response.</p>\r<p class="indent2new indentright">Otherwise, the answer must make clear that the instructions are coming from the main memory to get this mark.</p>\r<p class="levelms">3</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(d)&nbsp;&nbsp;&nbsp;&nbsp; LOAD \t21<br/>STORE \t23</p>\r<p class="indent2new indentright">LOAD \t22<br/>STORE \t21</p>\r<p class="indent2new indentright">LOAD \t23<br/>STORE \t22</p>\r<p class="indent2new indentright">1 mark for value from 21 stored into 23;<br/>1 mark for value from 22 being moved to 21;<br/>1 mark for value from 23 being moved to 22;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2new indentright"><b><i>Alternative :</i></b></p>\r<p class="indent2new indentright">LOAD \t22<br/>STORE \t23</p>\r<p class="indent2new indentright">LOAD \t21<br/>STORE \t22</p>\r<p class="indent2new indentright">LOAD \t23<br/>STORE \t21</p>\r<p class="indent2new indentright">1 mark for value from 22 stored into 23;<br/>1 mark for value from 21 being moved to 22;<br/>1 mark for value from 23 being moved to 21;</p>\r<p class="indent2new indentright m-t-0"><b>DPT</b> if a different temporary storage area is used</p>\r<p class="indent2new indentright m-t-0"><b>I</b> end of statement separators</p>\r<p class="indent2new indentright m-t-0"><b>Max 2 if the program does not fully work</b></p>\r<p class="levelms">3</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(e)&nbsp;&nbsp;&nbsp;&nbsp; Robots find it hard to adapt to changes in environment // Robots are unable to adapt to changes easily;</p>\r<p class="indent2new indentright">Robots find it hard to work with 3D vision;</p>\r<p class="indent2new indentright">Robots find it hard to detect edges between similar objects // robots find it hard to perform shape detection;</p>\r<p class="indent2new indentright">Robots find it hard to get feedback when gripping items;</p>\r<p class="indent2new indentright">Robots find it hard to pick up balls // ball difficult shape to grip // balls can roll away;</p>\r<p class="indent2new indentright">Robots have limited processing power // too many variables to deal with;</p>\r<p class="indent2new indentright">Programming for vision/grip is a complex problem;<br/>A child builds up experience of using touch / vision;</p>\r<p class="indent2new indentright"><b>A</b> Robot cannot recognise when it makes mistakes;<br/><b>A</b> Robot can\'t think for themselves // can&#x2019;t perform lateral thinking</p>\r<p class="levelms">Max 3</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1a indentright">(f) &nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Lens focuses) light / photons onto image sensor;<br/><b>R</b> if uses  &#x2018;reflection&#x2019;</p>\r<p class="indent3new indentright">Image sensor is a CMOS / CCD / photoelectric device;<br/>CCD used ADC to convert measurement of light intensity into binary;<br/>\rCMOS uses transistors to generate binary value;<br/>Image sensor converts light into discrete / electrical signals / binary;</p>\r<p class="indent3new indentright">Image is captured when the shutter is pressed;<br/>\rLarge pixels collect more electrons than small pixels and so produce better quality images;<br/>\rFirmware performs data processing to &#x201C;tidy up&#x201D; image;</p>\r<p class="indent3new indentright m-t-0">(Colour) filter used to generate data separately for Red, Green, Blue colour components;<br>\rAperture / shutter speed can be adjusted to cope with varying lighting conditions;\r<br/>Image is recorded as group / array of pixels // Image sensor consists of array of pixel (sensors)//etched into the image sensor&#x2019;s silicon are pixels;</p>\r<p class="indent3new indentright">Image data transferred to robot;<br/>Image data usually stored on solid-state disk;</p>\r<p class="levelms">Max 3</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;Robot has a low powered microprocessor;</p>\r<p class="indent3new indentright">Too much image data for the robot to process quickly // smaller resolution can be processed quicker;</p>\r<p class="indent3new indentright">A high resolution image has too much image data for the robot to store // low resolution uses less storage space;</p>\r<p class="indent3new indentright">Do not need high resolution to determine colour of balls;</p>\r<p class="indent3new indentright"><b>NE</b> allows more images to be stored</p>\r<p class="levelms">Max 1</p> \r<p class="mark">[16]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This question asked students about a variety of topics all linked back to the idea of robotics.\rOver half of all students correctly provided a definition for protocol and the clearer answers linked this to the idea of an agreed set of rules to allow communication between devices. Some students who failed to secure the mark answered along the lines of instructions and programs rather than the idea of communication.</span></p>\r<p class="indent1new">Part (b) asked students to identify how a HLL interpreter works. It was perhaps surprising that only half of the students managed to secure at least one mark on this question. It is clear that students got confused with the differences between a compiler and an interpreter with, some students answering this question by stating that it would &#x2018;compile&#x2019;. Answers that just stated that &#x2018;it would interpret code&#x2026;.&#x2019; also failed to secure marks. How an interpreter works beyond just translating code line by line is clearly not well understood and perhaps is an area centres could be encouraged to look at further.</p>\r<p class="indent1new">Part (c) asked about the stored program concept. As a topic included in the name of the examination unit it was surprising to see that less than half of the students secured a mark on this question part. Of the credit worthy points made, it was common to see the idea that instructions are stored in the main memory of a device. A few students then went on to correctly identify that instructions are then fetched and executed by the processor. It was pleasing to see some students then discuss that the stored program concept allows different programs to be switched in and out of memory providing the ability to run different programs.</p>\r<p class="indent1new">Unit 2 looks at only three machine code instructions and these were all given on the question paper in part (d) as a reminder to students. The correct answer only needed use of the LOAD and STORE instructions and over half of all students secured all three marks for this question part. A common mistake was to just see an answer of the form &#x2018;LOAD 21 ADD 22 STORE 23&#x2019; showing that perhaps a student did not understand what the question was really asking them to perform which was swapping two stored values around.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">Part (e) was a question looking at the differences between robotics and how we cope with situations. It was pleasing to see students identify aspects such as robots finding it hard to get feedback when gripping an item, and the problems in separating two similar coloured balls when they are obscuring each other. An answer that was rarely seen was the idea of a child building up experience over time and learning, compared to a robot just being programmed.</p>\r<p class="indent1new">Students continue to struggle with identifying the major principles of how hardware devices work and it was common that no marks were achieved when discussing the digital camera and nearly 10% left this question part blank. Better answers considered items such as the shutter opening and closing to capture the image and correctly identifying the use of a sensor with more able students stating that this would be a CMOS or CCD device. It was surprising to see a few candidates talk about the use of film to capture the image.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">The second part to the digital camera question was answered well and it was clear that students could link the idea of low resolution images to the needs of a robot. The simplest answer was to talk about the lower storage space required but the more able students linked this to the robot being able to process this amount of data faster or even that to identify colour differences would not require high resolution. Students should be encouraged to express their answers with direct reference to a question context, when appropriate, as this does allow them to demonstrate their understanding at a higher level.</p></h5>', 'notes': '', 'resources': ''}, 'QW13203': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">When writing a program, a programmer could use an assembly language, a high level imperative language or a high level declarative language.</span></p>\r<p class="indent1new">Outline the major differences in each of these <b>three</b> approaches. For each language type, your answer could include:</p>\r<p class="indent1">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;advantages and disadvantages compared to other language types</p>\r<p class="indent1">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;how the programmer would express their programs</p>\r<p class="indent1">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;what translation software could be used, if applicable</p>\r<p class="indent1">&#x2022;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a situation where it might be the most appropriate choice.</p>\r<p class="indent1new">In your answer you will be assessed on your ability to use good English and to organise your answer clearly in complete sentences, using specialist vocabulary where appropriate.</p>\r<p class="mark">(Total 8 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question"><b>General:</b></span></p>\r<p class="indent1new indentright">Idea of  &#x2018;quicker to write &#x2019; or  &#x2018;easier to write &#x2019; [ONE MARK]<br/>EXAMPLES:\r<br/>Assembly language is quicker to write than machine code  //\r<br/>HLL is quicker to write (compared to assembly code) //\r<br/>Assembly language is easier to write than machine code // HLL is easier to write (compared to assembly);\r<br/>\r[or opposites &#x2013; slower to write / harder to write]</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright">Idea of  &#x2018;understanding&#x2019; [ONE MARK]\r<br/><i>EXAMPLES:</i>\r<br/>Assembly code easier to understand than machine code // \r<br/>HLL easier to understand than assembly code;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright">Idea of  &#x2018;debugging&#x2019; [ONE MARK]\r<br/><i>EXAMPLES:</i>\r<br/>Assembly code easier to debug than machine code // HLL easier to debug (than assembly code);</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright"><b>Assembly language:</b>\r<br/>\rSolution expressed in terms of mnemonics;\r<br/><b>A</b> an example of a full instruction (operand and opcode)\r<br/>Easier to make mistakes in assembly language;\r<br/>\rInstruction composed of op-code and operand;\r<br/>Solution translated by using an assembler;\r<br/>Code is hard to port to other types of computer // machine-oriented languages;\r<br/>One assembly language instruction relates to one machine code instruction;\r<br/>\r<b><i>Situation</i></b> &#x2013; working on embedded hardware // need for small object code size // \r<br/>need for fast execution // need to access hardware / registers directly;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright"><b>Imperative language:</b>\r<br/>\rImperative is where the programmer gives the computer a sequence of instructions to perform;\rSelection / Sequence / Iteration constructs available;\r<br/><b>A</b> a full example of a selection / iteration construct\r<br/>Library of pre-written functions available;\r<br/>\rSolution translated by using a compiler / interpreter;\r<br/>A compiler might not be available for a specific processor (disadvantage);</p>\r<p class="indent1new indentright m-t-0"><b>Situation</b> &#x2013; anything sensible that would need a HLL (for example games programming)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright"><b>Declarative language:</b>\r<br/>\r(Certain languages) define what is to be computed rather than how the computation is to be done;\r<br/>(Certain languages) lack side effects;\r<br/>\r(Certain languages) have a clear link to mathematical logic;\r<br/>(Certain languages) express solutions in terms of facts and rules // rule-based;\r<br/>\r(Certain languages) will use an inference engine to work out the answer;\r<br/>The user asks a question of the system rather than provide an algorithm of the solution;\r<br/>\rUses back-chaining / backtracking;\r<br/>(Certain languages) express solutions using markup languages (such as HTML);\r<br/>(Certain languages) express solutions as CSS / regular expressions / (subset of) SQL;\r<br/><b>A</b> example code from part of a declarative program (ie an SQL statement)\r<br/><b><i>Situation</i></b> &#x2013; medical diagnosis // expert systems // database query // creating a web page / website;</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright"><b>Imperative and Declarative language:</b>\r<br/>\rSolution expressed  in terms of statements written using <u>English-like keywords</u>;\r<br/>\rCode easier than assembly language to port to other types of computer;\r<br/>One language statement maps to many (more than one) machine code instruction;</p>\r<p class="indent1new indentright">Note: accept any sensible situation for each area</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright"><b>Mark Bands and Description</b>\r<br/>\r<br/>\r<i>To achieve a mark in this band, candidates must meet the subject criterion (SUB) and all 5 of the quality of language criteria(QWCx).</i>\r<br/>\r<br/><i>SUB</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Candidate has covered all three language generations and made at least 7 \r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subject-related points.\r<br/><i>QWC1</i>&nbsp;&nbsp;Text is legible.\r<br/><i>QWC2</i>&nbsp;&nbsp;There are few, if any, errors of spelling, punctuation and grammar.\r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Meaning is clear.\r<br/><i>QWC3 </i>&nbsp;&nbsp;The candidate has selected and used a form and style of writing \r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;appropriate to the purpose and has expressed ideas clearly and<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fluently\r<br/>\r<i>QWC4</i>&nbsp;&nbsp;&nbsp;&nbsp;Sentences (and paragraphs) follow on from one another clearly and<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;coherently.\r<br/><i>QWC5</i>&nbsp;&nbsp;&nbsp;&nbsp;Appropriate specialist vocabulary has been used.</p>  \t\r<p class="levelms">7-8</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright"><i>To achieve a mark in this band, candidates must meet the subject criterion (SUB) and 4 of the 5 quality of language criteria (QWCx)</i>.</p>\r<p class="indent1new indentright"><i>SUB</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Candidate has covered at least 2 of the 3 generations and has made at \r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;least 3 subject-related points.\r<br/>\r<i>QWC1</i>&nbsp;&nbsp;Text is legible.\r<br/>\r<i>QWC2</i>&nbsp;&nbsp;There may be occasional errors of spelling, punctuation and grammar.\r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Meaning is clear.\r<br/>\r<i>QWC3</i>&nbsp;&nbsp;The candidate has, in the main, used a form and style of writing appropriate\r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to the purpose, with occasional lapses. The candidate has expressed \r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ideas clearly and reasonably fluently.\r<br/>\r<i>QWC4</i>&nbsp;&nbsp;The candidate has used well-linked sentences (and paragraphs).\r<br/></i>\r<i>QWC5</i>&nbsp;&nbsp;Appropriate specialist vocabulary has been used.</p>\r<p class="levelms">3-6</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright"><i>To achieve a mark in this band, candidates  must meet the subject criterion (SUB) and 4 of the 5 quality of language criteria (QWCx).</i></p>\r<p class="indent1new indentright"><i>SUB</i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Candidate may not have covered all generations, but has covered at least \r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;one of them. At least one valid point has been made.\r<br/>\r<i>QWC1</i>&nbsp;&nbsp;Most of the text is legible.\r<br/>\r<i>QWC2</i>&nbsp;&nbsp;There may be some errors of spelling, punctuation and grammar but it \r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;should still be possible to understand most of the response.\r<br/>\r<i>QWC3</i>&nbsp;&nbsp;The candidate has used a form and style of writing which has many\r<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;deficiencies. Ideas are not always clearly expressed.\r<br/>\r<i>QWC4</i>&nbsp;&nbsp;Sentences (and paragraphs) may not always be well-connected.\r<br/>\r<i>QWC5</i>&nbsp;&nbsp;Specialist vocabulary has been used inappropriately or not at all.</p>\r<p class="levelms">1-2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright">Candidate has made no relevant points.</p>\r<p class="levelms">0</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new indentright">Note: Even if English is perfect, candidates can only get marks for the points made at the top of the mark scheme for this question.</p>\r<p class="indent1new indentright">If a candidate meets the subject criterion in a band but does not meet the quality of written communication criteria then drop mark by one band, providing that at least 4 of the quality of language criteria are met in the lower band.\r<br/>If 4 criteria are not met then drop by two bands.</p>\r<p class="levelms">Max 8</p> \r<p class="mark">[8]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">It was pleasing to see how students had attempted this question which assessed quality of written communication. Fewer students either left this question un-attempted or gained zero marks than has been the case in the past.</span></p>\r<p class="indent1new">Students could generally identify which translation software would be used for the approaches given in the question. Students do, however, need to remember that generally translator software does not actually execute the programs but produces machine code that can then be executed by the machine. It was common for students to go on and compare an interpreter to a compiler but this was not requested by the question.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">Possibly due to the limited amount of assembly language on the specification, it was quite common to see students state that you would not be able to create a complicated program using assembly language. Some even quoted the &#x2018;fact&#x2019; that &#x2018;there are only three instructions available&#x2019;. Perhaps when teaching this part of the specification students should be shown slightly more assembly language than they are required to learn for the exam so that they appreciate that it is possible to produce complex programs using assembly language.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">When discussing high level imperative languages it was pleasing to see students pick up a variety of different marks from the available points. Students still need to be reminded that an answer of &#x2018;it is written in English&#x2019; will not secure a mark but it was noticeable that more are giving answers such as &#x2018;it uses English-like keywords&#x2019; or &#x2018;English-like syntax&#x2019;.</p>\r<p class="indent1new">Declarative programming was the least well-understood approach with quite a few students just linking declarative programming with the ability to declare variables. A few students, even though they had made seven or eight valid points, only secured six marks as the mark scheme limited them to this if they did not make any valid points for declarative languages. The more able students were able to point out that declarative languages do not state how to solve the problem and could give good examples of usage including writing SQL queries for a database system.</p></h5>', 'notes': '', 'resources': ''}, 'QS12204': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">There are many third generation programming languages available. Some of these can be classified as imperative high level languages.</span></p>\r<p class="indent1">(a) &nbsp;&nbsp;&nbsp;&nbsp;Explain what is meant by the term <i>imperative high level language</i>&#x003F;</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;Give <b>one</b> reason for there being so many third generation 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">(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;</span> <b>Imperative:</b><br/>Instructions are executed in a programmer defined sequence //<br/>Instructions specify how to solve the problem;</p>\r<p class="indent2new indentright m-t-0"><b>A</b> executed line by line (in sequence)</p>\r<p class="indent2new indentright"><b>HLL:</b><br/>A language that uses English-like/more meaningful keywords // one instruction maps to several machine code instructions // has structures for assignment/iteration/selection ;</p>\r<p class="indent2new indentright m-t-0"><b>NE</b> a language that is like English</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;Languages used for a specific problem type/domain;</p>\r<p class="indent2new indentright m-t-0"><b>A</b> different uses / purposes / tasks</p>\r<p class="indent2new indentright m-t-0">Access to specific data types;<br/>Providing different function libraries;<br/>Languages developed for specific hardware / devices ;<br/>Languages developed for visual applications / GUIs; <br/>Competition between different companies who develop languages;</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">This came out as a difficult question for which to secure marks.</span></p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">It was pleasing to see students identifying that, for an imperative language, the programmer defines how the problem is to be solved. A few students provided the answer for a declarative language &#x2013; a question that has been asked before and might demonstrate that students were just repeating a known answer from a past paper.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">The fact that a high level language might be easy to understand is not a definition of a high level language.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1new">Students struggled to secure the mark for part (b). The students who could identify that different languages might fit different problem domains generally also gave examples and this was pleasing to see. It was interesting that students thought that programming languages were generated for each problem and therefore implied that every problem had its own programming language. It was also common to see incorrect answers in which students wrote about 1<sup class="xsmall">st</sup> and 2<sup><span style=\'font-size: 7pt;\'>nd</sup> generation languages which was not the aim of the question.</span></p></h5>', 'notes': '', 'resources': ''}, 'QW12201': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">The diagram below shows program code developed using different generations of programming languages.</span></p>\r<p class="bottom">&nbsp;</p>\r<table class=MsoTableGrid cellspacing=0 cellpadding=5 style=\' margin-left:20pt;border-collapse:collapse;border:0\'> \r\t<tr>\r\t\t<td valign=top style=\'width:450.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><b>Program 1 (with comments)</b></p></td>\r\t<tr>\r\t\t<td valign=top style=\'width:450.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">//Calculate<br/>FirstVar := 47;<br/>SecondVar := FirstVar &#x002B; 2;<br/>FourthVar := ThirdVar;</span></p></td>  \r\t</tr> \r</table>\r<p class="bottom">&nbsp;</p>\r<table class=MsoTableGrid cellspacing=0 cellpadding=5 style=\' margin-left:20pt;border-collapse:collapse;border:0\'> \r\t<tr>\r\t\t<td valign=top style=\'width:450.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><b>Program 2 (with comments)</b></p></td>\r\t<tr>\r\t\t<td valign=top style=\'width:450.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=boxl><span class="comp">AB2F ; Load value 2F into accumulator<br/>BC5D ; Store contents of accumulator at address 5D<br/>E402 ; Add value 2 to accumulator<br/>BCFF ; Store contents of accumulator at address FF<br/>AC61 ; Load accumulator with contents of address 61<br/>BC4A ; Store contents of accumulator at address 4A</span></p></td>  \r\t</tr> \r</table>\r<p class="indent1">(a) &nbsp;&nbsp;&nbsp;&nbsp;What generation of programming language was used to write <b>Program 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;Machine code can be represented in different numeric formats.</p>\r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Which numeric format is used by the machine code program in <b>Program 2</b>&#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;State <b>one</b> reason for using this format.</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">(iii)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The machine for which <b>Program 2</b> has been written has limited addressing capability.</p>\r<p class="indent3new">What are the lowest and highest memory addresses that can be addressed by this machine&#x003F;</p>\r<p class="indent3new answer-toggle">Lowest address: ________________________________________________</p>\r<p class="indent3new answer-toggle">Highest address: ________________________________________________</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;Give an example of a situation for which it would be appropriate to write a program in a low level language (ie machine code or assembly language).</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">(d) &nbsp;&nbsp;&nbsp;&nbsp;Explain the differences between a compiler and an interpreter</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="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> \r<p class="mark">(Total 9 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> Third (generation) // 3;<br/><b>R</b> High Level Language</p>\r<p class="indent2new indentright"><i>Do not reject high level language if answer also contains \'3rd generation\' &#x2013; refer upwards for anything else.</i></p>\r<p class="levelms">1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1a indentright m-t-0">(b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hexadecimal // base 16;<br/><b>A</b> Hex</p>\r<p class="indent3new indentright"><i>Hex used in textbook</i></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;Take up less space when printing / viewing;<br/><b>NE</b> takes up less space<br/>Less likely to make errors;<br/>Op-codes are easier to recognize;<br/>Easier to understand;</p>\r<p class="indent3new indentright m-t-0">Less time taken when coding as more concise // quicker to program;</p>\r<p class="indent3new indentright m-t-0"><b>NE</b> easier to read <br><b>NE</b> quick to write</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">(iii)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lowest address : 00<br/> Highest address : FF</p>\r<p class="indent3new indentright"><i>BOTH correct to gain one mark;</i><br/><br><b>A</b> 0 for lowest address <br/><b>A</b> 255 for highest address</p>\r<p class="indent3new indentright m-t-0"><b>A</b> notation in front of hex &, &#x0024;</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;When coding for execution speed;<br/>When coding to minimize object code size;<br/>When writing code to control devices / directly access hardware;</p>\r<p class="indent2new indentright m-t-0"><b>A</b> When coding for a specific processor;<br/><b>A</b> by example if maps to one of the above</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">(d) &nbsp;&nbsp;&nbsp;&nbsp;A compiler produces object code/machine code;<br/>whilst an interpreter does not produce any object code;</p>\r<p class="indent2new indentright m-t-0">Interpreted code will execute slower;<br/>than executing the object code produced by a compiler;</p>\r<p class="indent2new indentright m-t-0">You always need the interpreter to interpret source code; <br/>but you do not need the compiler to execute a compiled program;</p>\r<p class="indent2new indentright m-t-0">Once compiled source code is no longer required to run the program;<br/>An interpreter always needs source code at runtime;</p>\r<p class="indent2new indentright m-t-0">Compiled code can only be executed on a machine with the same processor type / instruction set;<br/>Interpreted code is more portable;</p>\r<p class="indent2new indentright m-t-0">A compiler translates the whole source code (at once);<br/>An interpreter analyses the code line by line;<br/><b>NE</b> reads</p>\r<p class="levelms">Max 4</p> \r<p class="mark">[9]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">The majority of students correctly identified that it was a third generation programming language for question part (a). Incorrect answers included students just writing &#x2018;high level languages&#x2019; alongside the wrong answers of fourth and second generation.</span></p>\r<p class="indent1new">The majority of students could also identify that the machine code was written in hexadecimal format. Students did struggle to provide a reason for using this format with &#x2018;easier to understand&#x2019; being a common accepted answer. It does seem to be a common misunderstanding that hexadecimal uses less memory than binary / machine code.</p>\r<p class="indent1new">Whilst hexadecimal memory addressing is included in the specification students struggled to identify the lowest and highest memory addresses that would be available. This was a question part that required the student to identify the op-code and operand part of the instruction and to know that hexadecimal characters range from 0 to F. Responses written in hexadecimal were appropriate; there is no requirement to convert from hexadecimal to denary in COMP2.</p>\r<p class="indent1new">Asking students to provide a situation where it would be appropriate to use a low level language gave rise to lots of varied answers. Strong students identified programs that needed to be optimised for speed of execution or object code memory size. Whilst parts of an operating system might be written in a low level language, this was not awarded a mark on its own. However, students who identified device drivers or code used to directly manipulate hardware were awarded a mark.</p>\r<p class="indent1new">The idea of compilers translating all in one go and interpreters translating and executing line by line is well known. Students also often secured a mark by stating that a compiler produces object code.<br/>Marks were not awarded when students simply repeated parts of the question for example: &#x2018;a compiler compiles...&#x2019; or, &#x2018;an interpreter interprets....&#x2019;. It was quite common to see, &#x2018;an interpreter compile...&#x2019;</p>\r<p class="indent1new">Across the papers it was evident that a group of students were confused over the terms machine code, object code and source code. It was also evident that some students are confused over machine code, assembly code and high-level languages.</p>\r<p class="indent1new">It should be noted that students need to be careful when writing about execution speed. It was common to see students write about compilers executing code fast. Students need to be aware that it is the machine code of the compiled program that executes faster compared with interpreting the same program.</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': ''}, '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': ''}, 'QS10207': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">The diagram below shows the processor registers and busses that are used during the fetch part of the fetch-execute cycle, together with the main memory. The values stored in memory locations 0 to 6 in the main memory are machine code instructions.</span></p>\r\r<p class="indent1new"><img align="middle;" src="AA_COM/QS10207_files_Q/img01.png">&nbsp;</p>\r\r<p class="indent1">(a) &nbsp;&nbsp;&nbsp;&nbsp;Name the components that are labelled with the numbers 1 to 4. In the case of register names, the full names must be stated.</p>\r\r<p class="bottom">&nbsp;</p>\r<table class=MsoTableGrid cellspacing=0 cellpadding=4 style=\'margin-left:48.0pt;border-collapse:collapse\'> \r\t<tr>   \r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;\'> <p class=box><b>Number</b></p></td>\r\r\t\t<td valign=top style=\'width:250.0pt;border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;\'> <p class=box><b>Component Name</b></p></td> \r\t</tr>\r\t<tr>   \r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;\'> <p class=box><img align="middle;" src="AA_COM/QS10207_files_Q/img02.png"></p></td> \r\t\t<td valign=top style=\'width:250.0pt;border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;\'> <p class=box>&nbsp;</p></td> \r\t</tr> \r\t<tr>   \r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;\'> <p class=box><img align="middle;" src="AA_COM/QS10207_files_Q/img03.png"></p></td> \r\t\t<td valign=top style=\'width:250.0pt;border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;\'> <p class=box>&nbsp;</p></td> \r\t</tr> \r\t<tr>   \r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;\'> <p class=box><img align="middle;" src="AA_COM/QS10207_files_Q/img04.png"></p></td> \r\t\t<td valign=top style=\'width:250.0pt;border:solid windowtext 1.0pt; padding:0cm 5.4pt 0cm 5.4pt;\'> <p class=box>&nbsp;</p></td> \r\t</tr> \r\t<tr>   \r\t\t<td valign=top style=\'width:70.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><img align="middle;" src="AA_COM/QS10207_files_Q/img05.png"></p></td>\r\t\t<td valign=top style=\'width:250.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>&nbsp;</p></td> \r\t</tr> \r</table>\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;Explain what happens during the decode and execute stages of the fetch-execute cycle.</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">(3)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c) &nbsp;&nbsp;&nbsp;&nbsp;The machine code instructions in the main memory in the diagram above are shown in binary.<br/>When programmers look at machine code instructions they usually prefer to view them in hexadecimal.</p>\r<p class="indent2new">State <b>one</b> reason why this is the case.</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">(d) &nbsp;&nbsp;&nbsp;&nbsp;The machine code instructions in the main memory in the diagram above were produced when an assembly language program was translated into machine code.</p>\r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;What type of program translator was used to do this&#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;Most computer programs are initially written in an imperative high level language rather than assembly language.</p>\r<p class="indent3new">Explain why this is the case.</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="indent3new answer-toggle">______________________________________________________________</p>\r<p class="mark">(3)</p> \r<p class="mark">(Total 12 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; \r<table class=MsoTableGrid cellspacing=0 cellpadding=0 style=\'margin-top:-0.4cm;margin-left:0.0pt;border-collapse:collapse\'> \r\t<tr>  \r\t\t<td valign=top style=\'width:80.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Number</b></p></td>\r\t\t<td valign=top style=\'width:250.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box><b>Component Name</b></p></td> \r\t</tr> \r\t<tr>  \r\t\t<td valign=top style=\'width:80.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>1</p></td>\r\t\t<td valign=top style=\'width:250.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>Memory Address Register</p></td> \r\t</tr> \r\t<tr>  \r\t\t<td valign=top style=\'width:80.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>2</p></td>\r\t\t<td valign=top style=\'width:250.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>Address Bus</p></td> \r\t</tr> \r\t<tr>  \r\t\t<td valign=top style=\'width:80.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>3</p></td>\r\t\t<td valign=top style=\'width:250.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>Memory Data / Buffer Register</p></td> \r\t</tr> \r\t<tr>  \r\t\t<td valign=top style=\'width:80.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>4</p></td>\r\t\t<td valign=top style=\'width:250.0pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt;\'><p class=box>Data Bus</p></td> \r\t</tr> \r</table></span></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;The <u>instruction</u> is held in the CIR; <br><b>A</b> IR<br/>The <u>control unit / instruction decoder</u> decodes the instruction;<br/>The opcode identifies the type of instruction it is;<br/>Relevant part of CPU / processor executes instruction; <br><b>A</b> ALU<br/>Further memory fetches / saves carried out if required;<br/>Result of computation stored in accumulator / register / written to main memory;<br/>Status register updated;<br/>If jump / branch instruction, PC is updated; <br><b>A</b> SCR</p>\r<p class="levelms">Max 3</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(c) &nbsp;&nbsp;&nbsp;&nbsp;Can be <u>displayed</u> in less space; <br><b>R</b> takes up less space <b>NE</b><br/>Easier to remember / learn / read / understand;<br/>Less error prone;</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" >(d)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(i)&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;HLLs are problem oriented;<br/>HLL programs are portable // machine / platform independent ;<br/>English like <b>keywords / commands/ syntax / code</b>;<br><b> R</b> closer to English<br/>Less code required // less tedious to program //<br/>one to many mapping of HLL statements to machine code commands;<br/>Quicker/easier to understand / write / debug /learn / maintain code;<br/><b>R</b> just quicker/easier<br/>HLLs offer extra features e.g. data types / structures // structured statements // local variables // parameters // named variables/constants;<br/><b>R</b> procedures / modular<br/><b>A</b> example of a data structure<br/><b>NE</b> &#x201C;extra features&#x201D; without example<br/>Speed of execution not crucial for most tasks so faster execution of assembly language not required;<br/>Most computer systems have a lot of (main) memory / RAM so compact object code not essential;<br/><b>A</b> converse points for Assembly Language</p>\r<p class="levelms">3</p> \r<p class="mark">[12]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This question covered another aspect of computer hardware, the fetch&#x2013;execute cycle, and why programs are written in high level languages. The table was correctly completed in the majority of cases with the labelled parts of the processor. However some answers simply gave the acronyms rather than the full names of the registers, which the question had clearly asked for. Questions about the &#x2018;decode and execute&#x2019; parts of the cycle have not been asked before  this showed in the answers with many candidates describing the fetch part of the cycle and not what was asked. The part of the question concerning why programmers prefer instructions in hexadecimal compared to binary was often answered by saying it takes less storage space which clearly it does not. The answer to the question about the program translator was almost universally well known. When answering the final part, worth three marks, about why programs re written in a high level language, candidates often gave only two reasons and  automatically failed to gain one mark. Answers stating that it is, &#x2018;like English,&#x2019; were simply not enough and were marked accordingly; candidates needed to add to this to gain a mark.</span></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': ''}, 'QS09203': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">High level programming languages can be classified as being either imperative or declarative.</span></p>\r<p class="indent1">(a) &nbsp;&nbsp;&nbsp;&nbsp;Explain what is meant by a <i>declarative 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">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b) &nbsp;&nbsp;&nbsp;&nbsp;Name <b>one</b> type of application for which a declarative language could be used.</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 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> Language that specifies what the problem to be solved is/what needs to be done;<br/>Language that does not say how to solve a problem/what algorithm to follow;<br/>Language that does not specify the order in which to carry out actions to solve problem;<br/>Class of languages including functional and logic programming languages;<br/><b>A</b> Just one of functional or logic programming;<br/><b>A</b> Language that uses facts and rules</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">(b) &nbsp;&nbsp;&nbsp;&nbsp;Expert systems/Artificial intelligence;<br/>Natural language processing;<br/>Scheduling problems;<br/>Querying a database (<b>R</b> SQL on its own);<br/>Solving logic problems;<br/><b>A</b> Examples of types of system</p>\r<p class="levelms">Max 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">This is a new topic and it was poorly understood. Only a small minority of candidates were able to explain that in a declarative language a program specifies what the problem to be solved is, rather that what steps should be taken to solve the problem. The most popular incorrect response was that it was a language where variables had to be declared before they could be used. An even smaller number of candidates were able to give an example of a type of application for which a declarative language might be used. Most who were able to do this referred to either artificial intelligence directly or an application which would use artificial intelligence. References to SQL as an example application were not sufficient to gain credit as SQL is a language not an application.</span></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': ''}, 'QW08104': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">The figure below shows three different programs which have been developed using different generations of programming language.</span></p>  \r<p class="indent1"><img width=582 height=181 src="AA_COM/QW08104_files_Q/img01.png">&nbsp;</p>  \r<p class="indent1">The above programs were written for different tasks.</p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; What generation of programming language was used for Program 1?</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; Indicate which program was most likely to have been written for:</p>  \r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; controlling a new hardware device.</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p>  \r<p class="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp; a payroll application.</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; Program 1, Program 2 and Program 3 may require translation before each can be executed.</p>  \r<p class="bottom">&nbsp;</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=106 style=\'border:none;\'><p class=box>&nbsp;</td>   \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box><b>Assembler</b></p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box><b>Compiler</b></p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box><b>None</b></p></td>\r\t</tr>  \r\t<tr>       \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>Program 1</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>&nbsp;</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>&nbsp;</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>&nbsp;</p></td>\r\t</tr>  \r\t<tr>       \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>Program 2</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>&nbsp;</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>&nbsp;</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>&nbsp;</p></td>\r\t</tr>  \r\t<tr>       \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>Program 3</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>&nbsp;</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>&nbsp;</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt\'><p class=box>&nbsp;</p></td>\r\t</tr> \r</table>  \r<p class="indent2new">Put <b>one</b> tick on each row in the table above to indicate the translator software required.</p>  \r<p class="mark">(3)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(d)&nbsp;&nbsp;&nbsp;&nbsp; Describe how <b>interpreter</b> software enables a program written in a high level language to be executed.</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">(e)&nbsp;&nbsp;&nbsp;&nbsp; A friend gives you a copy of a freeware <b>assembler</b>. Why might you not be able to use this successfully on your computer?</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 9 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; 3<sup><span style=\'position:relative; top:-3.0pt\'>rd</span></sup>&nbsp;(generation);</span></p>  \r<p class="levelms">1</p>  \r<p class="indent1a indentright" >(b)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Program) 2; (Program) 3;</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; (Program) 1;</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)</p>  \r<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=5 style=\'margin-top:-0.4cm;margin-left:48pt;border-collapse:collapse\'>  \r\t<tr>     \r\t\t<td width=106 style=\'border:none;\'><p class=box>&nbsp;</td>   \r\t\t<td width=106 style=\'width:79.65pt;border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>Assembler</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>Compiler</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>None\r<p></td>\r\t</tr>  \r\t<tr>      \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>Program 1</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>&nbsp;</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box><img src="AA_COM/MW08104_files_M/tick.png"></p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>&nbsp;</p></td>\r\t</tr>  \r\t<tr>      \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>Program 2</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box><img src="AA_COM/MW08104_files_M/tick.png"></p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>&nbsp;</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>&nbsp;</p></td>\r\t</tr>  \r\t<tr>      \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>Program 3</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>&nbsp;</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box>&nbsp;</p></td> \r\t\t<td width=106 style=\'border:solid black 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=box><img src="AA_COM/MW08104_files_M/tick.png"></p></td>\r\t</tr> \r</table>  \r<p class="indent2 indentright">If more than one entry per row – look for a single tick</p>  \r<p class="indent2 indentright m-t-0">If mixture of X and ticks used – mark (as long as only one tick per row)</p>  \r<p class="levelms">3</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(d)&nbsp;&nbsp;&nbsp;&nbsp; The interpreter software is resident in memory at the same time as the application program is run;<br> The interpreter recognises/translates/reads/converts each statement <b>A</b> instruction/line;<br> <b>T/O</b> if added “converts to machine code”<br> (Syntax) checks the program; line-by-line; <u>if ‘error free’</u> the statement /line is executed;<br> The interpreter calls a procedure/code to execute the statement;</p>  \r<p class="indent2 indentright m-t-0">When (first) error encountered program execution is halted;</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">(e)&nbsp;&nbsp;&nbsp;&nbsp; The processor/architecture/(hardware) platform is different;</p>  \r<p class="indent2 indentright m-t-0">instructions are not the same;</p>  \r<p class="indent2 indentright m-t-0">Assembler software is processor/architecture specific;</p>  \r<p class="indent2 indentright m-t-0"><b>A</b> Assembler software is ‘machine specific’</p>  \r<p class="indent2 indentright">The computers use a different operating system;</p>  \r<p class="indent2 indentright m-t-0"><b>R</b> the ‘computer’ might be …</p>  \r<p class="indent2 indentright m-t-0"><b>R</b> possible bugs in the software</p>  \r<p class="levelms">Max 1</p>  \r<p class="mark">[9]</p></h5>', 'examinerreport': '<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)(b)<br>Candidates generally scored well on these parts which was encouraging. At this level is it likely that candidates will have had little or no practical experience of low level programming. Therefore it was sufficient that the candidate was able to recognise the various generations and appreciate likely applications for which each would be used to score the marks.</span></p>  \r<p class="indent1a">(c)&nbsp;&nbsp;&nbsp;&nbsp; Well answered.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(d)&nbsp;&nbsp;&nbsp;&nbsp; This question was a variation from those in previous papers where candidates had been asked to compare compiler and interpreter software. There were many different points which the candidates could have made to secure the two marks. Most common correct answers suggested \'the interpreter translates each statement\' – although answers which went on to suggest \'into machine code\' were considered to have talked themselves out of this mark - the concept that it does the translation \'line by line\'. The mark scheme was considered generous but, despite this, very few candidates scored the maximum 2 marks.</p>  \r<p class="indent2new"> Candidates must read the question. There were often statements such as \'each HHL statement translates to several LLL statements\' which suggests knowledge but did not answer this question.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(e)&nbsp;&nbsp;&nbsp;&nbsp; This question was asked for the first time, but something more than \'because they are not compatible\' was looked for. The assembler software is specific to a particular processor (architecture) is what was wanted.</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': ''}, 'QW04102': {'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; Give <b>one</b> example of a</p>  \r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; first generation programming language</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p>  \r<p class="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp; second generation programming language</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p>  \r<p class="indent2">(iii)&nbsp;&nbsp;&nbsp; third generation programming language</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; Give <b>two</b> advantages of programming in third generation programming languages, rather than in the previous two generations.</p>  \r<p class="indent2new answer-toggle">1. _________________________________________________________________</p>  \r<p class="indent2new answer-toggle">2. _________________________________________________________________</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; Third generation programming languages may be compiled or interpreted. Describe the process performed by</p>  \r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a compiler</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(2)</p>  \r<p class="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp; an interpreter</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new 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">(d)&nbsp;&nbsp;&nbsp;&nbsp; When would it be appropriate to use <b>each</b> of the following?</p>  \r<p class="indent2new m-t-0">In <b>each</b> case give the reason for your choice.</p>  \r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a compiler</p>  \r<p class="indent3new">Use<span class="answer-toggle"> __________________________________________________________</span></p>  \r<p class="indent3new">Reason<span class="answer-toggle"> _______________________________________________________</span></p> \r<p class="mark">(2)</p>  \r<p class="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp; an interpreter</p>  \r<p class="indent3new">Use<span class="answer-toggle"> __________________________________________________________</span></p>  \r<p class="indent3new">Reason<span class="answer-toggle"> _______________________________________________________</span></p>  \r<p class="mark">(2)</p>  \r<p class="mark">(Total 13 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; Machine code;</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Assembly code/language;</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(iii)&nbsp;&nbsp;&nbsp;&nbsp; Pascal / Visual Basic / Basic / Java or any other 3GL;</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; Problem Oriented;</p>  \r<p class="indent2new indentright m-t-0">Portable/Platform independent;</p>  \r<p class="indent2new indentright m-t-0">One-to-many mapping of HLL statement to machine code statement;</p>  \r<p class="indent2new indentright m-t-0">Data types / structured statements / local variables / parameters / data structures / named variables / named constants / English-like <u>keywords / commands / syntax</u>;</p>  \r<p class="indent2new indentright m-t-0">Quick /easy to understand / write / debug / learn / maintain;</p>  \r<p class="indent2new indentright m-t-0"><b>R</b> easy to read</p>  \r<p class="indent2new indentright"><i>Any 2 from 5</i></p>\r<p class="levelms">2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1a indentright" >(c)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Syntax checking / Translate the (whole) source program;</p>  \r<p class="indent3new indentright m-t-0">Generate executable code;</p>  \r<p class="levelms">2</p>  \r<p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Syntax checking / Translate the source program <u>line by line</u>; </p>  \r<p class="indent3new indentright m-t-0">Execute the program;</p>  \r<p class="levelms">2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1a indentright" >(d)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Where tested software is to be shipped to a user / or any situation where the program needs to respond rapidly / can be run as a stand alone program / create an executable;</p>  \r<p class="indent3new indentright m-t-0">Reasons may be software unable to be changed / speed of execution;</p>  \r<p class="levelms">2</p>  \r<p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Software under development / run in a sandbox;</p>  \r<p class="indent3new indentright m-t-0">Reasons may be software debugging tools / controlled environment;</p>  \r<p class="levelms">2</p>  \r<p class="mark">[13]</p></h5>', 'examinerreport': '<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 generations of programming languages were well understood but some candidates only gave high level language as an answer to part (iii) without giving an example.</p>  \r<p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Candidates found it difficult to find two distinct points. There were many answers that received only one mark. There were also many answers that simply said easy to read. It is expected that candidates will be able to produce more explicit answers at this level.</p>  \r<p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; Although most candidates were able to provide some idea of the difference between a compiler and an interpreter few were able to explain the process of either compilation or interpretation clearly. Many candidates were under the impression that a compiler executed the program.</p>  \r<p class="indent1">(d)&nbsp;&nbsp;&nbsp;&nbsp; Many candidates associated the use of a compiler with a completed program or its distribution. Fewer were able to give a valid reason. Some seemed to be under the impression that a compiler compiles code faster. They did not make it clear that the compiled code executes faster. Many candidates correctly identified that an interpreter may be used when debugging code. Far fewer were able to indicate why. There seemed to be a common misunderstanding that only inexperienced programmers use interpreters.</p></h5>', 'notes': '', 'resources': ''}, 'QS02103': {'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; Machine code is the first generation of programming languages. All other generations of programming languages need a program translator before the program can be executed. Name a type of translator suitable for:</p>  \r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Second generation language programs:</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; Third generation language programs:</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; Imperative <i>high level languages </i>are third generation.</p>  \r<p class="indent2new">Give <b>two </b>characteristics of high level languages that distinguish them from second generation languages.</p>  \r<p class="indent2new answer-toggle">1. _________________________________________________________________</p>  \r<p class="indent2new answer-toggle">2. _________________________________________________________________</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; In one high level language an example of a constant definition would be</p>  \r<p class="indent2new">CONST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VatRate = 17.5;</p>  \r<p class="indent2new">State <b>one </b>advantage of using a named constant, like VatRate, rather than the actual value (17.5) in a high level language program.</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="indent1a">(d)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name an imperative high level language which you have studied.</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">For the language you have named in (d) (i) above, give an example, using the correct syntax, of:</p>  \r<p class="indent2new">(ii)&nbsp;&nbsp;&nbsp;&nbsp; iteration: <span  "answer-toggle">_______________________________________________________</span></p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new 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="indent2new">(iii)&nbsp;&nbsp;&nbsp;&nbsp; selection: <span  "answer-toggle">_____________________________________________________</span></p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(2)</p>  \r<p class="mark">(Total 10 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; 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; Interpreter / compiler;</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">(b)&nbsp;&nbsp;&nbsp;&nbsp; Problem oriented;</p>  \r<p class="indent2new indentright m-t-0">Portable; machine independent;</p>  \r<p class="indent2new indentright m-t-0">One-to-many mapping of HLL statement to machine code statement;</p>  \r<p class="indent2new indentright m-t-0">Datatypes; structured statements; local variables; parameters; data structures;</p>  \r<p class="indent2new indentright m-t-0"><b>A</b> <i>example of a datastructure;</i></p>  \r<p class="indent2new indentright m-t-0">Named variables; named constants; English-like keywords/commands;</p>  \r<p class="indent2new indentright m-t-0">Quick/easy to understand / write / debug / learn / maintain;</p>  \r<p class="indent2new indentright m-t-0"><b>R</b> quick/ easy to use<br> <b>R</b> modular<br> <b>R</b> procedures</p>  \r<p class="indent2new indentright m-t-0"><b>R</b> takes longer to translate<br> <b>R</b> closer to English</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">(c)&nbsp;&nbsp;&nbsp;&nbsp; Easier to understand / more transparent; less error prone; easier to maintain / change (if the value changes);</p>  \r<p class="indent2new indentright"><i>Allow by example</i></p>  \r<p class="indent2new indentright m-t-0"><i>eg if VAT rate changes only need to change value in declaration</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" >(d)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Accept any imperative HLL such as Pascal/VB/C/C++/PL1/Cobol;</p>  \r<p class="indent3new indentright"><i>SEE TABLE FOR DIFFERENT LANGUAGE EXAMPLES FOR (ii) &amp; (iii)</i></p>  \r<p class="indent3new indentright m-t-0"><i>Ignore line breaks in statements</i></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; <i>1 mark for correct key words in correct order (shown in bold in table overleaf); 1 mark for correct Boolean expression / loop control expression ;</i></p>\r<p class="levelms">2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2 indentright">(iii)&nbsp;&nbsp;&nbsp;&nbsp;<i> 1 mark for correct key words in correct order (shown in bold in table overleaf); 1 mark for correct boolean expression;</i></p>\r<p class="levelms">2</p>  \r<p class="indent3new indentright">If (i) does not match (ii) and (iii) do not give marks for (ii) and (iii)</p>  \r<p class="indent3new indentright m-t-0">If candidate names a language you are not familiar with, contact your team leader</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="bottom">&nbsp;</p>  \r<table class=MsoNormalTable cellspacing=0 cellpadding=5 style=\'margin-left:20pt;border-collapse:collapse\'>  \r\t<tr>     \r\t\t<td width=106 valign=top style=\'width:63.8pt;border:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Language</p></td>   \r\t\t<td width=83 valign=top style=\'width:49.6pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Bool<br>   expr</p></td>   \r\t\t<td width=295 valign=top style=\'width:177.2pt;border:solid windowtext 1.0pt;border-left:none;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Iteration<br>   <i>....are possible statements(ignore)</i></p></td>   \r\t\t<td width=295 valign=top style=\'width:177.15pt;border:solid windowtext 1.0pt; padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Selection<br>   <i>....are possible statements(ignore)</i></p></td>  \r\t</tr>  \r\t<tr>     \r\t\t<td width=106 valign=top style=\'width:63.8pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Pascal</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Delphi</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Kylix</p></td>   \r\t\t<td width=83 valign=top style=\'width:49.6pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&gt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a=b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt; &gt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&gt;=b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt;=b</p></td>   \r\t\t<td width=295 valign=top style=\'width:177.2pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>FOR &lt;variable&gt;:= &lt;value1&gt; TO</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>&lt;value2&gt; DO ......</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>REPEAT ......</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>UNTIL &lt;bool expr&gt;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>WHILE &lt;bool expr&gt;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>DO .....</p></td>   \r\t\t<td width=295 valign=top style=\'width:177.15pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>IF &lt;bool expr&gt; THEN ......</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'><i>else part optional</i></p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>CASE &lt;variable&gt; OF</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>&lt;value1&gt;.....</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>&lt;value2&gt;......</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>ENDCASE</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'><i>else part optional.</i></p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'><i>No of values can vary</i></p></td>  \r\t</tr>  \r\t<tr>     \r\t\t<td width=106 valign=top style=\'width:63.8pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Visual Basic</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>VSScript</p></td>   \r\t\t<td width=83 valign=top style=\'width:49.6pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&gt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a=b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt; &gt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&gt;=b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt;=b</p></td>   \r\t\t<td width=295 valign=top style=\'width:177.2pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>FOR &lt;variable&gt; = &lt;value 1&gt; TO</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>&lt;value2&gt;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>.....</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>NEXT</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>DO WHILE/UNTIL &lt;bool expr&gt;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>.....LOOP</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>DO .....</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>LOOP UNTIL/WHILE &lt;bool expr&gt;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>WHILE &lt;bool expr&gt; .....</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>WEND</p></td>   \r\t\t<td width=295 valign=top style=\'width:177.15pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>IF &lt;bool expr&gt; THEN</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>.....</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>END IF</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'><i>Else part optional</i></p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>SELECT CASE &lt;variable&gt;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>CASE &lt;value1&gt;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>.....</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>CASE &lt;value2&gt;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>.....</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>End Selct</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'><i>Else part optional</i></p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'><i>No of CASE values can vary</i></p></td>  \r\t</tr>  \r\t<tr>     \r\t\t<td width=106 valign=top style=\'width:63.8pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>C/C++</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Java</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Javascript</p></td>   \r\t\t<td width=83 valign=top style=\'width:49.6pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&gt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a==b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a!=b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&gt;=b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt;=b</p></td>   \r\t\t<td width=295 valign=top style=\'width:177.2pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>FOR (&lt;initialisation&gt;; &lt;condition&gt;;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>&lt;increment&gt;).....</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>WHILE (bool expr) DO ....</p></td>   \r\t\t<td width=295 valign=top style=\'width:177.15pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>IF (bool expr) {&nbsp;&nbsp; }</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'><i>Else part optional</i></p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>SWITCH (&nbsp;&nbsp;&nbsp;&nbsp; ) {CASE &lt;value&gt;:</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>BREAK}</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'><i>No of CASE values can vary</i></p></td>  \r\t</tr>  \r\t<tr>     \r\t\t<td width=106 valign=top style=\'width:63.8pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>COBOL</p></td>   \r\t\t<td width=83 valign=top style=\'width:49.6pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&gt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a=b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt; &gt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&gt;=b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt;=b </p></td>   \r\t\t<td width=295 valign=top style=\'width:177.2pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>PERFORM .....&lt;number&gt; TIMES</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>PERFORM VARYING</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>&lt;variable&gt; FROM &lt;value&gt;BY</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>&lt;value&gt; UNTIL &lt;bool expr using variable&gt;</p></td>   \r\t\t<td width=295 valign=top style=\'width:177.15pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>IF &lt;bool expr&gt; PERFORM ......</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'><i>Else part optional</i></p></td>  \r\t</tr>  \r\t<tr>     \r\t\t<td width=106 valign=top style=\'width:63.8pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Fortran</p></td>   \r\t\t<td width=83 valign=top style=\'width:49.6pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a.LT.b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a.GE.b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a.LE.b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a.GT.b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a.NE.b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a.EQ.b</p></td>   \r\t\t<td width=295 valign=top style=\'width:177.2pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>DO &lt;number&gt; &lt; variable&gt;=</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>&lt;init value&gt; &lt;final value&gt;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'><i>step value optional</i></p></td>   \r\t\t<td width=295 valign=top style=\'width:177.15pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>IF &lt;bool expr&gt; .....</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>IF (&lt;arithmetic expr&gt;) label1,</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>label2, label3</p></td>  \r\t</tr>  \r\t<tr>     \r\t\t<td width=106 valign=top style=\'width:63.8pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>Basic</p></td>   \r\t\t<td width=83 valign=top style=\'width:49.6pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&gt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a=b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt; &gt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt;b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&gt;=b</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>a&lt;=b</p></td>   \r\t\t<td width=295 valign=top style=\'width:177.2pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>FOR &lt;variable&gt; = &lt;start value&gt; TO</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>&lt;stop value&gt;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>....</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>NEXT &lt;variable&gt;</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'><i>step value optional</i></p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>REPEAT</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>....</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>UNTIL &lt;bool expr&gt;</p></td>   \r\t\t<td width=295 valign=top style=\'width:177.15pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.35pt 0cm 5.35pt\'><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>IF &lt;bool expr&gt; THEN ......</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>GOTO label1, label2, label3</p><p class=boxl style=\'margin-top:0cm;margin-bottom:0cm;font-size:9pt\'>DEPENDING ON &lt;variable&gt;</p></td>  \r\t</tr> \r</table>  \r<p class="levelms">2</p>  \r<p class="mark">[10]</p></h5>', 'examinerreport': '<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; Candidates often gave two high-level languages, which were inappropriate responses. The question asked for translators and the only correct responses were assembler and compiler/interpreter respectively.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Most candidates gained one mark for the obvious answer that it is easier to write programs in a high level language, without being entirely convincing that they knew what they were talking about. Fewer candidates could list a second characteristic, e.g. that such languages are problem oriented rather than machine oriented, or that they support data structures and structured statements. The response ‘can use English words’ was not enough to gain credit.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; Many candidates gained credit for stating that the use of named constants makes a program easier to maintain or understand.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(d)&nbsp;&nbsp;&nbsp;&nbsp; Those who had, clearly, studied a high level language had little difficulty with this part. Nearly all candidates gained the mark for part (i) since they had heard of a programming language. The responses to (ii) and (iii) however showed that far too many candidates do not get enough exposure to practical programming in a high level language. HTML is not appropriate here.</p></h5>', 'notes': '', 'resources': ''}, 'QW02101': {'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; Some of the basic components of a computer system are processor, main memory, and secondary storage.</p>  \r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; What connects the processor and main memory?</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; What is the purpose of secondary storage?</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</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">(iii)&nbsp;&nbsp;&nbsp;&nbsp; Describe what happens during the fetch-execute cycle.</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new 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="indent1a">(b)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Machine code is the first generation programming language. What is the second generation?</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; A programmer writes a program in a second generation programming language.</p>  \r<p class="indent3new m-t-0">What has to be done to this program before it can be executed?</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>   \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new 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="indent2">(iii)&nbsp;&nbsp;&nbsp;&nbsp; Some high level languages are classified as <i>imperative</i>. What is meant by imperative?</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</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">(iv)&nbsp;&nbsp;&nbsp; Give an example of an imperative high level language.</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">(v)&nbsp;&nbsp;&nbsp;&nbsp; What is the relationship between an imperative high level language statement and its machine code equivalent?</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</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">(vi)&nbsp;&nbsp;&nbsp; Give <b>two </b>disadvantages of programming in first and second generation programming languages compared with imperative high level languages.</p>  \r<p class="indent3new answer-toggle">1. ____________________________________________________________</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new answer-toggle">2. ____________________________________________________________</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(2)</p>  \r<p class="mark">(Total 12 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; (Data/address/control/internal/system) bus;</p>  \r<p class="indent3new indentright m-t-0"><b>R</b> just a description of a bus</p>  \r<p class="indent3new indentright m-t-0"><b>R</b> names of buses which don’t exist e.g. memory bus</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Store programs and/or data/files when not in use/</p>  \r<p class="indent3new indentright m-t-0">When computer is off permanent/long term storage</p>  \r<p class="indent3new indentright m-t-0">Of programs and/or data; save programs/data;</p>  \r<p class="indent3new indentright m-t-0"><b>R</b> offline/backup <b>R</b> ROM <b>R</b> temporary storage</p>  \r<p class="indent3new indentright m-t-0"><b>A</b> save on magnetic disk/ tape storage;</p>  \r<p class="indent3new indentright m-t-0"><b>A</b> information instead of data</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(iii)&nbsp;&nbsp;&nbsp;&nbsp; (Machine code) instruction/data is fetched from main memory;</p>  \r<p class="indent3new indentright m-t-0"><b>A</b> what is fetched or from where</p>  \r<p class="indent3new indentright m-t-0">Instruction is decoded;</p>  \r<p class="indent3new indentright m-t-0">Instruction is executed (by the processor); <b>R</b> data executed</p>  \r<p class="levelms">Max 2</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; Assembly language; mnemonic code; mnemonics; assembly code;</p>  \r<p class="indent3new indentright m-t-0"><b>R</b> low level language <b>A</b> assembler;</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Translated/assembled/converted/decoded; into machine code (instructions); </p>  \r<p class="indent3new indentright m-t-0"><b>R</b> compiled <b>R</b> interpreted <b>A</b> object/target code;</p>  \r<p class="indent3new indentright m-t-0"><b>A</b> binary instructions;</p>  \r<p class="levelms">2</p>  \r<p class="indent2 indentright">(iii)&nbsp;&nbsp;&nbsp;&nbsp; Computer executes instructions in <u>programmer</u> defined sequence;</p>  \r<p class="indent3new indentright m-t-0"><b>A</b> the programmer tells the computer how to do it;</p>  \r<p class="indent3new indentright m-t-0"><b>R</b> user <i>instead of </i>programmer</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">(iv)&nbsp;&nbsp;&nbsp; Pascal /Visual Basic/Basic/C/C++/Cobol/Fortran/Ada/Delphi/Lylix/Modula /or any other imperative HLL</p>  \r<p class="indent3new indentright m-t-0"><b>R</b> Prolog<br> <b>R</b> Lisp<br> <b>R</b> Pop11</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(v)&nbsp;&nbsp;&nbsp;&nbsp; One statement/instruction/command in a high level language translates into several machine code instructions; 1 to many;</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(vi)&nbsp;&nbsp;&nbsp; Laborious/time-consuming to write; hard to debug; harder to program; easier to make mistakes; more difficult to understand/ learn; difficult to maintain; different assembler/instruction set for different type of computer; machine dependent; low level programs not portable;</p>  \r<p class="levelms">Max 2</p>  \r<p class="mark">[12]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1a m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Most candidates correctly named one or more buses. The term ‘bus’ was enough to gain the mark, but some candidates still referred to a ‘memory bus’ which did not gain credit.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Very few candidates seem to appreciate that secondary storage is used to save programs and data when they are not in use. Most referred to backup copies, which may well be saved on secondary storage, but is not the primary purpose of such storage.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp; The fetch-execute cycle was very well explained by a few candidates, though in too much detail by some others (e.g. by those who had presumably just studied machine architecture for CPT4). The majority of answers involved fetching data from memory and then executing data which gained no credit. Correct responses stated that an instruction is fetched from main memory, decoded and executed by the processor. At this machine level of operation, the term ‘information’ is not appropriate.</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; Assembly languages are second generation programming languages. The term ‘assembler’ was accepted this time, but candidates should be able to distinguish between the two terms and appreciate that the assembler is the translator, which converts the assembly language program into machine code.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Many candidates lost a mark by wrongly stating that a compiler or interpreter converts an assembly language program into machine code. The terms ‘source code’ and ‘object code’ belong to the translation of high level language programs by compilers and should not be used in the context of second generation languages.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2">(iii)&nbsp;&nbsp;&nbsp;&nbsp; Very few candidates could explain what the term ‘imperative’ meant in the context of high level languages. Most thought it meant important or problem oriented. Of those who were on the right track, some then confused the definitions of imperative and declarative languages. A correct response explained that the computer executes instructions in programmer-defined sequence. It was not acceptable to equate a programmer with a user.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2">(iv)&nbsp;&nbsp;&nbsp; A great many different languages quoted here gained credit. However, Prolog or HTML were not acceptable examples.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2">(v)&nbsp;&nbsp;&nbsp;&nbsp; Few candidates could state that one high level language statement would translate into one or more machine code instructions. Some candidates denied that there was any relationship.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2">(vi)&nbsp;&nbsp;&nbsp; This was a well answered question even for middle-scoring candidates, though the answers were sometimes a little vague. ‘Hard to learn’ and ‘debug’ were probably the most common answers which gained credit.</p></h5>', 'notes': '', 'resources': ''}, 'QW01103': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Programming languages are subdivided into generations. An imperative high level language is a third generation language.</p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; Name the language type for:</p>  \r<p class="indent2new">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; first generation;<span class="answer-toggle"> _________________________________________________</span></p>  \r<p class="mark">(1)</p>  \r<p class="indent2new">(ii)&nbsp;&nbsp;&nbsp;&nbsp; second generation. <span class="answer-toggle">______________________________________________</span></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; Name <b>one</b> specific example of a third generation programming language.</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(1)</p>  \r<p class="mark">(Total 3 marks)</p>  \r<p class=oldquestiona></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; Machine code language / machine language;</p>  \r<p class="indent3new indentright m-t-0"><b>R</b> binary code / binary language</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Assembly language;</p>  \r<p class="indent3new indentright" style=\'margin-top:0cm;margin-right:1.0cm;margin-bottom: 12.0pt;margin-left:3.0cm\'><b>A</b> assembly code <i>/ </i>mnemonic code;<br> <b>R</b> low level language</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; Pascal / Basic / Visual Basic / Fortran / Cobol (or similar)</p>  \r<p class="indent2new indentright m-t-0"><b>R</b> any Markup language</p>  \r<p class="levelms">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">Many candidates answered this question correctly, although many gave “binary” or “binary code” as the first generation language. This is not precise enough to gain the mark available. Candidates also need reminding that the correct term for a second generation language is “assembly language” and not “<span style=\'font-size:4.0pt\'> </span>assembler” which is the translation program to assemble an assembly language program.</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': ''}, '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': ''}, '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': ''}, 'Q22S206P4': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Give <b>one</b> reason why some compilers produce their final output in an intermediate language instead of machine 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"><b>Mark is for AO1 (understanding)</b></p>\r\n<p class="indent1new indentright">Allows processor / platform independence // code is more portable / cross-platform;</p>\r\n<p class="indent1new indentright">Compiler is only required to translate source code once (but the intermediate language / bytecode can still be executed on a variety of platforms);</p>\r\n<p class="indent1new indentright">Can create intermediate language code / bytecode for a specific (standardised) virtual machine that all the target machines have installed;</p>\r\n<p class="indent1new indentright">The virtual machine can perform security checks on the (intermediate language / byte) code without execution, hence it is more secure;</p>\r\n<p class="indent1new indentright"><b>MAX 1</b></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">This question was about <b>why</b> Intermediate Language is used and was also badly answered with only half the students getting a mark. The most popular response recognised that IL could be used cross-platform as it was processor independent.</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': ''}, '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': ''}, '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': ''}, 'QS17S24A': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Explain the differences between an interpreter and 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="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="questiona indentright"><b>4 marks for AO1 (understanding)</b></p>\r\n<p class="indent1new indentright">A compiler produces object code/machine code/executable file;</p>\r\n<p class="indent1new indentright m-t-0">An interpreter does not produce any object code;</p>\r\n<p class="indent1new indentright m-t-0">A compiler translates the whole source code (at once);</p>\r\n<p class="indent1new indentright m-t-0">An interpreter analyses the code line by line; <b>A</b>. Deals with, translates, processes, <b>R</b>. Runs through, reads, convert</p>\r\n<p class="indent1new indentright m-t-0">A compiler will not produce an executable file if an error is encountered;</p>\r\n<p class="indent1new indentright m-t-0">An interpreter will run the program up until the first error;</p>\r\n<p class="indent1new indentright m-t-0">Interpreted code will execute slower than executing the object code produced by a compiler; <b>A</b>. opposite</p>\r\n<p class="indent1new indentright m-t-0">You do not need the compiler to execute a compiled program;</p>\r\n<p class="indent1new indentright m-t-0">When running interpreted code, the interpreter always needs to be present</p>\r\n<p class="indent1new indentright m-t-0">Once compiled source code is no longer required to run the program;</p>\r\n<p class="indent1new indentright m-t-0">An interpreter always needs source code at runtime;</p>\r\n<p class="indent1new indentright m-t-0">Compiled code can only be executed on a machine with the same processor type / instruction set;</p>\r\n<p class="indent1new indentright m-t-0">Interpreted code is more portable;</p>\r\n<p class="indent1new indentright"><b>Max 3</b> if all points made about either interpreter or compiler.</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">Many students were able to demonstrate a good understanding of the difference between a compiler and an interpreter. One common misconception demonstrated was the belief that interpreters convert code line by line. Interpreters execute code directly and do not normally convert into another format. Others included the conversion to assembly code, and that compilers are unable to deal with errors.</p>\r\n<p class="indent1new">Common mistakes included not specifically stating that compilers translate the whole code at once &#8211; &#8216;compilers translate the whole code&#8217; not demonstrating enough understanding. References to intermediate code were also not relevant.</p>\r\n<p class="indent1new">It was pleasing to see that the majority of high-scoring students approached the question from both sides, not focussing on just the interpreter or the compiler.</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': ''}, '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': ''}, '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': ''}, 'QS08102': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">A programmer developing a new application will choose a high level programming language. Typical modern software will provide an ‘environment’ in which all aspects of the application’s development can be done.</span></p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; What feature must all program development environments have for the initial creation of the program code?</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; The next stage in the development may use a <b>compiler.</b></p>  \r<p class="indent2new">Explain what a compiler does, and suggest <b>one</b> output which may result from the compilation process, other than the executable code.</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">Output: ____________________________________________________________</p>  \r<p class="mark">(3)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; An alternative to a compiler is an <b>interpreter</b>.</p>  \r<p class="indent2">Explain how an interpreter attempts to run a 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="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; The program development environment has <b>both</b> a compiler and interpreter.</p>  \r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Give <b>one</b> advantage of using an interpreter.</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p>  \r<p class="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Give <b>one</b> advantage of using a compiler.</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p>  \r<p class="mark">(Total 8 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; Text / scene / code / object <u>editor</u>;</span></p>  \r<p class="indent2 indentright m-t-0"><b>A</b> Word processor</p>  \r<p class="indent2 indentright m-t-0"><b>A</b> form/screen for <u>text/code</u> <u>entry/input/write</u></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; Translates (<b>A </b>converts/changes) program code/source program; from high level language; into machine code/object code;</p>  \r<p class="indent2 indentright m-t-0"><b>R</b> binary</p>  \r<p class="indent2 indentright m-t-0">Checks the program code/statements for errors;</p>  \r<p class="indent2 indentright m-t-0">If no errors found the executable file is generated;</p>  \r<p class="indent2 indentright m-t-0"><b>T/O</b> –1 Mark if the explanation includes ‘executing the machine code’</p>  \r<p class="levelms">Max 2</p>  \r<p class="indent2 indentright">error report/list;&nbsp;&nbsp;&nbsp; <b>A</b> error message(s) <b>R</b> error (only)</p>  \r<p class="indent2 indentright m-t-0">an intermediate (object) file;</p>  \r<p class="indent2 indentright m-t-0"><b>A</b> a copy of the source code;</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; Interpreter software translates/checks/reads the program code one<br> statement at a time (<b>A </b>line by line);</p>  \r<p class="indent2 indentright m-t-0">Checks the statement for the correct syntax;</p>  \r<p class="indent2 indentright m-t-0">If no errors found, interpreter recognises the statement;</p>  \r<p class="indent2 indentright m-t-0">Interpreter calls a procedure to execute the statement;</p>  \r<p class="indent2 indentright m-t-0"><b>A</b> if no error found, that statement is executed;</p>  \r<p class="indent2 indentright m-t-0">If an error is found, program execution is halted (and the error reported);</p>  \r<p class="indent2 indentright m-t-0">The program runs until an error is found;</p>  \r<p class="levelms">Max 2</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1a indentright" >(d)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Interpreter should allow for faster program development /</p>  \r<p class="indent3 indentright m-t-0">faster error correction / errors easier to identify ;</p>  \r<p class="indent3 indentright m-t-0"><b>A </b>easier to debug</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Compiler/source code will not be needed in order to distribute the final executable code / the exe code (alone) can be distributed to others;</p>  \r<p class="indent3 indentright m-t-0">the exe code (<b>A </b>the program) will execute (run) faster;</p>  \r<p class="indent3 indentright m-t-0">the exe code/ the program cannot be changed (by others);</p>  \r<p class="levelms">Max 1</p>  \r<p class="mark">[8]</p></h5>', 'examinerreport': '<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; This was the first time candidates had been asked for an essential feature of a program development environment for the creation of program code and a correct answer was given only by the more able candidates.</span></p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)(c)(d)</p>  \r<p class="indent2new">These questions should have been straightforward bookwork-type questions as candidates were asked to describe how a compiler and an interpreter process a source program and there were many ways in which the candidates could score the marks. Candidates often let themselves down by their poor communication skills and answers such as, \'read a whole program and produce an .exe out of this,\' said nothing other than a re-wording of the stem of the question. The word \'it\' – commented on in previous Reports on the Examination - was again in evidence for part (d) and the answer was then unclear as to whether the candidate was referring to the compilation process or the running of the executable code.</p>  \r<p class="indent2new"> Many answers stated the compiler output as being the executable code, despite this being stated in the question.</p></h5>', 'notes': '', 'resources': ''}, 'QS08104': {'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 two different versions of a <b>small section of a program.</b></span></p>  \r<p class=oldquestion style=\'margin-left:90.0pt;text-indent:-90.0pt\'>&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 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;&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="indent2"><img width=567 height=304 src="AA_COM/QS08104_files_Q/img01.png">&nbsp;</p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; In <b>Figure 2</b> the label is missing from the column showing 100 to 106.</p>  \r<p class="indent2new"> What should this label be?<span class="answer-toggle"> _____________________________________________</span></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 generation of programming language is shown in <b>Figure 1</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; The code as written by the programmer is shown in <b>Figure 1</b>. A translator program is needed to produce a version of the code the processor can execute.</p>  \r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; What is this translator program called?</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p>  \r<p class="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Following the translation process various outputs will be produced.</p>  \r<p class="indent3 m-t-0">One output from this translation is the machine code executable file.</p>  \r<p class="indent3new">Name <b>one</b> other possible output<span class="answer-toggle"> ____________________________________</span></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; Many digital computers operate on the stored program concept.</p>  \r<p class="indent2">Explain the <i>stored program concept</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">(4)</p>  \r<p class="mark">(Total 8 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; (memory) address / location;</span></p>  \r<p class="indent2 indentright m-t-0"><b>R</b> Line number</p>  \r<p class="levelms">1</p>  \r<p class="indent1 indentright">(b)&nbsp;&nbsp;&nbsp;&nbsp; second (generation) //assembly language/code/program //<br> 2 / 2<sup><span style=\'position:relative;top:-3.0pt\'>nd</span></sup>;</p>  \r<p class="levelms">1</p>  \r<p class="indent1a indentright" >(c)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assembl<u>er</u>;</p>  \r<p class="indent3 indentright m-t-0">R. assemb<u>ly</u></p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; error list / error report / error count / <b>A</b> error message / highlight statement(s) illegally formed / instruction count // symbol table;</p>  \r<p class="indent3 indentright m-t-0"><b>R</b> error</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; program (instructions are) transferred from backing store to main memory;</p>  \r<p class="indent2 indentright m-t-0">program consists of a sequence of instructions;</p>  \r<p class="indent2 indentright m-t-0">stored in a (continuous area of) <u>main memory</u>;</p>  \r<p class="indent2 indentright m-t-0">an <u>instruction</u> is fetched (and decoded);</p>  \r<p class="indent2 indentright m-t-0">and then <u>instruction</u> executed (by the processor);</p>  \r<p class="indent2 indentright m-t-0">program can be replaced by another program at any time;</p>  \r<p class="indent2 indentright m-t-0">program instructions are treated as data;</p>  \r<p class="levelms">Max 4</p>  \r<p class="mark">[8]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Parts (a) and (b) were generally well answered but less so (c) and (d). Many candidates gave a vague answer for the assembler output as \'errors\' and this was considered insufficient.</span></p>  \r<p class="indent1new"> Very few candidates were able to store the maximum 4 marks in part (d). There were very few convincing answers, and common misconceptions were that the program is executed from the hard disk, with no mention of program instructions. Often candidates generally described the need for the program to be loaded into main memory, without any further explanation.</p></h5>', 'notes': '', 'resources': ''}, 'QW06102': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1a m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Explain <b>one</b> difference between a procedure and a function.</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new 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="indent2">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Name and describe a built-in function you have used in your programming work, or when using a generic software package.</p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="indent3new 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; A particular built-in function is described in a programming language’s help files as follows:</p>  \r<p class="bottom">&nbsp;</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=638 valign=top style=\'width:382.75pt;border:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt\'><p class=boxl>Function MatchString(ThisString , StringSearchedFor : String)   :Boolean</p><p class=boxl>The function <b>MatchString</b> returns a <b>Boolean</b> value   indicating whether or not the string <b>StringSearchedFor</b> appears within   the string <b>ThisString</b>.</p><p class=boxl>An error is returned when a function call is incorrectly   formed.</p></td>  \r\t</tr> \r</table></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2new">What value is returned to the Result1, Result2 and Result3 variables from the following function calls?</p>  \r<p class="indent2">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Result1 := MatchString (‘Harry Potter’, ‘Pot’)</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; Result2 := MatchString (‘Potter’, ‘Harry Potter’)</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">(iii)&nbsp;&nbsp;&nbsp;&nbsp; Result3 := MatchString (‘Harry Potter’, 59)</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 part (b) (i) Result1 is an identifier used for a variable. Name<b> two </b>other uses for identifiers in a high level language.</p>  \r<p class="indent2new answer-toggle">1. _________________________________________________________________</p>  \r<p class="indent2new answer-toggle">2. _________________________________________________________________</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; The programming language being used has both compiler and interpreter software for program development.</p>  \r<p class="indent2new">Give <b>one</b> advantage of the use of each.</p>  \r<p class="indent2new answer-toggle">Interpreter advantage _________________________________________________</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="indent2new answer-toggle">Compiler advantage __________________________________________________</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 11 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; Functions always <u>return</u> some value when called;</p>  \r<p class="indent3new indentright m-t-0">Procedures <u>may</u> return a value;</p>  \r<p class="indent3new indentright m-t-0">Functions appear in expressions;</p>  \r<p class="indent3new indentright m-t-0">Procedures do not appear in expressions;</p>  \r<p class="indent3new indentright m-t-0">Procedures name alone makes up the statement / call &lt;name&gt;</p>  \r<p class="levelms">Max 2</p>  \r<p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Anything named which is plausible;</p>  \r<p class="indent3new indentright m-t-0">Examples could include: computation / formatting / string handling;</p>  \r<p class="indent3new indentright m-t-0"><b>R </b>software features / button events / DLL</p>  \r<p class="indent3new indentright m-t-0"><b>A</b> Dynamic Linked Library</p>  \r<p class="levelms">2</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; True/Yes/ 1;</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright" style=\'margin-left:92.7pt;text-indent:-36.0pt\'>(ii)<span style=\'font:7.0pt "Times New Roman"\'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>False/No/0;</p>  \r<p class="levelms">1</p>  \r<p class="indent2 indentright">(iii)&nbsp;&nbsp;&nbsp;&nbsp; Error;</p>  \r<p class="levelms">1</p>  \r<p class="indent1 indentright">(c)&nbsp;&nbsp;&nbsp;&nbsp; Program / constant / function / procedure / module / unit / user defined type / record / label / object /class;</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">(d)&nbsp;&nbsp;&nbsp;&nbsp; <b>Advantage of an Interpreter:</b></p>  \r<p class="indent2 indentright m-t-0">•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Should allow faster/easier program development // faster/easier testing / debugging / finding errors;</p>  \r<p class="indent2 indentright m-t-0">•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Correcting mistakes is less time consuming;</p>  \r<p class="indent2new indentright"><i>Max 1</i></p>\r<p class="indent2new indentright"><b>Advantage of a compiler:</b></p>  \r<p class="indent2 indentright m-t-0">•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The executable code/object code/program will run faster;</p>  \r<p class="indent2 indentright m-t-0">•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Once the executable file has been produced no further action;</p>  \r<p class="indent2 indentright m-t-0">•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Software distribution requires no further software to be available to the user;</p>  \r<p class="indent2 indentright m-t-0">•&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Prevents tampering of the code by users other than the developer;</p>  \r<p class="indent2new indentright"><i>Max 1</i></p>\r<p class="levelms">2</p>  \r<p class="mark">[11]</p></h5>', 'examinerreport': '<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; Many candidates were able to explain that functions always return a value but few candidates were able to distinguish this from the way a procedure behaves.</p>  \r<p class="indent2new">For candidates who had covered this theory in a practical context this was an easy two marks. Candidates should have been exposed to a subset of the functions available in their programming language. The final part of the question stem “…or when using a generic software package” was intended to help the weaker candidates in triggering some of the functions they would have used; unfortunately<span style=\'color:red\'>,</span> candidates often gave answers describing features of a generic software package.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; This question was generally well answered, although it was noticeable that the standard of answers varied between centres. Candidates who found the question easy were undoubtedly those who had practical experience of using functions which required none, one or two parameters when used.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; The most popular answer was to use identifier names for constants, followed by procedures and functions.</p>  \r<p class="indent1">(d)&nbsp;&nbsp;&nbsp;&nbsp; This was well answered with most candidates able to score marks. The key word in the question stem was “advantage” and so answers required more than just a description of a compiler and an interpreter.</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': ''}, 'QS01104': {'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; Programmers are encouraged to adopt a structured approach to writing programs. One reason is so that programmers can write code which can be more easily understood by another programmer.</p>  \r<p class="indent2new">Explain <b>two </b>other reasons.</p>  \r<p class="indent2new answer-toggle">1. _________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(2)</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>three </b>features of an imperative high level programming language which allow programmers to write “easy-to-understand” code.</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="indent2new answer-toggle">3. _________________________________________________________________</p> \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(3)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; Distinguish between a compiler and an interpreter.</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 9 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; Easier maintenance/upgradeable; can get an overview of system;</p>  \r<p class="indent2new indentright m-t-0">Quicker to write/Easier development; can break problem down into sub tasks/ can re–use modules/ distribute among team;</p>  \r<p class="indent2new indentright m-t-0"><b>R</b> easier to read so can get a team to write program;</p>  \r<p class="indent2 indentright m-t-0">More systematic testing; can test a module at a time;</p>  \r<p class="indent2 indentright m-t-0">Fewer mistakes made; clear organisation of code;</p>  \r<p class="indent2 indentright m-t-0">Quicker/easier to debug; easier to see where errors are;</p>  \r<p class="indent2 indentright m-t-0">Fewer lines of code using subroutines; code not duplicated;</p>  \r<p class="indent2new indentright"><i>(1 mark for reason, 1 mark for explanation<br>OR 2 marks for good explanation per point)</p>  </i>\r<p class="levelms">Max 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; Structured statements such as iteration / selection;</p>  \r<p class="indent2new indentright m-t-0">Use of Procedures / functions/subroutines/modules/libraries;</p>  \r<p class="indent2new indentright m-t-0">User defined data types; built–in data types; Data structures;</p>  \r<p class="indent2new indentright m-t-0">Can choose sensible names for identifiers;</p>  \r<p class="indent2new indentright m-t-0">English–like keywords / constructs; Indentation; Comments;</p>  \r<p class="indent2new indentright m-t-0">Use of <u>local</u> variables; parameters; named constants;</p>  \r<p class="indent2new indentright m-t-0"><b>R</b> closer to natural language/ almost written in English</p>  \r<p class="indent2new indentright m-t-0"><b>R</b> machine independent / problem oriented / top–down</p>  \r<p class="levelms">Max 3</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(c)&nbsp;&nbsp;&nbsp;&nbsp; Compiler translates <u>whole</u> source code into object/machine/runnable code / exe file;</p>  \r<p class="indent2new indentright m-t-0">Compiled program runs faster than interpreted program;</p>  \r<p class="indent2new indentright m-t-0">Interpreter translates <u>line by line</u> as it executes/is running;</p>  \r<p class="indent2new indentright m-t-0">Interpreter must be in memory to execute program; compiler only needed during translation stage, not during execution of program.;</p>  \r<p class="indent2new indentright m-t-0">interpreter runs one line at a time;</p>  \r<p class="levelms">Max 2</p>  \r<p class="mark">[9]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This question was generally done poorly. Most candidates read into the question that a comparison with machine code or assembly code programming was required. This was clearly not appropriate.</p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; Candidates often quoted the detail of the question again as an answer, but many gained some credit for answers including that it was easier to debug a structured program because it would be easier to find errors in procedures. The misconception that structured code makes it easier for the compiler was rather widespread.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Candidates do not know what features are, with many carrying on answering as in part (a). Often no distinction between the features of an editor used to type a program and the features of the actual programming language itself were made. Most candidates thought that programming in a high level language was almost like writing in English, for which no credit was given. Good answers included use of procedures/functions, English-like keywords, data types, data structures, local variables, parameters, being able to choose sensible names for identifiers and the existence of constructs such as IF..THEN..ELSE, REPEAT..UNTIL etc.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; The distinction between a compiler and an interpreter was clearly taught well in some centres and not in others. The fact that a compiler will translate the whole source code into object code, which can then be executed independently of the compiler seemed to evade many. That an interpreter translates one line at a time as it executes without producing object code was also only fully understood by few.</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': ''}, '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': ''}}
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: Write the notes you made
Assistant: