Verified Document

High Level Languages In Software Development Essay

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...

Finally, debugging is vastly improved through the use of documentation within the code used for a high level language.
Choosing and using a high level language depends on many factors but the most obvious choice is the historical precedent for software development within a family of machines or specific types of programs. Applications in most landscapes of software design have extensive libraries of generated code sources that allow implementation of many levels of code sharing and documentation review. Some applications demand a specific type of language simply because of the nature of the operations where coding was developed for that language. The high level language FORTRAN2008 for example has roots in the use of large numerical processes and with object oriented support, floating point operations and support for most electrical engineering processes (IEEE) and is therefore used as the primary language in programming for applications using supercomputers, astronomy, physics and chemistry (Chapman, 2008). The programmer may be a critical aspect in the choice of a language considering familiarity, type of application and the time constraints within the development of the program. Some programmers utilize programs to solve problems in other aspects of life outside of the program while other programmers have a primary interest in programming and computer. Some languages are suitable for one or the other type of programmer. One final aspect of choosing a language is portability where some languages have very narrow limits for application where others allow broad implementation over many platforms.

High Level programming languages are typically divided into four rough groups: imperative languages, functional languages, logic programming languages and the broader classification "other" (Watson 1989). Imperative languages use assignment and variable implementation in the operations and routines performed. Functional languages rely on implementing functions or procedures and implement recursion or repeats of functions to modify data and outcomes. Logic programming is a very high level type of coding where the programmer supplies a problem specification in a formal form. Other represents a spectrum of languages that a programmer can implement over many applications that fall outside of the above groups.

Two dramatically different high level languages with remarkable capability for software developers are C++ (pronounced see plus) and Python. C++ is one of the most widely applied computer languages and has aspects of both high level and low level languages, however for most programmers; the higher functionality of the language is utilized. Python is a strictly high level language with a powerful library of syntax and built in operations for the programmer.

C++ was developed initially to provide large software systems with the capability of managing small control and conciseness through the implementation of a construct called a class (Stroustrup 2000). The use of a class allows data contained within a class to be given a specific list of functions by association so that global assignments of functions can be given to classes of data independent of location and type. C++ allows complex expressions within classes and for all data assigned to that class to be written using conventional algebraic or object oriented form. C++ also allows a programmer to assign new functions to operators a factor that can cause problems between different software developers should code be transferred without proper documentation. The complexity of the language and capability of shelving data within classes as architectures called stacks has promoted use of the programming language in high performance applications such as server architecture, video game design, and entertainment software (Sutter 2004). C++ was designed to provide a programmer with wide latitude of choices in implementing the programming language with the following rules implemented by the creator, Bjarne Stroustrup:

C++ is designed to be a statically typed, general-purpose language that is as efficient and portable as C

C++ is designed to directly and comprehensively support multiple programming styles (procedural programming, data abstraction, object-oriented programming,…

Sources used in this document:
Stroustrup, B. (2000) C++ Programming Language: Special Edition. Addison Wesley Professional, Chicago.

Sutter, Herb (2004). Exceptional C++ Style. Addison-Wesley.

Zelle, J. (2010) Python Programming: An Introduction to Computer Science 2nd Ed. Franklin Beedle & Associates Inc. New York.
Cite this Document:
Copy Bibliography Citation

Related Documents

Software Development
Words: 2263 Length: 8 Document Type: Essay

Essay Topic Examples 1. The Evolution of Software Development Methodologies:     This essay could explore the transition from traditional waterfall models to agile methodologies in software development. The focus could be on how these methodologies have influenced project success rates, communication within development teams, and the ability to adapt to changing requirements. 2. The Role of Artificial Intelligence in Software Development:     Consider writing about the growing influence of AI on software development processes. This essay

Software Development Life Cycle
Words: 2835 Length: 10 Document Type: Essay

Software Development Life Cycle Agile Software Development Agile software development is a popular software development process or methodology that has gained a lot of popularity in the recent years due to its effectiveness and ease of use. Firstly, it encourages collaboration and teamwork throughout the life cycle of development and this makes it easy to plan and implement. Agile software development is all about breaking a task into small chunks that make it

Software Development Methodologies Effective Software
Words: 1460 Length: 5 Document Type: Book Report

If the sequence characteristic of the waterfall model implied a difficulty in reverting to phases that had been deemed as completed, with the UML structure, new phases can simply be added into the model and treated in connection to the phases that are actually impacted and to which these new phases relate to. One of the disadvantages of UML is that the entire modeling process is, in fact, just an

Software Development and Databases
Words: 576 Length: 2 Document Type:

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 Requirements Engineering Computer Software Technology Has...
Words: 1305 Length: 5 Document Type: Term Paper

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

Software Testing Strategy
Words: 8852 Length: 24 Document Type: Term Paper

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

Sign Up for Unlimited Study Help

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