Unit 4 Programming Languages

Get Started. It's Free
or sign up with your email address
Unit 4 Programming Languages by Mind Map: Unit 4 Programming Languages

1. Programming Paradigms

1.1. Imperative Programming

1.1.1. Sequence of commands

1.1.2. State changes

1.1.3. Examples: C, Assembly

1.2. Declarative Programming

1.2.1. Describes what should be done

1.2.2. Focus on the result rather than control flow

1.2.3. Examples: SQL, HTML

1.3. Functional Programming

1.3.1. Pure functions

1.3.2. Immutability

1.3.3. First-class functions

1.3.4. Examples: Haskell, Lisp

1.4. Object-Oriented Programming

1.4.1. Objects and classes

1.4.2. Encapsulation, inheritance, polymorphism

1.4.3. Examples: Java, С++

1.5. Logic Programming

1.5.1. Facts, rules, and inference

1.5.2. Based on formal logic

1.5.3. Examples: Prolog, Mercury

2. Specific Progming Languages

2.1. Java

2.1.1. Is developed by Sun Microsystems in 1990s and used for developing interactive applications for the Internet.

2.2. C++

2.2.1. Is an object-oriented superset of С which combines the best features of a structured high-level language and an assembly language that uses computer resources efficiently and is easy to code.

2.3. HTML

2.3.1. Stands for HyperText Markup Language; it is a page-description language used to prepare a text for display in a browser program

2.4. Pascal

2.4.1. Named after the mathematician Blaise Pascal, was created primarily to fill the need for a teaching vehicle that would encourage structured programming. It is often used in college computing courses.

3. History of Programming Languages

3.1. Pre-20th Century

3.1.1. Punch Cards

3.2. Pre-19th Century

3.2.1. Programmable Looms

3.2.2. Player Piano Scrolls

3.3. Mathematical Foundations

3.3.1. Lambda Calculus (1930s-1940s)

3.3.1.1. Developed by Alonzo Church, mathematical abstraction for algorithms Still influential in language design

3.3.2. Turing Machines (1930s-1940s)

3.3.2.1. Developed by Alan Turing, fundamental in the development of computers and programming theory

3.4. First Generation (1GL) — Machine Language

3.4.1. Description

3.4.1.1. Programmers used machine languages, which consist of instructions directly executed by the processor. These were low-level languages, and programs were written in binary code, which was understood only by the machine.

3.4.2. Example

3.4.2.1. Used in early computers such as UNIVAC I and IBM 701.

3.5. Second Generation (2GL) — Assembly Language

3.5.1. Description

3.5.1.1. Second-generation languages, known as assembly languages, used mnemonic codes that simplified program writing compared to machine code. Programmers could use textual instructions (e.g., ADD, MOV), which were closer to human-readable forms, but still dependent on the specific machine architecture.

3.5.2. Example

3.5.2.1. Assembly languages used in early computers.

3.6. Third Generation (3GL) — High-Level Programming Languages

3.6.1. Description

3.6.1.1. Third-generation languages (3GLs) were designed to be more abstract and portable than previous generations. These languages were not tied to specific machine architectures and allowed programmers to write more complex programs with greater ease. They are closer to human language and abstracted away many of the machine-specific details.

3.6.2. Example

3.6.2.1. FORTRAN: Primarily used for scientific and engineering calculations.

3.6.2.2. LISP: A language used for artificial intelligence research.

3.6.2.3. COBOL: Used for business and financial systems.

3.6.3. Characteristics

3.6.3.1. Portability: Programs written in 3GLs can often run on different types of computers, provided a suitable compiler or interpreter is available.

3.6.3.2. Abstraction: These languages allow developers to focus on solving problems rather than managing hardware details.

3.6.3.3. Influence: These languages strongly influenced the development of modern programming languages.