“A programing language is like a natural

“A programing language is like a natural, human language in that it favor certain metaphor’s, images, and way of thinking”
(Seymour papert)
• A programming language is mean of communication between a user and computer.
• It is a set of words and grammatical rules (syntax) for instructing a computer to perform specific tasks.
• Programming languages can be used to create programs that control the behavior of a computer and serve any purpose.
GENERATIONS OF PROGRAMMING LANGIAGES
• The first generation languages are low level languages that are machine language.
• The second generation languages are also low-level languages that generally consist of assembly languages.
• The third generation languages are high level languages such as C.
• The fourth generation languages arelanguages that consist of statements similar to
statements in a human language. Fourth generationlanguages are commonly used in databaseprogramming and scripts.
• The fifth generation languages areprogramming languages that contain visual tools to help develop a program. A good example of a fifth generation language is Visual Basic.
TYPES OF PROGRAMMING LANGUAGES
There are two types of programming languages
• Low Level Language
• High Level Language
Low Level Language
• Low level computer languages are either machine codes or are very close them.
• A computer cannot understand and execute given to it in high level languages or in English.
• It can only understand and execute instructions given in the form of machine language i.e. binary.
• A low level language does not need a compiler or interpreter to run the program, the processor run low level codes directly.
• Deep knowledge of hardware is required to write program.

TYPES OF LOW LEVEL LANGUAGE
There are two types of low level language
• Machine language
• Assembly language
Machine language
• The set of symbolic instructions in binary form that is called machine language.
• Machine code is a system of instruction and data executed directly by a computer’s CPU ,the lowest level programming language that only be understood by computer.
• It is pure binary.
• Every processor or processor family has its own machine code instruction set.
• Example: 10001000110011
Assembly Language
• Each assembly language is specific to a particular computer architecture and operating system.
• In Assembly language, machine instructions are replaced with English like words, these English likes words are called “Ne-Monics”i.e. ADD, MOV,SUB.
• They can be translated into machine code before CPU can process the instruction.
• A typical assembly language consists of 3 types of instruction statements that are used to define program operations:
• Opcode mnemonics
• Data definitions
• Assembly directives
• Program written in assembly language as easier to write and modify than machine language.
• Assembly language use a translator called “assembler”, which translated assembly language to machine language.
• Example:
• Machine language :10110000 01100001
• Assembly language:mov a1, #061h
• Meaning:Move the hexadecimal value 61 (97 decimal) into the processor register named “a1”.
High Level Language
• A high level language is a programming language.
• It is several steps removed from the actual code run on a computer’s processor.
• .High-level source code contains easy-to-read syntax that is later converted into a low-level languagewhich can be recognized and run by a specific CPU.
• These languages are normally used to write application programs.
• Every high level language have its rules and regulation to write a program, these rules and regulations are called “syntax”.
• Each instruction must follow syntax of the language.
• High level language is easy for human to understand and develop, but for computer it is impossible to understand instructions directly, so a software called “compiler” .
• Compiler is used to convert high level language to machine language.

Example
C (1971-72)
Paradigm:imperative (procedural), Structure
Design Developed By:
• C was originally developed by Dennis Ritchie between 1969 and 1973 at Bell Labs.
• Used to re-implement the UNIX operating system.
• It has since become one of the most widely used programming languages of all time.
• It was designed to be compiled low-level access to memory.
• It provide language constructs that map efficiently to machine instructions, and to require minimal run-time support.
• Despite its low-level capabilities.
Syntax:
• C has a formal grammar specified by the C standard
• C source files contain declarations and function definitions
• Function definitions, in turn, contain declarations and statements.
• Declarations either define new types using keywords is usually by writing the type followed by the variable name.
• Keywords such as char and int specify built-in types. Sections of code are enclosed in braces ({ and }, sometimes called “curly brackets”) to limit the scope of declarations and to act as a single statement for control structures.
• Structured programming is supported by if else, do while, while, for loop.
• Non-structured programming statement directly designed within a function.
Character set:
The basic C source character set includes the following characters:
• Lowercase and uppercase letters of ISO Basic Latin Alphabet: a–z A–Z.
• Decimal digits: 0–9.
• Graphic characters: ! ” # % ; ‘ ( ) * + , – . / : ; ? \ ^ _ { | } ~.
• Whitespace characters: space, horizontal tab, vertical tab, form feed, newline t.
Typing discipline: static, weak, manifest, nominal
Filename extension: .c, .h

C++ (1972)
Paradigm:Multi-paradigm, procedural, functional, object oriented, generic
Design Developed By:
• In 1979, Bjarne Stroustrup, a Danish computer scientist, began work on “C with Classes”, the predecessor to C++ at Bell Labs.
• C++ programming language was initiallystandardized in 1998.
• It was designed with a bias toward system programming and embedded, resource-constrained and large systems, with performance, efficiency and flexibility of use as its design highlights.
• C++ has also been found useful in many other contexts, with key strengths being software infrastructure and resource-constrained applications.

Typing discipline:Static, nominative, partially inferred Implementation language C++ or C
Filename extension: .C, .cc, .cpp, .cxx, .c++, .h, .hh, .hpp, .hxx, .h++

PASCAL(1970)
Paradigm: ImperativeStructured
Design Developed By:
• Pascal is an imperative and procedural programming language, which Niklaus Wirth designed in 1968–69 and published in 1970.
• As a small, efficient language intended to encourage good programming practices using structured programming and data structuring.
• It is named in honor of the French mathematician, philosopher and physicist Blaise Pascal.
• Pascal was developed on the pattern of the ALGOL 60 language.
• Wirth had already developed several improvements to this language as part of the ALGOL X proposals, but these were not accepted.
• Pascal was developed separately and released in 1970.
• A derivative known as Object Pascal designed for object-oriented programming was developed in 1985; this was used by Apple Computer and Borland in the late 1980s and later developed into Delphi on the Microsoft Windows platform.
• Extensions to the Pascal concepts led to the Pascal-like languages Modula-2 and Oberon.

Language Constructs:
• Original form, is a purely procedural language
• Includes the traditional array of ALGOL-like control structures with reserved words.
• Pascal also has data structuring constructs not included in the original ALGOL 60 types,
• Such constructs were in part inherited or inspired from Simula 67, ALGOL 68, Niklaus Wirth’s own ALGOL W and suggestions by C. A. R. Hoare.
• Pascal programs start with the program keyword with a list of external file descriptors.
• Then follows the main block bracketed by the begin
• end keywords. Semicolons separate statements, and the full stop (i.e., a period) ends the whole program (or unit). Letter case is ignored in Pascal source
Typing discipline:Static Strong Safe
Filename extension: .pp, .pas, .inc

BASIC (1964)
Paradigm: Non-structured, later procedural, later object-oriented
Design Developed By:
• An acronym for Beginner’s All-purpose Symbolic Instruction Code
• family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use
• In 1964, John G. Kemeny and Thomas E. Kurtz designed the original BASIC language at Dartmouth College.
• At the time, nearly all use of computers required writing custom software, which was something only scientists and mathematicians tended to learn.
• In addition to the language itself, Kemeny and Kurtz developed the Dartmouth Time Sharing System (DTSS), which allowed multiple users to edit and run BASIC programs at the same time.
• This general model became very popular on minicomputer systems
• The emergence of early microcomputers in the mid-1970s led to the development of the original Microsoft BASIC in 1975.
• Many early video games trace their history to one of these versions of BASIC.
• These machines almost always had a BASIC installed by default, often in the machine’s firmware or sometimes on a ROM cartridge.
• BASIC fell from use during the later 1980s as newer machines with far greater capabilities came to market and other programming languages (such as Pascal and C) became tenable.
• In 1991, Microsoft released Visual Basic, combining a greatly updated version of BASIC with a visual forms builder.
• This reignited use of the language and “VB” remains a major programming language to this day, in the form of VB.net.

JAVA (1995)
Paradigm: Multi-paradigm: object-oriented (class-based), structured, imperative, generic, reflective, concurrent
Design Developed By:
• Java was originally developed by James Gosling at Sun Microsystems (which has since been acquired by Oracle Corporation).
• In 1995 as a core component of Sun Microsystems’ Java platform.
• The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.
• The original and reference implementation Java compilers, virtual machines, and class libraries were originally released by Sun under proprietary licenses.
• Sun relicensed most of its Java technologies under the GNU General Public License.
• Others have also developed alternative implementations of these Sun technologies.
• The latest version is Java 11, released on September 25, 2018 which follows Java 10 after only six months in line with the new release schedule. Java 8 is still supported.
• But there will be no more security updates for Java 9 Versions earlier than Java 8 are supported by companies on a commercial basis.
Typing discipline:Static, strong, safe, nominative, manifest
License: GNU General Public License, Java Community Process
Filename extensions:.java, .class, .jar