Presentation is loading. Please wait.

Presentation is loading. Please wait.

Course No-101319 Programming Languages Theory & Practice First Semester 2008 - 2009 ITTIHAD UNIVERSITY Computer Science Department Instructor: Dr. Rafiqul.

Similar presentations


Presentation on theme: "Course No-101319 Programming Languages Theory & Practice First Semester 2008 - 2009 ITTIHAD UNIVERSITY Computer Science Department Instructor: Dr. Rafiqul."— Presentation transcript:

1 Course No-101319 Programming Languages Theory & Practice First Semester 2008 - 2009 ITTIHAD UNIVERSITY Computer Science Department Instructor: Dr. Rafiqul Zaman Khan, Ph.D

2 Handout-2 Preliminaries

3 Reasons to study concepts of PLs Increased capacity to express programming concepts Improved background for choosing appropriate languages Increased ability to learn new languages Understanding the significance of implementation Increased ability to design new languages Overall advancement of computing

4 Programming Domains Scientific applications Business applications Artificial intelligence Systems programming Scripting languages Special purpose languages

5 Programming Language Definition Language Syntax –Grammar and punctuation. –Superset of legal languages. Language Semantics –What the syntax means. –Restricts syntactically correct programs.

6 Programming Paradigms Imperative –Program = Algorithms + Data Functional –Program = Function o Function Object-Oriented –Program = Objects + Messages Logic –Program = Facts + Rules Special-purpose

7 Imperative Programming Oldest style of Programming Algorithm is expressed as a sequence of instructions, e.g. assignment, looping, … For example, assembly, Fortran, Algol, Pascal, and C.

8 Example in C Finding the greatest common divisor between two elements #include void main() { int x,y; printf("enter any two numbers"); scanf("%d %d",&x,&y); if(x<0)x=-x; if(y<0)y=-y; while(x!=y) x>y?(x=x-y):(y=y-x); printf("gcd of the numbers is %d",x); }

9 Functional Programming Comes from traditional Mathematics. Description of computation is based on the evaluation of functions or the application of functions to known values. No notion of variables or assignment to variables! Loops are replaced by recursion! For example Lisp, Scheme, ML, Haskell.

10 Example in Scheme Finding the greatest common divisor between two elements (define (gcd u v) (if (= v 0) u (gcd v (remainder u v))))

11 Object Oriented Programming Based on class and inheritance Instead of applying global functions to variables, “ methods ” associated with instances are invoked (message passing) For example, C++, Java, Smalltalk, …

12 Example in C++ // gcd.cpp - long integer greatest common divisor class BadGcdArgumentsException{ }; long gcd(long a,long b) // Euclidean algorithm - returns 0 // if a and b are both 0. { long r; // First make sure everything is >= 0. if(a < 0) a = -a; if(b < 0) b = -b; // If both arguments are 0, throw an exception. if(a == 0 && b == 0) throw BadGcdArgumentsException(); // Otherwise the gcd of 0 and x is x. if(a == 0) return(b); if(b == 0) return(a); // Keep dividing until we get a zero remainder. The last // nonzero remainder is the gcd. while(b > 0) { r = a % b; a = b; b = r; } return(a); } #include void main() { int x,y,r; printf("Please Input two numbers : "); scanf("%d %d",&x,&y); r=gcd(x,y); printf("gcd = %d\n",r); } Please Input two numbers : 4 5 gcd = 1 Press any key to continue Finding the greatest common divisor between two elements

13 Logic Programming Like functional programming, but through formal logic. A program is a set of predicates, i.e. rules governing the problem. Either the truthfulness of a given formula or the deduction of new formulae results from running a logic program. For example, prolog.

14 Example in Prolog Finding the greatest common divisor between two elements gcd(U,V,U) :- V=0. gcd(U,V,X) :- V>0, Y is U mod V, gcd(V,Y,X).

15 Special-Purpose Languages Shell, Awk, Perl, Python –System administration –Program configuration Postscript, Tex, RTF –Text and document setting HTML, XML –Markup Language

16 Example in Perl Make up one pdf file from separate postscript files. # This script takes as input the desired output filename (without the extension) and the # number of input files. It is assumed that the input filenames are of the form 1.ps 2.ps... # 99.ps and so on and so forth. It then combines all postscript files into one file with a.ps # extension. Finally, it will generate the pdf version of the postscript file. $Docs_Dir = 'C:\\Program Files\\ScannerU\\'; $OutputFile = $ARGV[0]; $NumOfInputs = $ARGV[1]; $FileList = ""; for ($i = 1; $i <= $NumOfInputs; $i = $i + 1) { $FileList = $FileList. $i. ".ps "; } chdir($Docs_Dir); system("gswin32c -dNOPAUSE -sDEVICE=pswrite -dBATCH - sOutputFile=". $OutputFile. ".ps ". $FileList); system("ps2pdf -r720 ". $OutputFile. ".ps ". $OutputFile. ".pdf ");

17 Language Evaluation Criteria Readability –The most important criteria –Factors Overall simplicity –Too many features is bad –Multiplicity of features is bad Orthogonality –Makes the language easy to learn and read –Meaning is context independent Control statements Data type and structures Syntax considerations Writability –Factors Simplicity and orthogonality Support for abstraction Expressivity

18 Language Evaluation Criteria (cont.) Reliability –Factors Type checking Exception handling Aliasing Readability and writability Cost –Categories Programmer training Software creation Compilation Execution Compiler cost Poor reliability Maintenance Others: portability, generality, well-definedness

19 Layered View of a Computer

20 Implementation Methods Compilation Interpretation Hybrid Implementation Systems

21 Compilation Translate high-level program to machine code Slow translation Fast execution

22 Interpretation No translation Slow execution Usually found in functional and logic- based programming languages.

23 Hybrid Implementation Systems Small translation cost Medium execution speed

24 Programming Environments The collection of tools used in software development UNIX –An old operating system and tool collection Borland JBuilder –A PC environment for Java Smalltalk –A language processor/environment Microsoft Visual C++ –A large, complex visual environment


Download ppt "Course No-101319 Programming Languages Theory & Practice First Semester 2008 - 2009 ITTIHAD UNIVERSITY Computer Science Department Instructor: Dr. Rafiqul."

Similar presentations


Ads by Google