SlideShare a Scribd company logo
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                     Computer Fundamentals: Pradeep K. Sinha & Priti Sinha




Ref Page   Chapter 12: Computer Languages                   Slide 1/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Learning Objectives

      In this chapter you will learn about:
           § Computer languages or programming languages
           § Three broad categories of programming languages –
             machine, assembly, and high-level languages
           § Commonly used programming language tools such as
             assembler, compiler, linker, and interpreter
           § Concepts of object-oriented programming languages
           § Some popular programming languages such as
             FORTRAN, COBOL, BASIC, Pascal, C, C++, C#, Java,
             RPG, LISP and SNOBOL
           § Related concepts such as Subprogram, Characteristics of
             a good programming language, and factors to consider
             while selecting a language for coding an application




Ref Page 208          Chapter 12: Computer Languages                   Slide 2/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
 Broad Classification of
 Computer Languages

      § Machine language
      § Assembly language
      § High-level language




Ref Page 209       Chapter 12: Computer Languages                    Slide 3/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                               Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Machine Language

      § Only language of a computer understood by it
        without using a translation program
      § Normally written as strings of binary 1s and 0s
      § Written using decimal digits if the circuitry of
        the computer being used permits this




Ref Page 209         Chapter 12: Computer Languages                   Slide 4/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
  A Typical Machine Language
  Instruction Format


                   OPCODE                        OPERAND
               (operation code)              (Address/Location)


     § OPCODE tells the computer which operation to perform
       from the instruction set of the computer
     § OPERAND tells the address of the data on which the
       operation is to be performed




Ref Page 210          Chapter 12: Computer Languages                   Slide 5/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                   Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  A Sample Machine Language Program

     001000000000001100111001                               10001471
     001100000000010000100001                               14002041
     011000000000011100101110                               30003456
     101000111111011100101110                               50773456
     000000000000000000000000                               00000000


                  In Binary                                  In Decimal
       (Difficult to read and understand)         (Easier to read and understand)




Ref Page 210            Chapter 12: Computer Languages                    Slide 6/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                 Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  Advantages & Limitations of
  Machine Language

      Advantage

          § Can be executed very fast

      Limitations

          §    Machine Dependent
          §    Difficult to program
          §    Error prone
          §    Difficult to modify




Ref Page 210           Chapter 12: Computer Languages                   Slide 7/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                   Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Assembly/Symbolic Language

      Programming language that overcomes the limitations of machine
      language programming by:

      §   Using alphanumeric mnemonic codes instead of numeric codes for
          the instructions in the instruction set
          e.g. using ADD instead of 1110 (binary) or 14 (decimal) for
          instruction to add
      §   Allowing storage locations to be represented in form of alphanumeric
          addresses instead of numeric addresses
          e.g. representing memory locations 1000, 1001, and 1002 as FRST,
          SCND, and ANSR respectively
      §   Providing pseudo-instructions that are used for instructing the
          system how we want the program to be assembled inside the
          computer’s memory
          e.g. START PROGRAM AT 0000; SET ASIDE AN ADRESS FOR FRST




Ref Page 211            Chapter 12: Computer Languages                    Slide 8/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                 Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  Assembler

      § Software that translates as assembly language
        program into an equivalent machine language program
        of a computer


         Assembly     Input                  Output       Machine
         language                                         language
                                Assembler                 program
         program


                          One-to-one correspondence
   (Source Program)                                          (Object Program)




Ref Page 212           Chapter 12: Computer Languages                   Slide 9/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
  An Example of Assembly
  Language Program


      Mnemonic       Opcode                            Meaning

          HLT           00        Halt, used at the end of program to stop
          CLA           10        Clear and add into A register
          ADD           14        Add to the contents of A register
          SUB           15        Subtract from the contents of A register
          STA           30        Store A register



          A subset of the set of instructions supported by a computer




Ref Page 213          Chapter 12: Computer Languages                   Slide 10/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                             Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
  An Example of Assembly
  Language Program

               START PROGRAM AT 0000
               START DATA AT 1000
               SET ASIDE AN ADDRESS FOR FRST
               SET ASIDE AN ADDRESS FOR SCND
               SET ASIDE AN ADDRESS FOR ANSR
               CLA FRST
               ADD SCND
               STA ANSR
               HLT


   Sample assembly language program for adding two numbers and
   storing the result




Ref Page 213       Chapter 12: Computer Languages                   Slide 11/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                               Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
  An Example of Assembly
  Language Program


               Symbolic name          Memory location

                   FRST                        1000
                   SCND                        1001
                   ANSR                        1002

     Mapping table set up by the assembler for the data items
     of the assembly language program




Ref Page 213         Chapter 12: Computer Languages                   Slide 12/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                     Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
  An Example of Assembly
  Language Program

  Memory          Contents                             Comments
  location
               Opcode   Address
    0000         10      1000     Clear and add the number stored at FRST to A register
    0001         14      1001     Add the number stored at SCND to the contents of A
                                  register
    0002         30      1002     Store the contents of A register into ANSR
    0003         00               Halt
      -
      -
      -
    1000                          Reserved for FRST
    1001                          Reserved for SCND
    1002                          Reserved for ANSR



           Equivalent machine language program for the assembly language program




Ref Page 214              Chapter 12: Computer Languages                    Slide 13/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  Advantages of Assembly Language
  Over Machine Language

      § Easier to understand and use
      § Easier to locate and correct errors
      § Easier to modify
      § No worry about addresses
      § Easily relocatable
      § Efficiency of machine language




Ref Page 214        Chapter 12: Computer Languages                   Slide 14/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                             Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Limitations of Assembly Language


      § Machine dependent
      § Knowledge of hardware required
      § Machine level coding




Ref Page 215       Chapter 12: Computer Languages                   Slide 15/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Typical Uses of Assembly Language

      § Mainly used today to fine-tune important parts of
        programs written in a high-level language to improve
        the program’s execution efficiency




Ref Page 215        Chapter 12: Computer Languages                   Slide 16/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
  Assembly Languages with
  Macro Instructions

      § Any assembly language instruction that gets translated
        into several machine language instructions is called a
        macro instruction
      § Several assembly languages support such macro
        instructions to speed up the coding process
      § Assemblers of such assembly languages are designed to
        produce multiple machine language instructions for each
        macro instruction of the assembly language




Ref Page 215        Chapter 12: Computer Languages                   Slide 17/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 High-Level Languages

      § Machine independent
      § Do not require programmers to know anything about the
        internal structure of computer on which high-level
        language programs will be executed
      § Deal with high-level coding, enabling the programmers
        to write instructions using English words and familiar
        mathematical symbols and expressions




Ref Page 216        Chapter 12: Computer Languages                   Slide 18/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Compiler

      § Translator program (software) that translates a high-
        level language program into its equivalent machine
        language program
      § Compiles a set of machine language instructions for
        every program instruction in a high-level language




Ref Page 217        Chapter 12: Computer Languages                   Slide 19/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                    Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Compiler


         High-level         Input                    Output       Machine
         language                       Compiler                  language
         program                                                  program


                           One-to-many correspondence
               (Source                                          (Object
               Program)                                         Program)




Ref Page 217              Chapter 12: Computer Languages                   Slide 20/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                      Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Compiler

      Program P1 in
                                      Compiler for
      high-level                                                    Machine code
                                      language L1
      language L1                                                   for P1


      Program P2 in                   Compiler for
      high-level                      language L2                   Machine code
      language L2                                                   for P2


                       A computer supporting languages L1 and L2

               Illustrating the requirement of a separate compiler for each
               high-level language supported by a computer



                                                                     (Continued on next slide)



Ref Page 218               Chapter 12: Computer Languages                       Slide 21/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

     Compiler
(Continued from previous slide..)


                   Compiler for
                   language L1              Machine code for           Executed on
                   on computer A            P1 that will run           computer A
                                            on computer A


 Program P1 in high-
 level language L1                                                               Same results
                                                                                 obtained



                   Compiler for             Machine code for
                   language L1                                        Executed on
                                            P1 that will run on
                   on computer B                                      computer B
                                            computer B

               Illustrating the machine independence characteristic of a
               high-level language. Separate compilers are required for the
               same language on different computers



  Ref Page 218                      Chapter 12: Computer Languages                   Slide 22/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  Syntax Errors

      In addition to doing translation job, compilers also
      automatically detect and indicate syntax errors

      Syntax errors are typically of following types:


          § Illegal characters
          § Illegal combination of characters
          § Improper sequencing of instructions in a program
          § Use of undefined variable names

        Note : A compiler cannot detect logic errors in a program




Ref Page 219          Chapter 12: Computer Languages                   Slide 23/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                          Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  The Process of Removing Syntax Errors
  From A Source Program
                      START

                      Edit
                 source program
                          Source program
                    Compile
                 source program


                     Syntax
                      errors         No     Generate
                    detected?             object program

                          Yes                    Object program
               Generate list of coded         STOP
                 error messages




Ref Page 219   Chapter 12: Computer Languages                    Slide 24/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Linker

     § For a large software, storing all the lines of program
       code in a single source file will be:

          – Difficult to work with
          – Difficult to deploy multiple programmers to
            concurrently work towards its development
          – Any change in the source program would require the
            entire source program to be recompiled

      § Hence, a modular approach is generally adapted to
        develop large software where the software consists of
        multiple source program files
      § No need to write programs for some modules as it might
        be available in library offering the same functionality
                                                             (Continued on next slide)



Ref Page 219        Chapter 12: Computer Languages                      Slide 25/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

     Linker
(Continued from previous slide..)


            § Each source program file can be independently
              modified and compiled to create a corresponding
              object program file
            § Linker program (software) is used to properly
              combine all the object program files (modules)
            § Creates the final executable program (load module)




  Ref Page 220                      Chapter 12: Computer Languages                   Slide 26/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Interpreter

      § Interpreter is a high-level language translator
      § Takes one statement of a high-level language
        program, translates it into machine language
        instructions
      § Immediately executes the resulting machine language
        instructions
      § Compiler simply translates the entire source program
        into an object program and is not involved in its
        execution




Ref Page 220        Chapter 12: Computer Languages                   Slide 27/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                 Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Role of an Interpreter


                                   Interpreter
                                 (translates and
 High-level language                 executes
      program          Input                        Output      Result of
                                 statement-by-
 (Source Program)                                               program
                                   statement)
                                                                execution




Ref Page 220           Chapter 12: Computer Languages                   Slide 28/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
 Intermediate Language Compiler &
 Interpreter

      § New type of compiler and interpreter combines the
        speed, ease, and control of both compiler and
        interpreter
      § Compiler first compiles the source program to an
        intermediate object program
      § Intermediate object program is not a machine
        language code but written in an intermediate
        language that is virtually machine independent
      § Interpreter takes intermediate object program,
        converts it into machine language program and
        executes it




Ref Page 221        Chapter 12: Computer Languages                   Slide 29/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                 Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
 Benefits of Intermediate Language
 Compiler & Interpreter

      §   Intermediate object program is in compiled form and thus is
          not original source code, so safer and easier to share
      §   Intermediate object program is based on a standard
          Intermediate Definition Language (IDL)
      §   Interpreter can be written for any computer architecture and
          operating system providing virtual machine environment to the
          executing program
      §   Newer Interpreter compiles intermediate program, in memory,
          into final host machine language program and executes it
      §   This technique is called Just-In-Time (JIT) Compilation




Ref Page 221           Chapter 12: Computer Languages                   Slide 30/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  Advantages of High-Level Languages

      § Machine independent
      § Easier to learn and use
      § Fewer errors during program development
      § Lower program preparation cost
      § Better documentation
      § Easier to maintain




Ref Page 222        Chapter 12: Computer Languages                   Slide 31/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Limitations of High-Level Languages

      § Lower execution efficiency
      § Less flexibility to control the computer’s CPU, memory
        and registers




Ref Page 222        Chapter 12: Computer Languages                   Slide 32/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                               Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  Object-Oriented Programming Languages

      § Programming languages are used for simulating real-
        world problems on computers
      § Much of the real world is made up of objects
      § Essence of OOP is to solve a problem by:
          § Identifying the real-world objects of the problem
          § Identifying processing required of them
          § Creating simulations of objects, processes, and their
            communications




Ref Page 223         Chapter 12: Computer Languages                   Slide 33/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 FORTRAN

      § Stands for FORmula TRANslation
      § Originally developed by John Backus and his team at
        IBM followed by several revisions
      § Standardized by ANSI as FORTRAN-77 and FORTRAN-90
      § Designed for solving scientific & engineering problems
      § Oriented towards solving problems of a mathematical
        nature
      § Popular language amongst scientists and engineers




Ref Page 223        Chapter 12: Computer Languages                   Slide 34/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                            Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 A Sample FORTRAN Program

      C  FORTRAN PROGRAM TO COMPUTE
      C  THE SUM OF 10 NUMBERS
          SUM = 0
          DO 50 I = 1, 10
          READ (5, 10) N
          SUM = SUM + N
      50 CONTINUE
          WRITE (6, 20) SUM
      10 FORMAT (F6.2)
      20 FORMAT (1X, ’THE SUM OF GIVEN NUMBERS = ’,
          F10.2)
          STOP
          END




Ref Page 224      Chapter 12: Computer Languages                   Slide 35/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 COBOL

      § Stands for COmmon Business Oriented Language
      § Originally developed started under Grace Hopper
        followed by COnference on DAta SYstems Languages
        (CODASYL)
      § Standardized by ANSI as COBOL-74, COBOL-85, and
        COBOL-2002
      § Designed for programming business data processing
        applications
      § Designed to have the appearance and structure of a
        business report written in English, hence often referred
        to as a self-documenting language




Ref Page 224        Chapter 12: Computer Languages                   Slide 36/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                 Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 A Sample COBOL Program

      IDENTIFICATION DIVISION.
      PROGRAM_ID. SUMUP.
      AUTHOR. P K SINHA.
      * THIS PROGRAM COMPUTES AND PRINTS
      * THE SUM OF GIVEN NUMBERS.

      ENVIROMENT DIVISION.
      CONFIGURATION SECTION.
      SOURCE_COMPUTER. BURROUGHS_6700.
      OBJECT_COMPUTER. BURROUGHS_6700.
      INPUT_OUTPUT SECTION.
      FILE_CONTROL.
              SELECT DATA_FILE ASSIGN TO DISK.
              SELECT OUTPUT_FILE ASSIGN TO PRINTER.

      DATA DIVISION.
      FILE SECTION.


                                                                (Continued on next slide)



Ref Page 226           Chapter 12: Computer Languages                      Slide 37/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

     A Sample COBOL Program
(Continued from previous slide..)


            FD DATA_FILE
                    RECORD CONTAINS 80 CHARACTERS
                    LABEL RECORD IS OMITTED
                    DATA   RECORD    IS  INPUT_DATA_
            RECORD.

            01                  INPUT_DATA_RECORD.
                                05 NPICTURE 9(6)V99.
                                05 FILLER PICTURE X(72).

            FD                 OUTPUT_FILE
                                RECORD CONTAINS 132 CHARACTERS
                                LABEL RECORD IS OMITTED
                               DATA RECORD IS OUTPUT_RECORD.

                                                                             (Continued on next slide)



  Ref Page 226                      Chapter 12: Computer Languages                      Slide 38/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

     A Sample COBOL Program
(Continued from previous slide..)

            01       OUTPUT_RECORD.
                      05 FILLER PICTURE X.
                      05TITLE PICTURE X(25).
                      05 SUM PICTURE 9(10)V99.
            05 FILLER PICTURE X(94).
            WORKING_STORAGE SECTION.
            77MESSAGE PICTURE X(25)
            VALUE IS “THE SUM OF GIVEN NUMBERS=”.

            PROCEDURE DIVISION.
            OPEN_FILES.
                    OPEN INPUT DATA_FILE.
                    OPEN OUTPUT OUTPUT_FILE.

            INITIALIZATION.
                     MOVE SPACES TO OUTPUT_RECORD.
                     MOVE ZERO TO SUM.


                                                                             (Continued on next slide)



  Ref Page 226                      Chapter 12: Computer Languages                      Slide 39/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

     A Sample COBOL Program
(Continued from previous slide..)


            PROCESS_LOOP.
                   READ DATA_FILE AT END                              GO     TO
            PRINT_PARA.
                   ADD N TO SUM.
                   GO TO PROCESS_LOOP.

            PRINT_PARA.
                    MOVE MESSAGE TO TITLE.
                    WRITE OUTPUT_RECORD.

            END_OF_JOB.
                   CLOSE DATA_FILE.
                   CLOSE OUTPUT_FILE.
                   STOP RUN.



  Ref Page 226                      Chapter 12: Computer Languages                   Slide 40/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  BASIC

      § Stands for Beginners All-purpose Symbolic Instruction
        Code
      § Developed by Professor John Kemeny and Thomas Kurtz
        at Darmouth College in the United States
      § Standardized by ANSI as BASIC-78
      § Designed to be an interactive language and to use an
        interpreter instead of a compiler
      § Simple to implement, learn and use language. Hence, it
        is a widely used language on personal computers
      § Flexible and reasonably powerful language and can be
        used for both business and scientific applications




Ref Page 227        Chapter 12: Computer Languages                   Slide 41/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                               Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  A Sample BASIC Program

      5    REM PROGRAM TO COMPUTE
      6    REM THE SUM OF 10 NUMBERS
      10   LET S = 0
      20    FOR I = 1 TO 10
      30   READ N
      40   LET S = S + N
      50   NEXT I
      60   PRINT “THE SUM OF GIVEN NUMBERS = ”; S
      70   DATA 4, 20, 15, 32, 48
      80   DATA 12, 3, 9, 14, 44
      90   END;




Ref Page 227         Chapter 12: Computer Languages                   Slide 42/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                 Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Pascal

      §   Named after the famous seventeenth-century French
          mathematician Blaise Pascal
      §   Developed by Professor Nicklaus Wirth of Federal Institute of
          Technology in Zurich
      §   Encourages programmers to write well-structured, modular
          programs, instills good program practices
      §   Recognized as an educational language and is used to teach
          programming to beginners
      §   Suitable for both scientific & business applications
      §   Has features to manipulate numbers, vectors, matrices,
          strings, sets, records, files, and lists




Ref Page 228           Chapter 12: Computer Languages                   Slide 43/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                               Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 A Sample Pascal Program
      PROGRAM SUMNUMS (INPUT, OUTPUT);
      (* PROGRAM TO COMPUTE THE SUM OF 10 NUMBERS *)

      (* DECLARATION OF VARIABLES *)
      VAR SUM, N : REAL;
      VAR I : INTEGER;

      (* MAIN PROGRAM LOGIC STARTS HERE *)
      BEGIN
          SUM := 0;
          FOR I := 1 TO 10 DO
          BEGIN
              READ (N);
              SUM := SUM + N;
          END;
          WRITELN (‘THE SUM OF GIVEN NUMBERS=’, SUM);
      END;




Ref Page 228         Chapter 12: Computer Languages                   Slide 44/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  C

      § Developed in 1972 at AT&T’s Bell laboratories, USA
        by Dennis Ritchie and Brian Kernighan
      § Standardized by ANSI and ISO as C89, C90, C99
      § High-level programming languages (mainly machine
        independence) with the efficiency of an assembly
        language
      § Language of choice of programmers for portable
        systems software and commercial software packages
        like OS, compiler, spreadsheet, word processor, and
        database management systems




Ref Page 229        Chapter 12: Computer Languages                   Slide 45/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                 Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  A Sample C Program

      /* PROGRAM TO COMPUTE THE SUM OF 10 NUMBERS */
      /* Directives to include standard library and header */
      #include <stdlib.h>
      #include <stdio.h>
      /* Main function starts here */
      void main ( )
      {
           /* Declaration of variables */
           float Sum = 0.0, N = 0.0;
           int Count = 0;
           for (Count = 0; Count < 10; Count++)
          {
              printf(“nGive a number:”);
              scanf(“%f”, N);
              Sum += N;
          }
         printf(“THE SUM OF GIVEN NUMBERS = %f”, &Sum);
      }




Ref Page 230           Chapter 12: Computer Languages                   Slide 46/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 C++

      § Named C++ as ++ is increment operator and C
        language is incremented to its next level with C++
      § Developed by Bjarne Stroustrup at Bell Labs in the
        early 1980s
      § Contains all elements of the basic C language
      § Expanded to include numerous object-oriented
        programming features
      § Provides a collection of predefined classes, along with
        the capability of user-defined classes




Ref Page 229        Chapter 12: Computer Languages                   Slide 47/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  Java

      § Development started at Sun Microsystems in 1991 by a
        team led by James Gosling
      § Developed to be similar to C++ with fewer features to
        keep it simple and easy to use
      § Compiled code is machine-independent and developed
        programs are simple to implement and use
      § Uses just-in-time compilation
      § Used in embedded systems such as hand-held devices,
        telephones and VCRs
      § Comes in two variants – Java Runtime Engine (JRE) and
        Java Software Development Kit (SDK)




Ref Page 231        Chapter 12: Computer Languages                   Slide 48/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 C# (C Sharp)

      § Object-oriented programming language developed by
        Anders Hejlsberg and released by Microsoft as part of
        Microsoft’s .NET technology initiative
      § Standardized by ECMA and ISO
      § Syntactically and semantically very close to C++ and
        adopts various object-oriented features from both C++
        and Java
      § Compilers target the Common Language Infrastructure
        (CLI) implemented by Common Language Runtime (CLR)
        of .NET Framework
      § CLR provides important services such as, memory
        management, exception handling, and security




Ref Page 232        Chapter 12: Computer Languages                   Slide 49/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  RPG

      § Stands for Report Program Generator
      § Developed by IBM to meet customer requests for an
        easy and economic mechanism for producing reports
      § Designed to generate the output reports resulting from
        the processing of common business applications
      § Easier to learn and use as compared to COBOL
      § Programmers use very detailed coding sheets to write
        specifications about input, calculations, and output




Ref Page 232        Chapter 12: Computer Languages                   Slide 50/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  LISP

      § Stands for LISt Processing
      § Developed in 1959 by John McCarthy of MIT
      § Designed to have features for manipulating non-
        numeric data, such as symbols and strings of text
      § Due to its powerful list processing capability, it is
        extensively used in the areas of pattern recognition,
        artificial intelligence, and for simulation of games
      § Functional programming language in which all
        computation is accomplished by applying functions to
        arguments




Ref Page 232        Chapter 12: Computer Languages                   Slide 51/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 SNOBOL

      § Stands for StriNg Oriented symBOlic Language
      § Used for non-numeric applications
      § Powerful string manipulation features
      § Widely used for applications in the area of text
        processing




Ref Page 233        Chapter 12: Computer Languages                   Slide 52/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
  Characteristics of a Good
  Programming Language

      § Simplicity
      § Naturalness
      § Abstraction
      § Efficiency
      § Structured Programming Support
      § Compactness
      § Locality
      § Extensibility
      § Suitability to its environment




Ref Page 233          Chapter 12: Computer Languages                   Slide 53/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                               Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  Factors for Selecting a Language for
  Coding an Application

      § Nature of the application
      § Familiarity with the language
      § Ease of learning the language
      § Availability of program development tools
      § Execution efficiency
      § Features of a good programming language




Ref Page 234        Chapter 12: Computer Languages                    Slide 54/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Subprogram

      § Program written in a manner that it can be brought into
        use in other programs and used whenever needed
        without rewriting
      § Also referred to as subroutine, sub-procedure, or function
      § Subprogram call statement contains the name of the
        subprogram followed by a list of parameters enclosed
        within a pair of parentheses
      § Intrinsic subprograms (also called built-in-functions) are
        those provided with the programming language
      § Programmer-written subprograms are written and used
        as and when they are needed




Ref Page 235        Chapter 12: Computer Languages                   Slide 55/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                        Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  Structure of a Subprogram

  Subprogram name           Parameter



                                                                Subprogram header
               sqrt   (x)




                 Set of instructions that perform               Subprogram body
                 the intended task




Ref Page 235                Chapter 12: Computer Languages                     Slide 56/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                  Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

  Flow of Control in Case of Subprogram Calls


    subprogram header              2           1
                                                   subprogram call statement
                          3
                                    6      4       next statement
    subprogram body       7
                                               5

                                                   subprogram call statement
                                    8              next statement
                                               9




     A subprogram               Flow of control      A program that calls
                                                     the subprogram twice




Ref Page 236            Chapter 12: Computer Languages                   Slide 57/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                      Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

 Key Words/Phrases

      §   Assembler                           §   Just-in-time compilation
      §   Assembly language                   §   Language processor
      §   BASIC                               §   Linker
      §   Built-in function                   §   LISP
      §   C                                   §   Load module
      §   C++                                 §   Logic error
      §   C#                                  §   Low-level language
      §   COBOL                               §   Machine language
      §   Coding                              §   Macro instructions
      §   Compiler                            §   Object program
      §   Computer language                   §   Object-oriented programming
      §   FORTRAN                             §   Opcode
      §   Function                            §   Operand
      §   High-level language                 §   Pascal
      §   HotJava Interpreter                 §   Programmer
      §   Intrinsic subprogram                §   Programming
      §   Intermediate compiler and           §   Programming language
          Interpreter                         §   Pseudo instruction
      §   Java                                §   RPG
                                              §   Self-documenting language

                                                                     (Continued on next slide)



Ref Page 236              Chapter 12: Computer Languages                        Slide 58/59
Computer Fundamentals: Pradeep K. Sinha & Priti Sinha
                                              Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

     Key Words/Phrases
(Continued from previous slide..)


            §     SNOBOL
            §     Source program
            §     Sub-procedure
            §     Subprogram
            §     Subroutine
            §     Symbolic language
            §     Syntax error
            §     Syntax rules
            §     Written subprograms




  Ref Page 236                      Chapter 12: Computer Languages                   Slide 59/59

More Related Content

What's hot (20)

PPT
Computer and computation
Usman Shah
 
PPTX
Operating system
yogitamore3
 
PPTX
computer languages
The millennium school
 
PDF
Computer Programming
Syed Zaid Irshad
 
PDF
Chapter 03 number system
Hareem Aslam
 
PPT
Computer Hardware
MobME Technical
 
PPT
Programming languages
Asmasum
 
PDF
Engenharia de Software Pressman
Simoneinfo
 
PPTX
Computer Language Translator
Ranjeet Kumar
 
PPT
SYSTEM SOFTWARE
Kak Yong
 
PDF
Computer Fundamentals Chapter 11 pcp
Saumya Sahu
 
PPTX
System software vs application software
baabtra.com - No. 1 supplier of quality freshers
 
PDF
Natural vs.surrogate keys
Ron Morgan
 
PDF
Lecture-1: Introduction to Computer - Basic Definitions & Concepts- Computer ...
Mubashir Ali
 
PPTX
Computer system architecture
Kumar
 
PPTX
Basics of computer science
Paul Schmidt
 
PPT
Lecture 1- History of C Programming
Md. Imran Hossain Showrov
 
PPTX
Programming Fundamentals lecture 1
REHAN IJAZ
 
PPTX
High Level Language (HLL)
Maliha Jahan
 
PPT
High level and Low level Language
adnan usmani
 
Computer and computation
Usman Shah
 
Operating system
yogitamore3
 
computer languages
The millennium school
 
Computer Programming
Syed Zaid Irshad
 
Chapter 03 number system
Hareem Aslam
 
Computer Hardware
MobME Technical
 
Programming languages
Asmasum
 
Engenharia de Software Pressman
Simoneinfo
 
Computer Language Translator
Ranjeet Kumar
 
SYSTEM SOFTWARE
Kak Yong
 
Computer Fundamentals Chapter 11 pcp
Saumya Sahu
 
System software vs application software
baabtra.com - No. 1 supplier of quality freshers
 
Natural vs.surrogate keys
Ron Morgan
 
Lecture-1: Introduction to Computer - Basic Definitions & Concepts- Computer ...
Mubashir Ali
 
Computer system architecture
Kumar
 
Basics of computer science
Paul Schmidt
 
Lecture 1- History of C Programming
Md. Imran Hossain Showrov
 
Programming Fundamentals lecture 1
REHAN IJAZ
 
High Level Language (HLL)
Maliha Jahan
 
High level and Low level Language
adnan usmani
 

Viewers also liked (20)

PDF
Chapter 17 dccn
Hareem Aslam
 
PDF
Chapter19 multimedia-091006115642-phpapp02 (1)
Jay Patel
 
PDF
Chapter 10 cs
Saumya Sahu
 
PDF
Chapter 21 c language
Hareem Aslam
 
PDF
Chapter 16 bdp
Hareem Aslam
 
PDF
Chapter 15 asp
Hareem Aslam
 
PDF
Chapter 04 computer codes
Hareem Aslam
 
PDF
Chapter 05 computer arithmetic
Hareem Aslam
 
PDF
Computer Fundamentals_Chapter 02 bco
Saumya Sahu
 
PDF
Computer Fundamentals Chapter 14 os
Saumya Sahu
 
PDF
Chapter 06 boolean algebra
Hareem Aslam
 
PDF
Computer Fundamentals Chapter 09 io devices
Saumya Sahu
 
PDF
Computer Fundamentals
Saumya Sahu
 
PDF
How to build a news website use CMS wordpress
baran19901990
 
PDF
09 implementing+subprograms
baran19901990
 
PPTX
Hadoop
Saeed Iqbal
 
PPTX
Introduction to HBase
Byeongweon Moon
 
PDF
08 subprograms
baran19901990
 
PDF
Untitled Presentation
baran19901990
 
PDF
Datatype
baran19901990
 
Chapter 17 dccn
Hareem Aslam
 
Chapter19 multimedia-091006115642-phpapp02 (1)
Jay Patel
 
Chapter 10 cs
Saumya Sahu
 
Chapter 21 c language
Hareem Aslam
 
Chapter 16 bdp
Hareem Aslam
 
Chapter 15 asp
Hareem Aslam
 
Chapter 04 computer codes
Hareem Aslam
 
Chapter 05 computer arithmetic
Hareem Aslam
 
Computer Fundamentals_Chapter 02 bco
Saumya Sahu
 
Computer Fundamentals Chapter 14 os
Saumya Sahu
 
Chapter 06 boolean algebra
Hareem Aslam
 
Computer Fundamentals Chapter 09 io devices
Saumya Sahu
 
Computer Fundamentals
Saumya Sahu
 
How to build a news website use CMS wordpress
baran19901990
 
09 implementing+subprograms
baran19901990
 
Hadoop
Saeed Iqbal
 
Introduction to HBase
Byeongweon Moon
 
08 subprograms
baran19901990
 
Untitled Presentation
baran19901990
 
Datatype
baran19901990
 
Ad

Similar to Computer Fundamentals Chapter 12 cl (20)

PDF
Chapter 02 Computer Languages (re-upload)
bluejayjunior
 
PDF
Chapter 12 cl
Hareem Aslam
 
PPTX
Computer-charecteristics,types of languages,translators
VarshaSivashanker
 
PPTX
Chapter 5
Hajar Len
 
PPT
Lecture 8
Anshumali Singh
 
PDF
Introduction to computers
Learn By Watch
 
PPSX
Ic lecture8
AttaullahRahimoon
 
PPTX
Define Computer language, Translator, Standard input out C
Dr Shailendra Bhalawe
 
PDF
sege.pdf
SegezzBrian
 
PDF
Introduction to computer programming
VanessaBuensalida
 
PPTX
Chapter 2.pptx
TamiratDejene1
 
PPTX
programming for problem solving-1 unit -1 ppt.pptx
prathima304
 
PPTX
01-PROGRAMMING introA of the class name. Pptx
simukondasankananji8
 
PPTX
Computer program, computer languages, computer software
Sweta Kumari Barnwal
 
PPTX
Programming Fundamentals and Programming Languages Concepts
imtiazalijoono
 
PPTX
programming.pptx
DarianElmyra
 
PPT
Computer languages 11
Muhammad Ramzan
 
PPTX
Programming Paradigm & Languages
Gaditek
 
PPTX
Programming Paradigm & Languages
Gaditek
 
Chapter 02 Computer Languages (re-upload)
bluejayjunior
 
Chapter 12 cl
Hareem Aslam
 
Computer-charecteristics,types of languages,translators
VarshaSivashanker
 
Chapter 5
Hajar Len
 
Lecture 8
Anshumali Singh
 
Introduction to computers
Learn By Watch
 
Ic lecture8
AttaullahRahimoon
 
Define Computer language, Translator, Standard input out C
Dr Shailendra Bhalawe
 
sege.pdf
SegezzBrian
 
Introduction to computer programming
VanessaBuensalida
 
Chapter 2.pptx
TamiratDejene1
 
programming for problem solving-1 unit -1 ppt.pptx
prathima304
 
01-PROGRAMMING introA of the class name. Pptx
simukondasankananji8
 
Computer program, computer languages, computer software
Sweta Kumari Barnwal
 
Programming Fundamentals and Programming Languages Concepts
imtiazalijoono
 
programming.pptx
DarianElmyra
 
Computer languages 11
Muhammad Ramzan
 
Programming Paradigm & Languages
Gaditek
 
Programming Paradigm & Languages
Gaditek
 
Ad

More from Saumya Sahu (12)

PDF
Cloud computing
Saumya Sahu
 
PDF
Paper presentation-nano-robots
Saumya Sahu
 
PDF
Paper presentation-nano-robots
Saumya Sahu
 
DOCX
Engineering Symbols
Saumya Sahu
 
PDF
Gate-2013(Computer Science) Que_Ans
Saumya Sahu
 
PDF
Project management
Saumya Sahu
 
PDF
Computer Fundamentals Chapter 16 bdp
Saumya Sahu
 
PDF
Computer Fundamentals Chapter 08 secondary storage
Saumya Sahu
 
PDF
Computer Fundamentals Chapter 01 introduction
Saumya Sahu
 
PDF
Computer networks
Saumya Sahu
 
PDF
Computer networks (2)
Saumya Sahu
 
PDF
Software project management
Saumya Sahu
 
Cloud computing
Saumya Sahu
 
Paper presentation-nano-robots
Saumya Sahu
 
Paper presentation-nano-robots
Saumya Sahu
 
Engineering Symbols
Saumya Sahu
 
Gate-2013(Computer Science) Que_Ans
Saumya Sahu
 
Project management
Saumya Sahu
 
Computer Fundamentals Chapter 16 bdp
Saumya Sahu
 
Computer Fundamentals Chapter 08 secondary storage
Saumya Sahu
 
Computer Fundamentals Chapter 01 introduction
Saumya Sahu
 
Computer networks
Saumya Sahu
 
Computer networks (2)
Saumya Sahu
 
Software project management
Saumya Sahu
 

Computer Fundamentals Chapter 12 cl

  • 1. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Ref Page Chapter 12: Computer Languages Slide 1/59
  • 2. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Learning Objectives In this chapter you will learn about: § Computer languages or programming languages § Three broad categories of programming languages – machine, assembly, and high-level languages § Commonly used programming language tools such as assembler, compiler, linker, and interpreter § Concepts of object-oriented programming languages § Some popular programming languages such as FORTRAN, COBOL, BASIC, Pascal, C, C++, C#, Java, RPG, LISP and SNOBOL § Related concepts such as Subprogram, Characteristics of a good programming language, and factors to consider while selecting a language for coding an application Ref Page 208 Chapter 12: Computer Languages Slide 2/59
  • 3. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Broad Classification of Computer Languages § Machine language § Assembly language § High-level language Ref Page 209 Chapter 12: Computer Languages Slide 3/59
  • 4. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Machine Language § Only language of a computer understood by it without using a translation program § Normally written as strings of binary 1s and 0s § Written using decimal digits if the circuitry of the computer being used permits this Ref Page 209 Chapter 12: Computer Languages Slide 4/59
  • 5. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha A Typical Machine Language Instruction Format OPCODE OPERAND (operation code) (Address/Location) § OPCODE tells the computer which operation to perform from the instruction set of the computer § OPERAND tells the address of the data on which the operation is to be performed Ref Page 210 Chapter 12: Computer Languages Slide 5/59
  • 6. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha A Sample Machine Language Program 001000000000001100111001 10001471 001100000000010000100001 14002041 011000000000011100101110 30003456 101000111111011100101110 50773456 000000000000000000000000 00000000 In Binary In Decimal (Difficult to read and understand) (Easier to read and understand) Ref Page 210 Chapter 12: Computer Languages Slide 6/59
  • 7. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Advantages & Limitations of Machine Language Advantage § Can be executed very fast Limitations § Machine Dependent § Difficult to program § Error prone § Difficult to modify Ref Page 210 Chapter 12: Computer Languages Slide 7/59
  • 8. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Assembly/Symbolic Language Programming language that overcomes the limitations of machine language programming by: § Using alphanumeric mnemonic codes instead of numeric codes for the instructions in the instruction set e.g. using ADD instead of 1110 (binary) or 14 (decimal) for instruction to add § Allowing storage locations to be represented in form of alphanumeric addresses instead of numeric addresses e.g. representing memory locations 1000, 1001, and 1002 as FRST, SCND, and ANSR respectively § Providing pseudo-instructions that are used for instructing the system how we want the program to be assembled inside the computer’s memory e.g. START PROGRAM AT 0000; SET ASIDE AN ADRESS FOR FRST Ref Page 211 Chapter 12: Computer Languages Slide 8/59
  • 9. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Assembler § Software that translates as assembly language program into an equivalent machine language program of a computer Assembly Input Output Machine language language Assembler program program One-to-one correspondence (Source Program) (Object Program) Ref Page 212 Chapter 12: Computer Languages Slide 9/59
  • 10. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha An Example of Assembly Language Program Mnemonic Opcode Meaning HLT 00 Halt, used at the end of program to stop CLA 10 Clear and add into A register ADD 14 Add to the contents of A register SUB 15 Subtract from the contents of A register STA 30 Store A register A subset of the set of instructions supported by a computer Ref Page 213 Chapter 12: Computer Languages Slide 10/59
  • 11. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha An Example of Assembly Language Program START PROGRAM AT 0000 START DATA AT 1000 SET ASIDE AN ADDRESS FOR FRST SET ASIDE AN ADDRESS FOR SCND SET ASIDE AN ADDRESS FOR ANSR CLA FRST ADD SCND STA ANSR HLT Sample assembly language program for adding two numbers and storing the result Ref Page 213 Chapter 12: Computer Languages Slide 11/59
  • 12. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha An Example of Assembly Language Program Symbolic name Memory location FRST 1000 SCND 1001 ANSR 1002 Mapping table set up by the assembler for the data items of the assembly language program Ref Page 213 Chapter 12: Computer Languages Slide 12/59
  • 13. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha An Example of Assembly Language Program Memory Contents Comments location Opcode Address 0000 10 1000 Clear and add the number stored at FRST to A register 0001 14 1001 Add the number stored at SCND to the contents of A register 0002 30 1002 Store the contents of A register into ANSR 0003 00 Halt - - - 1000 Reserved for FRST 1001 Reserved for SCND 1002 Reserved for ANSR Equivalent machine language program for the assembly language program Ref Page 214 Chapter 12: Computer Languages Slide 13/59
  • 14. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Advantages of Assembly Language Over Machine Language § Easier to understand and use § Easier to locate and correct errors § Easier to modify § No worry about addresses § Easily relocatable § Efficiency of machine language Ref Page 214 Chapter 12: Computer Languages Slide 14/59
  • 15. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Limitations of Assembly Language § Machine dependent § Knowledge of hardware required § Machine level coding Ref Page 215 Chapter 12: Computer Languages Slide 15/59
  • 16. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Typical Uses of Assembly Language § Mainly used today to fine-tune important parts of programs written in a high-level language to improve the program’s execution efficiency Ref Page 215 Chapter 12: Computer Languages Slide 16/59
  • 17. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Assembly Languages with Macro Instructions § Any assembly language instruction that gets translated into several machine language instructions is called a macro instruction § Several assembly languages support such macro instructions to speed up the coding process § Assemblers of such assembly languages are designed to produce multiple machine language instructions for each macro instruction of the assembly language Ref Page 215 Chapter 12: Computer Languages Slide 17/59
  • 18. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha High-Level Languages § Machine independent § Do not require programmers to know anything about the internal structure of computer on which high-level language programs will be executed § Deal with high-level coding, enabling the programmers to write instructions using English words and familiar mathematical symbols and expressions Ref Page 216 Chapter 12: Computer Languages Slide 18/59
  • 19. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Compiler § Translator program (software) that translates a high- level language program into its equivalent machine language program § Compiles a set of machine language instructions for every program instruction in a high-level language Ref Page 217 Chapter 12: Computer Languages Slide 19/59
  • 20. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Compiler High-level Input Output Machine language Compiler language program program One-to-many correspondence (Source (Object Program) Program) Ref Page 217 Chapter 12: Computer Languages Slide 20/59
  • 21. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Compiler Program P1 in Compiler for high-level Machine code language L1 language L1 for P1 Program P2 in Compiler for high-level language L2 Machine code language L2 for P2 A computer supporting languages L1 and L2 Illustrating the requirement of a separate compiler for each high-level language supported by a computer (Continued on next slide) Ref Page 218 Chapter 12: Computer Languages Slide 21/59
  • 22. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Compiler (Continued from previous slide..) Compiler for language L1 Machine code for Executed on on computer A P1 that will run computer A on computer A Program P1 in high- level language L1 Same results obtained Compiler for Machine code for language L1 Executed on P1 that will run on on computer B computer B computer B Illustrating the machine independence characteristic of a high-level language. Separate compilers are required for the same language on different computers Ref Page 218 Chapter 12: Computer Languages Slide 22/59
  • 23. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Syntax Errors In addition to doing translation job, compilers also automatically detect and indicate syntax errors Syntax errors are typically of following types: § Illegal characters § Illegal combination of characters § Improper sequencing of instructions in a program § Use of undefined variable names Note : A compiler cannot detect logic errors in a program Ref Page 219 Chapter 12: Computer Languages Slide 23/59
  • 24. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha The Process of Removing Syntax Errors From A Source Program START Edit source program Source program Compile source program Syntax errors No Generate detected? object program Yes Object program Generate list of coded STOP error messages Ref Page 219 Chapter 12: Computer Languages Slide 24/59
  • 25. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Linker § For a large software, storing all the lines of program code in a single source file will be: – Difficult to work with – Difficult to deploy multiple programmers to concurrently work towards its development – Any change in the source program would require the entire source program to be recompiled § Hence, a modular approach is generally adapted to develop large software where the software consists of multiple source program files § No need to write programs for some modules as it might be available in library offering the same functionality (Continued on next slide) Ref Page 219 Chapter 12: Computer Languages Slide 25/59
  • 26. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Linker (Continued from previous slide..) § Each source program file can be independently modified and compiled to create a corresponding object program file § Linker program (software) is used to properly combine all the object program files (modules) § Creates the final executable program (load module) Ref Page 220 Chapter 12: Computer Languages Slide 26/59
  • 27. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Interpreter § Interpreter is a high-level language translator § Takes one statement of a high-level language program, translates it into machine language instructions § Immediately executes the resulting machine language instructions § Compiler simply translates the entire source program into an object program and is not involved in its execution Ref Page 220 Chapter 12: Computer Languages Slide 27/59
  • 28. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Role of an Interpreter Interpreter (translates and High-level language executes program Input Output Result of statement-by- (Source Program) program statement) execution Ref Page 220 Chapter 12: Computer Languages Slide 28/59
  • 29. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Intermediate Language Compiler & Interpreter § New type of compiler and interpreter combines the speed, ease, and control of both compiler and interpreter § Compiler first compiles the source program to an intermediate object program § Intermediate object program is not a machine language code but written in an intermediate language that is virtually machine independent § Interpreter takes intermediate object program, converts it into machine language program and executes it Ref Page 221 Chapter 12: Computer Languages Slide 29/59
  • 30. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Benefits of Intermediate Language Compiler & Interpreter § Intermediate object program is in compiled form and thus is not original source code, so safer and easier to share § Intermediate object program is based on a standard Intermediate Definition Language (IDL) § Interpreter can be written for any computer architecture and operating system providing virtual machine environment to the executing program § Newer Interpreter compiles intermediate program, in memory, into final host machine language program and executes it § This technique is called Just-In-Time (JIT) Compilation Ref Page 221 Chapter 12: Computer Languages Slide 30/59
  • 31. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Advantages of High-Level Languages § Machine independent § Easier to learn and use § Fewer errors during program development § Lower program preparation cost § Better documentation § Easier to maintain Ref Page 222 Chapter 12: Computer Languages Slide 31/59
  • 32. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Limitations of High-Level Languages § Lower execution efficiency § Less flexibility to control the computer’s CPU, memory and registers Ref Page 222 Chapter 12: Computer Languages Slide 32/59
  • 33. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Object-Oriented Programming Languages § Programming languages are used for simulating real- world problems on computers § Much of the real world is made up of objects § Essence of OOP is to solve a problem by: § Identifying the real-world objects of the problem § Identifying processing required of them § Creating simulations of objects, processes, and their communications Ref Page 223 Chapter 12: Computer Languages Slide 33/59
  • 34. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha FORTRAN § Stands for FORmula TRANslation § Originally developed by John Backus and his team at IBM followed by several revisions § Standardized by ANSI as FORTRAN-77 and FORTRAN-90 § Designed for solving scientific & engineering problems § Oriented towards solving problems of a mathematical nature § Popular language amongst scientists and engineers Ref Page 223 Chapter 12: Computer Languages Slide 34/59
  • 35. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha A Sample FORTRAN Program C FORTRAN PROGRAM TO COMPUTE C THE SUM OF 10 NUMBERS SUM = 0 DO 50 I = 1, 10 READ (5, 10) N SUM = SUM + N 50 CONTINUE WRITE (6, 20) SUM 10 FORMAT (F6.2) 20 FORMAT (1X, ’THE SUM OF GIVEN NUMBERS = ’, F10.2) STOP END Ref Page 224 Chapter 12: Computer Languages Slide 35/59
  • 36. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha COBOL § Stands for COmmon Business Oriented Language § Originally developed started under Grace Hopper followed by COnference on DAta SYstems Languages (CODASYL) § Standardized by ANSI as COBOL-74, COBOL-85, and COBOL-2002 § Designed for programming business data processing applications § Designed to have the appearance and structure of a business report written in English, hence often referred to as a self-documenting language Ref Page 224 Chapter 12: Computer Languages Slide 36/59
  • 37. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha A Sample COBOL Program IDENTIFICATION DIVISION. PROGRAM_ID. SUMUP. AUTHOR. P K SINHA. * THIS PROGRAM COMPUTES AND PRINTS * THE SUM OF GIVEN NUMBERS. ENVIROMENT DIVISION. CONFIGURATION SECTION. SOURCE_COMPUTER. BURROUGHS_6700. OBJECT_COMPUTER. BURROUGHS_6700. INPUT_OUTPUT SECTION. FILE_CONTROL. SELECT DATA_FILE ASSIGN TO DISK. SELECT OUTPUT_FILE ASSIGN TO PRINTER. DATA DIVISION. FILE SECTION. (Continued on next slide) Ref Page 226 Chapter 12: Computer Languages Slide 37/59
  • 38. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha A Sample COBOL Program (Continued from previous slide..) FD DATA_FILE RECORD CONTAINS 80 CHARACTERS LABEL RECORD IS OMITTED DATA RECORD IS INPUT_DATA_ RECORD. 01 INPUT_DATA_RECORD. 05 NPICTURE 9(6)V99. 05 FILLER PICTURE X(72). FD OUTPUT_FILE RECORD CONTAINS 132 CHARACTERS LABEL RECORD IS OMITTED DATA RECORD IS OUTPUT_RECORD. (Continued on next slide) Ref Page 226 Chapter 12: Computer Languages Slide 38/59
  • 39. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha A Sample COBOL Program (Continued from previous slide..) 01 OUTPUT_RECORD. 05 FILLER PICTURE X. 05TITLE PICTURE X(25). 05 SUM PICTURE 9(10)V99. 05 FILLER PICTURE X(94). WORKING_STORAGE SECTION. 77MESSAGE PICTURE X(25) VALUE IS “THE SUM OF GIVEN NUMBERS=”. PROCEDURE DIVISION. OPEN_FILES. OPEN INPUT DATA_FILE. OPEN OUTPUT OUTPUT_FILE. INITIALIZATION. MOVE SPACES TO OUTPUT_RECORD. MOVE ZERO TO SUM. (Continued on next slide) Ref Page 226 Chapter 12: Computer Languages Slide 39/59
  • 40. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha A Sample COBOL Program (Continued from previous slide..) PROCESS_LOOP. READ DATA_FILE AT END GO TO PRINT_PARA. ADD N TO SUM. GO TO PROCESS_LOOP. PRINT_PARA. MOVE MESSAGE TO TITLE. WRITE OUTPUT_RECORD. END_OF_JOB. CLOSE DATA_FILE. CLOSE OUTPUT_FILE. STOP RUN. Ref Page 226 Chapter 12: Computer Languages Slide 40/59
  • 41. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha BASIC § Stands for Beginners All-purpose Symbolic Instruction Code § Developed by Professor John Kemeny and Thomas Kurtz at Darmouth College in the United States § Standardized by ANSI as BASIC-78 § Designed to be an interactive language and to use an interpreter instead of a compiler § Simple to implement, learn and use language. Hence, it is a widely used language on personal computers § Flexible and reasonably powerful language and can be used for both business and scientific applications Ref Page 227 Chapter 12: Computer Languages Slide 41/59
  • 42. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha A Sample BASIC Program 5 REM PROGRAM TO COMPUTE 6 REM THE SUM OF 10 NUMBERS 10 LET S = 0 20 FOR I = 1 TO 10 30 READ N 40 LET S = S + N 50 NEXT I 60 PRINT “THE SUM OF GIVEN NUMBERS = ”; S 70 DATA 4, 20, 15, 32, 48 80 DATA 12, 3, 9, 14, 44 90 END; Ref Page 227 Chapter 12: Computer Languages Slide 42/59
  • 43. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Pascal § Named after the famous seventeenth-century French mathematician Blaise Pascal § Developed by Professor Nicklaus Wirth of Federal Institute of Technology in Zurich § Encourages programmers to write well-structured, modular programs, instills good program practices § Recognized as an educational language and is used to teach programming to beginners § Suitable for both scientific & business applications § Has features to manipulate numbers, vectors, matrices, strings, sets, records, files, and lists Ref Page 228 Chapter 12: Computer Languages Slide 43/59
  • 44. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha A Sample Pascal Program PROGRAM SUMNUMS (INPUT, OUTPUT); (* PROGRAM TO COMPUTE THE SUM OF 10 NUMBERS *) (* DECLARATION OF VARIABLES *) VAR SUM, N : REAL; VAR I : INTEGER; (* MAIN PROGRAM LOGIC STARTS HERE *) BEGIN SUM := 0; FOR I := 1 TO 10 DO BEGIN READ (N); SUM := SUM + N; END; WRITELN (‘THE SUM OF GIVEN NUMBERS=’, SUM); END; Ref Page 228 Chapter 12: Computer Languages Slide 44/59
  • 45. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha C § Developed in 1972 at AT&T’s Bell laboratories, USA by Dennis Ritchie and Brian Kernighan § Standardized by ANSI and ISO as C89, C90, C99 § High-level programming languages (mainly machine independence) with the efficiency of an assembly language § Language of choice of programmers for portable systems software and commercial software packages like OS, compiler, spreadsheet, word processor, and database management systems Ref Page 229 Chapter 12: Computer Languages Slide 45/59
  • 46. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha A Sample C Program /* PROGRAM TO COMPUTE THE SUM OF 10 NUMBERS */ /* Directives to include standard library and header */ #include <stdlib.h> #include <stdio.h> /* Main function starts here */ void main ( ) { /* Declaration of variables */ float Sum = 0.0, N = 0.0; int Count = 0; for (Count = 0; Count < 10; Count++) { printf(“nGive a number:”); scanf(“%f”, N); Sum += N; } printf(“THE SUM OF GIVEN NUMBERS = %f”, &Sum); } Ref Page 230 Chapter 12: Computer Languages Slide 46/59
  • 47. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha C++ § Named C++ as ++ is increment operator and C language is incremented to its next level with C++ § Developed by Bjarne Stroustrup at Bell Labs in the early 1980s § Contains all elements of the basic C language § Expanded to include numerous object-oriented programming features § Provides a collection of predefined classes, along with the capability of user-defined classes Ref Page 229 Chapter 12: Computer Languages Slide 47/59
  • 48. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Java § Development started at Sun Microsystems in 1991 by a team led by James Gosling § Developed to be similar to C++ with fewer features to keep it simple and easy to use § Compiled code is machine-independent and developed programs are simple to implement and use § Uses just-in-time compilation § Used in embedded systems such as hand-held devices, telephones and VCRs § Comes in two variants – Java Runtime Engine (JRE) and Java Software Development Kit (SDK) Ref Page 231 Chapter 12: Computer Languages Slide 48/59
  • 49. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha C# (C Sharp) § Object-oriented programming language developed by Anders Hejlsberg and released by Microsoft as part of Microsoft’s .NET technology initiative § Standardized by ECMA and ISO § Syntactically and semantically very close to C++ and adopts various object-oriented features from both C++ and Java § Compilers target the Common Language Infrastructure (CLI) implemented by Common Language Runtime (CLR) of .NET Framework § CLR provides important services such as, memory management, exception handling, and security Ref Page 232 Chapter 12: Computer Languages Slide 49/59
  • 50. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha RPG § Stands for Report Program Generator § Developed by IBM to meet customer requests for an easy and economic mechanism for producing reports § Designed to generate the output reports resulting from the processing of common business applications § Easier to learn and use as compared to COBOL § Programmers use very detailed coding sheets to write specifications about input, calculations, and output Ref Page 232 Chapter 12: Computer Languages Slide 50/59
  • 51. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha LISP § Stands for LISt Processing § Developed in 1959 by John McCarthy of MIT § Designed to have features for manipulating non- numeric data, such as symbols and strings of text § Due to its powerful list processing capability, it is extensively used in the areas of pattern recognition, artificial intelligence, and for simulation of games § Functional programming language in which all computation is accomplished by applying functions to arguments Ref Page 232 Chapter 12: Computer Languages Slide 51/59
  • 52. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha SNOBOL § Stands for StriNg Oriented symBOlic Language § Used for non-numeric applications § Powerful string manipulation features § Widely used for applications in the area of text processing Ref Page 233 Chapter 12: Computer Languages Slide 52/59
  • 53. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Characteristics of a Good Programming Language § Simplicity § Naturalness § Abstraction § Efficiency § Structured Programming Support § Compactness § Locality § Extensibility § Suitability to its environment Ref Page 233 Chapter 12: Computer Languages Slide 53/59
  • 54. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Factors for Selecting a Language for Coding an Application § Nature of the application § Familiarity with the language § Ease of learning the language § Availability of program development tools § Execution efficiency § Features of a good programming language Ref Page 234 Chapter 12: Computer Languages Slide 54/59
  • 55. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Subprogram § Program written in a manner that it can be brought into use in other programs and used whenever needed without rewriting § Also referred to as subroutine, sub-procedure, or function § Subprogram call statement contains the name of the subprogram followed by a list of parameters enclosed within a pair of parentheses § Intrinsic subprograms (also called built-in-functions) are those provided with the programming language § Programmer-written subprograms are written and used as and when they are needed Ref Page 235 Chapter 12: Computer Languages Slide 55/59
  • 56. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Structure of a Subprogram Subprogram name Parameter Subprogram header sqrt (x) Set of instructions that perform Subprogram body the intended task Ref Page 235 Chapter 12: Computer Languages Slide 56/59
  • 57. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Flow of Control in Case of Subprogram Calls subprogram header 2 1 subprogram call statement 3 6 4 next statement subprogram body 7 5 subprogram call statement 8 next statement 9 A subprogram Flow of control A program that calls the subprogram twice Ref Page 236 Chapter 12: Computer Languages Slide 57/59
  • 58. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Key Words/Phrases § Assembler § Just-in-time compilation § Assembly language § Language processor § BASIC § Linker § Built-in function § LISP § C § Load module § C++ § Logic error § C# § Low-level language § COBOL § Machine language § Coding § Macro instructions § Compiler § Object program § Computer language § Object-oriented programming § FORTRAN § Opcode § Function § Operand § High-level language § Pascal § HotJava Interpreter § Programmer § Intrinsic subprogram § Programming § Intermediate compiler and § Programming language Interpreter § Pseudo instruction § Java § RPG § Self-documenting language (Continued on next slide) Ref Page 236 Chapter 12: Computer Languages Slide 58/59
  • 59. Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Key Words/Phrases (Continued from previous slide..) § SNOBOL § Source program § Sub-procedure § Subprogram § Subroutine § Symbolic language § Syntax error § Syntax rules § Written subprograms Ref Page 236 Chapter 12: Computer Languages Slide 59/59