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

3.6.3 Types of program translator
Content
Additional information
Understand the role of each of the following:
assembler
compiler
interpreter.
Explain the differences between compilation and interpretation. Describe situations in which each would be appropriate.
Explain why an intermediate language such as bytecode is produced as the final output by some compilers and how it is subsequently used.
Understand the difference between source and object (executable) code.


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

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

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

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

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

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

In summary, your answer must:

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

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

User: And these are the available exam questions, with 'des' explaining what it's about, and 'fil' meaning the Question ID.
{'S6$.2': [{'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$|', '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': '|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.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': '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}], '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.C$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.3 | L6$.3', 'index5': '|', 'index6': 'QW03109', 'qid': 'QW03109', 'des': 'Compilers and interpreters', 'index7': '', 'marks': '5 marks', 'time': '9', 'ttext': 'Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QW03109', 'year': 2003, 'res': '', 'flag1': 0}, {'index1': '|E.C$|', 'index2': '|1$|', 'index3': '3$', 'index4': 'S6$.3 | L6$.3', 'index5': '|', 'index6': 'QS00N404', 'qid': 'QS00N404', 'des': 'Compiler vs interpreter', 'index7': '', 'marks': '3 marks', 'time': '5', 'ttext': 'Compilers and interpreters', 'fld': 'AA_COM', 'fil': 'QS00N404', 'year': 0, 'res': '', 'flag1': 0}, {'index1': '|E.C$|', 'index2': '|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: {'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': ''}, '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': ''}, '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': ''}, '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': ''}, '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': ''}, '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': ''}, 'QW03109': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">There are a large number of programming languages. System software such as <i>compilers,</i> <i>assemblers, interpreters </i>are used to translate programs into machine instructions.</p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; Explain the different ways in which a compiler and an interpreter operate.</p>  \r<p class="indent2new">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a compiler <span  "answer-toggle">_____________________________________________________</span></p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2new">(ii)&nbsp;&nbsp;&nbsp;&nbsp; an interpreter?<span  "answer-toggle"> __________________________________________________</span></p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; If both a compiler and an interpreter are available for a particular programming language, under what circumstances would it be preferable to use:</p>  \r<p class="indent2new">(i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a compiler;<span  "answer-toggle">____________________________________________________</span></p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2new">(ii)&nbsp;&nbsp;&nbsp;&nbsp; an interpreter;<span  "answer-toggle"> __________________________________________________</span></p>  \r<p class="indent3new answer-toggle">______________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; In what way does an assembler differ from a compiler?</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(1)</p>  \r<p class="mark">(Total 5 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1a indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A compiler translates the <u>whole</u> source code;</p>  \r<p class="indent3new indentright m-t-0">Into object code; <b>A</b> machine code (instructions); <b>A</b> executable file;~</p>  \r<p class="indent3new indentright"><i>If implied that compiler executes then talked out</i></p>  \r<p class="levelms">Max 1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Interpreter translates line by line; as it executes/runs;</p>  \r<p class="indent3new indentright"><i>If object code created then talked out</i></p>  \r<p class="levelms">Max 1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1a indentright" >(b)&nbsp;&nbsp;&nbsp;&nbsp; (i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use compiler when execution should run as fast as possible;</p>  \r<p class="indent3new indentright m-t-0">When development is finished; when giving program to end user to run; to protect source code from end user interference;</p>  \r<p class="indent3new indentright m-t-0">To turn program without translator/compiler on computer;</p>  \r<p class="levelms">Max 1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent2 indentright">(ii)&nbsp;&nbsp;&nbsp;&nbsp; Use interpreter during development time/testing/debugging/finding/correcting mistakes;</p>  \r<p class="indent3new indentright m-t-0">To support platform independence;</p>  \r<p class="indent3new indentright m-t-0"><i>(e.g. Java </i><i><span style=\'font-family:Symbol\'>®</span> bytecode, bytecode interpreted)</i></p>  \r<p class="levelms">Max 1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(c)&nbsp;&nbsp;&nbsp;&nbsp; Assembler translates assembly/low level program;</p>  \r<p class="indent2new indentright m-t-0">Compiler translates high level program;</p>  \r<p class="indent2new indentright m-t-0">Assembler maps 1:1; compiler maps 1:many;</p>  \r<p class="levelms">Max 1</p>  \r<p class="mark">[5]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">This is not a new question. However, candidates provided very confused answers.</p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; A compiler translates a high level language program into object code. It does NOT execute it. An interpreter translates a line of code as it executes. It does NOT produce object code. Many candidates wrongly seemed to be under the impression that binary code is synonymous with machine code.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Some very weak answers were given such as ‘a compiler is used for large programs, an interpreter for small programs’ – sometimes the other way round! Creditworthy answers suggested the use of a compiler to protect source code or for distribution after development is completed and the use of an interpreter during program development while debugging.</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(c)&nbsp;&nbsp;&nbsp;&nbsp; A significant number of candidates had no idea that an assembler translates assembly code programs. Many wrongly assigned it the job of linker/loader or even for reverse engineering.</p></h5>', 'notes': '', 'resources': ''}, 'QS00N404': {'question': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">A particular computer language is supplied with an interpreter and a compiler.</p>  \r<p class="indent1">(a)&nbsp;&nbsp;&nbsp;&nbsp; Give <b>one</b> reason for using the interpreter during development.</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(1)</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1">(b)&nbsp;&nbsp;&nbsp;&nbsp; Give <b>two</b> reasons for using the compiler to translate the completed program.</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="indent2new answer-toggle">___________________________________________________________________</p>  \r<p class="mark">(2)</p>  \r<p class="mark">(Total 3 marks)</p></h5>', 'markscheme': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">&nbsp;</p>\r<p class="indent1 indentright m-t-0">(a)&nbsp;&nbsp;&nbsp;&nbsp; Can run just a part of the program so easier to find problems.</p>  \r<p class="indent2new indentright m-t-0">Do not have to keep re–compiling the whole program when correcting errors</p>  \r<p class="indent2new indentright"><i>Any 1 × 1</i></p>\r<p class="levelms">1</p></h5><h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="indent1 indentright">(b)&nbsp;&nbsp;&nbsp;&nbsp; Produces complete object code / executable version</p>  \r<p class="indent2new indentright m-t-0">No need to install language to run the program / needs less memory</p>  \r<p class="indent2new indentright m-t-0">Runs faster as no time wasted on translation.</p>  \r<p class="indent2new indentright m-t-0">User cannot change source code</p>  \r<p class="indent2new indentright"><i>Any 2 × 1</i></p>\r<p class="levelms">2</p>  \r<p class="mark">[3]</p></h5>', 'examinerreport': '<h5 class=\'contentSeparator\' style=\'page-break-inside: avoid;\'><div class=\'qnumber-hidden\'></div><p class="question">Candidates mostly knew the difference between an interpreter and a compiler but some found it hard to relate their knowledge to the question. In part (a) good candidates made the advantages of the interpreter during development very clear. Correct answers referred to the time saved during debugging as there is no need to re-compile after a change to the source code or the idea of being able to execute just part of the source code to help find errors. Weaker candidates tended to say “it is easier” and scored no marks.</p>  \r<p class="indent1new">Part (b) produced good answers from the best candidates dealing with the idea that an executable file is produced so there is no need for translation software at run-time. Many also realised that object code is less likely to be tampered with by users than source code. A minority of candidates had very little knowledge of the function of the translation software.</p></h5>', 'notes': '', 'resources': ''}, '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: