Assembly Language • The first languages were actually direct machine language, where programmers had to program it with direct binary numbers of 1’s and 0’s. It was quite clear to see that this method was incredibly difficult to program, which allowed the introduction of Assembly languages • Programmers who use assembly language do so for the following reasons: o Need to make use of specific hardware or parts of the hardware o To complete specific machine dependent instructions o To ensure that too much space is not taken up in RAM o To ensure code can completed much faster Assembly languages allow programmers to program with mnemonics. e.g. o LDA Load - this will ensure a value is added to the accumulator o ADD Addition - this will add the value input or loaded from memory to the value in the accumulator o STO, Store - stores the value in the accumulator in RAM • • • • • This is used rather than binary code which allowed continuation of working directly with the hardware but removed an element of complexity A mnemonic is received by the computer and it is looked up within a specific table An assembler is needed here to check the word so that it can be converted into machine code If a match from the word is found e.g. STO the word is replaced with the relevant binary code to match that sequence Translators Compilers & Interpreters • Programmers will write program source code using high-level languages e.g. Python, Java, C# etc. As programmers, we can understand source code as it is descriptive, easy to read, maintain and debug. However this is not good for the hardware as it needs to be converted into binary to allow the hardware to understand and execute it, this is known as machine code. For this to work it needs to pass through a translator first. There are two types of translators - a compiler and an interpreter Compiler • This method will translate a program into machine code. Compilers convert the source code in one go into an executable file ready for distribution. This method is used mainly when a program is finished with no syntax or logical errors • • Compiling may take time to be processed, however, this can be used over without needing to be recompiled every time, bearing in mind that the program contains no errors Error reports are produced after a program has been translated. Common errors in code will allow the computer to crash and not respond, it’s important to be aware that if there are errors the source code must be changed to compile again Interpreter • This is the method that directly sends the source code to the machine code. This will translate each line of code individually, if an error occurs the program will stop and an error message will occur. Once the error message is fixed, the program can carry on running from where the error occurred ough both translators find errors in code, they do not debug the errors - this is done by the programmer Advantages & Disadvantages Compiler Advantages Disadvantages Run quickly as the program as the source code has been stored to be translated Due to all code being compiled at the same time there must be enough memory space to handle this, if not and virtual memory is used it can be much slower Compilers optimise the code, this code will run quicker and take up less memory space If there are errors in the code the compiler will not identify directly where the error lies, making it difficult to debug Original source code will not be seen, which is ideal for programmers to stop work being copied It is designed solely for one specific processor If the program is changed it must be recompiled Interpreter Advantages Disadvantages Each line of code has to be interpreted Program will always run, it will just stop when it separately by the CPU, which can lead to finds a specific syntax error in the code slower execution Every time the program is run it has to be It is easier to debug and understand where translated, due to no instructions being particular code has gone wrong stored Interpreters do not store instructions and are not They cannot optimise code, it is translated stored for later use, this means they require less and executed as it is RAM to process the code CIE IGCSE Computer Science Revision Notes IGCSEComputer ScienceCIERevision Notes4. Software4.2 Types of Programming Language, Translators & IDEsIDE IDE Download PDF IDE An integrated development environment (IDE) is software that consolidates basic tools required to write and test software to make a programmer's journey effective and useful, this will ensure they have key features to improve programming code and ensure it does as instructed. Some features are: • • • • • • • • Basic code formatting - changing the font, size of the font, making text bold etc Coloured keywords in source code - e.g. Python code print, input etc turn purple, if turns orange. This makes it easy to see keywords Code Editing - this will allow users to write and manipulate source code, it includes features such as auto-completion and auto-correction of code, bracket matching, syntax checks etc Commenting code - this allows sections of code to be commented out easily to stop it from being run or as comments on what the program is doing Identifying errors - highlight particular areas of code or provide direct error messages where the error may have appeared e.g. indentation errors etc Run-Time environment - to allow the program to run and see its corresponding output Debugger - this will identify and remedy errors within the source code. This can provide a step through command also which provides step by step instructions and shows what is happening to the code line by line. This method is amazing for catching logical errors Libraries - extra modules that are not included in the main programming language e.g. math in Python for extra mathematical commands • • Graphical User Interface Builder - will create a graphical design rather than working with source code Translator - which compiles or interprets the code Exam Tip • You could be asked to Identify or Describe different features within an Integrated Development Environment (IDE) this number could range from 2-5