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...
Standard-Relational and Object-Relational Databases Software development has experienced evolution over the past few decades given the increasing demands for better information systems in today's society, especially in the modern business environment. The evolution of software development during this period has also been influenced by the tremendous changes in the ways with which computers are used and programmed. The changes in software development have contributed to the emergence of different categories of
Software Testing Strategy Computers and their applications have brought about waves of changes in various areas of science and technology. It is also gaining widespread prominence in the field of business and management. So the requirement of a quality oriented technological implementation, having a range of usage is the order of the day. The few gazillion dollars worth software industry is constantly evolving with the needs of people and organizations across
Software Engineering Requirements Are Volatile: Design, Resource Allocation, and Lifecyles Aren't So Flexible For the majority of software development initiatives, bad requirements are a fact of life. Even when there is a high quality elicitation process, requirement change throughout the software lifecycle model. This is expected, if not desired to build a system that the customers wants and will use. But, it's difficult to change design and resource allocation once these have
Software Requirements Engineering Computer software technology has improved significantly over the past decade leading to more efficient and comprehensive information systems. With the innumerable computing systems there is also a corresponding increase in the complexity of these systems. Today software requirements analysis has become an indispensable part of software development. Over the years there has been a continued stress on the importance of a properly planned project evaluation, requirement specification and
Thus, providing development teams more problems during the testing process. Lee J. White, in his study Domain Testing and Several Outstanding Research Problems in Program Testing indicates that in the area of program testing, there are several significant problems which need to be addressed. White indicates some of these problems include the following. The determination of a scientifically sound basis for the selection of test data The development of program specifications which can
Silver Bullet During the 1970's, companies had difficulty delivering software within the constraints of schedule, budget, and quality (Food for Thought, 2005). The problem grew worse over time. Many projects undertaken in the 1980's and 1990's were complete disasters, failing to deliver anything, grossly exceeding budget and schedule deadlines, and delivering poor quality. Also, during the 1980's a "software crisis" occurred in which the spending on software maintenance exceeded spending
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