Lecture 2
Lecture 2
Evolution of the
Major Programming
Languages
Tentative Course Outline
• Programming languages are artificial languages created to tell the computer what to do.
• They consist of vocabulary and a set of rules to write programs.
• The program development life cycle (PDLC) is an organized method of software
development.
Genealogy of Common
Languages
1-5
Copyright © 2017 Pearson Education, Ltd. All rights reserved.
Development of Programming Languages
First-Generation Languages
• Machine language:
– Consists of binary numbers (0s
and 1s)
– Is the earliest programming
language
– Is the only language the
computer understands without
translation
– Is machine dependent
• Each family of processors
has its own machine
language
Second-Generation Languages
• Assembly language:
– Resembles machine language
– Is a low-level language
– Uses brief abbreviations for
program instructions.
– A program is written in
source code (text file) and
translated into machine
language by an assembler
Third-Generation Languages
• Procedural languages:
– Are high-level languages that tell the computer what to do and how to do it
– Create programs at a high level of abstraction
– Are easier to read, write, and maintain than machine and assembly languages
– Use a compiler or interpreter to translate code
• Fortran and COBOL are third-generation languages
Procedural programming languages : the program is divided into smaller sections or units,
often called functions, procedures, or routines, each responsible for performing specific tasks.
The primary focus is on the sequence of steps that lead to the desired result, and the program
execution follows a linear or structured flow.
• Functions/Procedures, Sequential Execution, Variables, Control Structures: if-else
statements, loops (for, while), switch/case
Fortran I
1-16
Copyright © 2017 Pearson Education, Ltd. All rights reserved.
Details of Programming Languages
Structured programming languages break down programs into smaller, logically organized
components, making the flow of control clear and avoiding unstructured control flows
like GOTO statements.
• Sequential Execution, Control Structures: Selection (if-else), Iteration (loops),
Modularity: Programs are broken into smaller, manageable units
like functions or procedures, block Structures
Algol 58
Algol 60
• It was the first to have block structure, recursion, and a formal definition. It is not used now,
but it is the ancestor of most contemporary languages.
• As far as design goes, Algol 60 was without doubt the most important innovation in the
history of programming languages.
Algol 68
Pascal
Modular programming languages : The code is divided into smaller, self-contained units
called modules. Each module encapsulates a specific piece of functionality, which makes the
program easier to develop, understand, maintain, and extend. Modular programming promotes
the use of functions, procedures, or even entire code libraries to break down complex systems
into manageable parts.
• Modularity, Encapsulation: Modules hide their internal implementation details and expose
only necessary interfaces (such as functions or data) to the outside world, reducing
complexity, Reuse, Intermodule Communication, Separation of Concerns
Ada
Fourth-Generation Languages:
QBASIC or FreeBASIC
Copyright © 2017 Pearson Education, Ltd. All rights reserved.
Development of Programming Languages
Pascal
• Encourages programmers to write well-
structured programs
• Widely accepted as a teaching language
• Has been updated to reflect new approaches
to programming
C
• Combines high-level programming language with assembly language
• Programmers manipulate bits of data within a processing unit
• Difficult to learn and programming is time consuming
Sample C program
Lisp
Smalltalk
C++
Java
– C and C++ were not satisfactory for embedded electronic devices
• Based on C++
– Significantly simplified (does not include struct, union, enum, and pointer arithmetic
of C++)
– Supports only OOP
– Has references, but not pointers
– Includes support for applets and a form of concurrency
Java Evaluation
• Eliminated many unsafe features of C++
• Supports concurrency
• Libraries for applets, GUIs, database access
• Portable: Java Virtual Machine concept, JIT compilers
• Widely used for Web programming
• The PDLC was introduced in the 1970s to address problems in creating programs.
• It provides an organized plan for breaking down the task of program development into
manageable parts.
• Six phases of the PDLC:
1. Defining the problem
2. Designing the program
3. Coding the program
4. Testing and debugging the program
5. Formalizing the solution
6. Implementing and maintaining the program
• Coding requires the translation of the algorithm into specific program instructions.
• An appropriate programming language is chosen, and the code is typed according to its
syntax rules.