Home > Software Design and Development > Core > Software Development Cycle > Translation methods
In the implementation phase of the software development cycle, previously developed algorithms are converted to a form that can be processed by a computer. The translation method being used should be recognised, particularly in the case of code.
H1.1 explains the interrelationship between hardware and software.
H1.2 differentiates between various methods used to construct software solutions.
Students should learn about the translation methods used in developing software solutions.
The following headings may help you navigate:
A computer has two primary components:
The software that provides the high-level language interface to the computer can take several different forms: compilers, interpreters and hybrid implementation systems.
This software depends not only on the computer’s machine language but also on the operating system, which supplies higher-level instruction sets for resource management, input and output file management, etc. The operating system and the language implementations are layered over the machine language of a computer and can be described as creating a virtual language interface.
Programs written in high-level languages are translated into machine code, which is executed directly on the computer. C++, COBOL and Visual Basic 6.0 are all languages that have compilers. The translation process has several phases but all the source code is translated into object code before the program is run:
BEGIN fetch-execute initialise the program counter REPEAT fetch the instruction pointed to by the program counter increment the program counter to point to the next instruction decode the instruction execute the instruction copy result to memory UNTIL computer is shut down END fetch-execute
The speed of the connection between the computer’s memory and its processor usually determines the speed of the computer, because instructions can usually be executed faster than they can be moved to the processor for execution. This connection is called the von Neumann bottleneck.
The advantages of compilers are that compiled programs:
The disadvantages of compilers are that:
Programs can be interpreted with no compilation at all. The interpreter program acts as a virtual machine whose fetch-execute cycle translates high-level language program statements, line by line, as they occur.
Interpretation has the advantage of allowing easy implementation of source code level debugging operations because errors are found at the time that particular line is translated and executed. Visual Basic 6.0 code is interpreted when run from within the VB Design environment.
The advantages of interpreters are that interpreted programs allow:
The disadvantages of interpretation are that:
Interpretation is a difficult process on programs written in a complicated language because the meaning of each expression and statement must be determined directly from the source code at run-time.
Incremental compilation is a hybrid between interpretation and compilation where some frequently used sections of the program are translated into machine code and stored. The program is then translated using an interpreter until the compiled sections are reached. These sections are executed from the object code in memory. This system is faster but retains some of the advantages of interpretation.
Other hybrid systems exist which translate high-level language programs to an intermediate language designed to allow easy interpretation. Java is an example of a language that is implemented in this way. Java is compiled into special machine-independent modules of bytecode in the Java Virtual Machine so it can then be interpreted across a range of operating platforms.
Fowler, A. (2000). Heinemann Software Design and Development HSC Course. Heinemann, Port Melbourne, Victoria.
Sebesta, R. (1993). Concepts of programming languages 2nd ed. Benjamin/Cummings Publishing Company, Redwood City, California.