Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Variety of Programming Languages D Goforth COSC 3127 D Goforth COSC 3127.

Similar presentations


Presentation on theme: "The Variety of Programming Languages D Goforth COSC 3127 D Goforth COSC 3127."— Presentation transcript:

1 The Variety of Programming Languages D Goforth COSC 3127 D Goforth COSC 3127

2 1. Grouping Languages by Paradigm imperative functional logical object.oriented scripting??

3 Imperative Languages (Procedural) since 1940’s, high level since 1950’s statement-oriented closest to underlying machine model e.g. Fortran, COBOL, Algol, Pascal, c

4 ALGOL 60 example: (see p. 60, Sebesta) (part of program, read in array and find sum) comment input integers into array and find sum; begin integer array intlist[1:99]; integer listlen, counter, sum; sum = 0; readint(listlen); if (listlen>0) ^ (listlen < 100) then begin comment loop to read values; for counter := 1 step 1 until listlen do begin readint(intlist[counter]); sum := sum + intlist[counter] end; printint(sum) end

5 Functional Languages (Applicative) since 1950’s based on mathematical concept of function data storage is a ‘side-effect’! Command-line interpreter model e.g. LISP, APL, Maple, unix, DOS BASIC is an imperative/functional hybrid

6 LISP example: (in a pseudo-lisp dialect) (function to add all numbers in a list ‘lis’; lis may not be a list, or, when it is a list, may contain items others than numbers that can be added ? (define (sumnum lis) (if ((not (list? lis)) ( 0 )) ((number? (firstOf lis)) (plus (firstOf lis)(sumnum (restOf lis)))) ( true (sumnum (restOf lis))))) sumnum ? (sumnum ‘( 4 w (u n 66) 5 3)) 12

7 Logic Languages since 1970’s based on logical implication expressions (=>) programs determine what combinations of data make expressions true e.g. Prolog

8 Prolog example: (program to find the greatest common divisor of two integers U, V; result is value of W) gcd(U, 0, U). gcd(U, V, W) :- not(V=0), R is U mod V, gcd(V, R, W). ?- gcd(10, 15, W). W = 5 ?- gcd(20,30,7). no.

9 Object-oriented Languages since 1970’s abstract data types manipulated by messages invoking methods e.g. Smalltalk, Actor C++, java are imperative/object-oriented hybrids

10 Smalltalk example: (see p. 481, Sebesta) (method to replace two arrays of objects with longer arrays; the arrays ‘names’ and ‘codes’ are instance variables) grow | oldNames oldCodes| oldNames <- names. oldCodes <- codes. names <- Array new: names size + 1. codes <- Array new: codes size + 1. names replaceFrom: 1 to: oldNames size with: oldNames codes replaceFrom: 1 to: oldCodes size with: oldCodes

11 Scripting Languages since 1950’s based on large libraries of routines e.g. JCL, AWK, Perl

12 2. Grouping Languages by Kinship Sebesta, p. 39 languages are related to others developed before many languages mix programming paradigms

13


Download ppt "The Variety of Programming Languages D Goforth COSC 3127 D Goforth COSC 3127."

Similar presentations


Ads by Google