High Level Languages in Software Development
A software developer must by the very nature of interaction with a computer, utilize a programming language. The language is simply a means to organize and specify that algorithm functions occur when necessary to achieve a given outcome. There are many versions of languages from both a historical and current context; however, most computer languages can be broadly grouped as either high level or low level. Low level languages are commonly called "machine language" or closely resemble that type of notation in both operation and code used to implement an algorithm. These low-level languages implement the operations used by underlying hardware. High level languages by contrast are used to group and simplify statements and operations of low level languages so that the task of coding by a software developer is simplified.
High level languages allow a problem to be solved through operations by abstracting the underlying operations. The coder can express operations and algorithms as written sentences or specific variable code or in many cases now pictures and symbolic movement of images within a coding environment. The high level languages can then be utilized by the underlying machine by translating the expressions used by the software developer into machine language through a program called a compiler.
Most of the specific operations for a computer are performed at the lowest level with binary digits. Early coding utilized specific inputs with binary digits and faced problems that included high probability of error, long strings for programming, and difficult modification of the code after assembly and implementation. Early jumps in programming beyond simple binary representation included the use of assemblers to translate simple operations so that standard operations including memory addresses and transferring data into specific locations can be performed routinely. The operations could also be standardized so that the programmer could focus on the actual movement of data and operation rather than maintaining a list of locations and correcting those locations as changes were made in the program. Despite the advances made through assemblers and macro assemblers, much of the "work" performed by a software developer in using an assembler concerned with managing, sequencing and specifying locations for operations rather than solving the specific problem that the data and code was intended.
The advantages of high level languages over low level languages are not typically observed at the machine level as the eventual code for each consists primarily of zeroes and ones. The major advantage for the software developer lies in the almost endless capacity for creativity in solving specific problems. Important characteristics include the ability to break up problems into modules, simple expression of symbolic logic functions, meaningful names and notations for components in the program, and most important unlimited capacity for rigorous documentation within the programming at the high level within the language. In addition software developed on high level languages is more portable allowing significant independence in the type of machine where software is used in contrast to low level languages where programs are very machine specific. The advantages of both high level languages and low level languages are shown in Table 1.1 (Watson 1989)
High level
Low Level
Easy to learn and understand
Access to machine specific operations
Programs can be self documenting
Time and space are efficient in many operations
Rapid solution of problems
Improved Portability
Simplified debugging
Simplified modification and maintenance
Debugging constitutes a significant portion of the time used by a software developer. This difference in debugging between high level languages and low level languages is a critical reason for the wide level of applications possible when using a high level language. Documentation and the use of symbolic, sentence, or even object manipulation in programming allows a developer much simpler review and capacity for spotting errors in the program. Compilers can be used to spot simple errors before a program is implemented allowing checks of operations that would not be detected until specific operations occurred in run time. Some languages...
Our semester plans gives you unlimited, unrestricted access to our entire library of resources —writing tools, guides, example essays, tutorials, class notes, and more.
Get Started Now