Programming languages are used to convert sets of instructions into a vocabulary that a computer can understand. The goal is to compile instructions into a format that will allow the computer to complete a specific task (see Figure 7.1). Over the years, these languages have evolved into generations:
- Generation 1: Machine language, the native language of a computer.
- Generation 2: Assembly language, human-readable notation that translates easily into machine language.
- Generation 3: High-level languageprogramming languages such as C+ and FORTRAN.
- Generation 4: Very high-level language, typically those used to access databases. SQL is an example of a fourth-generation language.
- Generation 5: Natural language. These are categorized by their use of inference engines and natural language processing. Mercury and Prolog are two examples of fifth-generation languages.
Figure 7.1. Programming languages.
After the code is written, it must be translated into a format that the computer will understand. These are the three most common methods:
- Assembler A program translates assembly language into machine language.
- Compiler A compiler translates a high-level language into machine language.
- Interpreter Instead of compiling the entire program, an interpreter translates the program line by line. Interpreters have a fetch-and-execute cycle. An interpreted language is much slower than a compiled or assembly language.
Hundreds of different programming languages exist. Many have been written to fill a specific niche or market demand. Examples of common programming languages include these:
- Active X This language forms a foundation for higher-level software services, such as transferring and sharing information among applications. ActiveX controls are a Component Object Model (COM) technology.
- COBOL Common Business Oriented Language is a third- generation programming language used for business finance and administration.
- C, C-Plus, C++ The C programming language replaced B and was designed by Dennis Ritchie. C was originally designed for UNIX and is very popular and widely used.
- FORTRAN This language features an optimized compiler that is widely used by scientists for writing numerically intensive programs.
- HTML Hypertext Markup Language is a markup language that is used to create web pages.
- Java This is a relatively new language, developed in 1995 by Sun Microsystems.
- Visual Basic This programming language was designed to be used by anyone, and it makes it possible to develop practical programs quickly.
Object-oriented programming (OOP) is a modular form of programming that supports object technology. It allows pieces of software to be reused and interchanged between programs. This method of programming has been widely embraced because it is more efficient and results in lower programming costs. Because it makes use of modules, a programmer can easily modify an existing program. New modules can be inserted into the program that inherit features from existing objects. Objects that share a particular structure and behavior are said to belong to a particular class. Code from one class can be passed down to another through the process of inheritance. Java and C++ are two examples of OOP languages.
Some of the major concerns and issues of OOP include these:
- Encapsulation This is the act of hiding the functionality of a process inside classes. It allows a developer to separate distinct parts of code so there is no direct interaction between the various parts.
- Polymorphism Technically, this means that one thing has the capability to take on many shapes. In OOP, it is used to invoke a method on a class without having to care about how the job gets done. The results will be different because variables within the object itself might be different. Even though the same methods are being passed to different objects, the results will not be the same.
- Polyinstantiation Users at different security levels will see different information about the same object. This is widely used by the government and military and can be used to protect sensitive or secret information. Without polyinstantiation, an attacker might be able to use inference to determine secret information.
Common Object Request Broker Architecture (CORBA) is vendor-independent middleware. Its purpose is to tie together different vendor products so they can seamlessly work together over distributed networks. The heart of the CORBA system is the Object Request Broker (ORB). The ORB simplifies the process of a client requesting server objects. The ORB finds the object; transparently activates it, if necessary; and then delivers the requested object back to the client.