Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to programming languages, Algorithms & flowcharts

Similar presentations


Presentation on theme: "Introduction to programming languages, Algorithms & flowcharts"— Presentation transcript:

1 Introduction to programming languages, Algorithms & flowcharts
Slides borrowed from Instructor: Wajih Alouini

2 What are Program and programming language?
Program : Set of instructions which a computer can “interpret” to solve problems, make calculations, perform tasks, etc. Programming Language : A formal language that is intended for the expression of computer programs Syntax is away of writing program in any language (every language has its own syntax) Slides borrowed from Instructor: Wajih Alouini

3 Why study programming languages?
Programming languages are important for students in all disciplines of engineering because they are the primary tools of the central activity of any science. Slides borrowed from Instructor: Wajih Alouini

4 Why study programming languages? (cont.)
To improve your ability to develop effective algorithms and to improve your use of your existing programming language. To increase your vocabulary of useful programming constructs. To allow a better choice of programming languages. To make it easier to learn a new language. Slides borrowed from Instructor: Wajih Alouini

5 A short history of programming Languages
1950 : Numerically based languages. FORTRAN (55) Business languages. COBOL(60) Artificial intelligence languages. LISP, ALGOL(58) LISP, FORTRAN (55) ALGOL 1970 : PLs Ada, C, Pascal, Smalltalk 1980 : Development of functional programming: ML, Miranda Object-oriented programming: Smalltalk, C++ Slides borrowed from Instructor: Wajih Alouini

6 A short history of programming languages (cont.)
Fourth-generation languages Productivity tools (such as spreadsheets) Visual languages : Delphi Scripting languages : Perl Expert systems shells Network computing : Java Slides borrowed from Instructor: Wajih Alouini

7 Low-level vs. High-level Programming Languages
Machine code Assembly High-level: (abstraction from the computer details) Basic, C, Java, Pascal, C++, Perl, Python, … Slides borrowed from Instructor: Wajih Alouini

8 Styles of Computer Programming
Procedural: procedures, routines, subroutines, methods, or functions e.g. C, Pascal, Basic, Fortran Functional Mathematical functions e.g. Lisp, Erlang, Haskell, ML, … Object-oriented e.g. C++, Java, Smalltalk Rule-based (or Logic) : facts, rules e.g. Prolog Slides borrowed from Instructor: Wajih Alouini

9 Slides borrowed from Instructor: Wajih Alouini
Examples (1/5) Fibonacci numbers Fn = Fn-1 + Fn-2 , n>=2 F0 = 0, F1 = 1 How to program? 0,1,1,2,3,5,8,13 Slides borrowed from Instructor: Wajih Alouini

10 Slides borrowed from Instructor: Wajih Alouini
Examples (2/5) Functional: (Haskell) fib 0 = 0 fib 1 = 1 fib n = fib (n-1) + fib (n-2) Slides borrowed from Instructor: Wajih Alouini

11 Slides borrowed from Instructor: Wajih Alouini
Examples (3/5) Procedural: (C) int fib(int n) { int first = 0, second = 1; for (int i=0, i<n; i++) { int sum = first+second; first = second; second = sum; } return first; } Slides borrowed from Instructor: Wajih Alouini

12 Slides borrowed from Instructor: Wajih Alouini
Examples (4/5) Assembly: (in x86 using MASM syntax) mov edx, [esp+8] cmp edx, 0 mov eax, 0 ret cmp edx, 2 mov eax, 1 ret push ebx mov ebx, 1 mov ecx, 1 lea eax, [ebx+ecx] cmp edx, 3 mov ebx, ecx mov ecx, eax dec edx pop ebx ret Slides borrowed from Instructor: Wajih Alouini

13 Slides borrowed from Instructor: Wajih Alouini
Examples (5/5) Machine code 8B FA B C383 FA B C353BB B D FA BD98B C84AEBF1 5BC3 Slides borrowed from Instructor: Wajih Alouini

14 Attributes of a good language
Ease of program verification Proof of correctness, desk checking, test Simplicity of semantic and syntax Programming environment Portability of programs Cost of use Program execution Program translation Program creation, testing, and use Program maintenance Slides borrowed from Instructor: Wajih Alouini

15 Slides borrowed from Instructor: Wajih Alouini
Attributes of a good language (another view: to make a software reliable, maintainable, efficient) Reliability Writability Readability Simplicity Safety (no goto, no pointers) Robustness (undesired events can be trapped, like arithmetic overflow, invalid inputs) Maintainability Factoring (modularity) Locality Efficiency Slides borrowed from Instructor: Wajih Alouini

16 Issues for all Languages
Can it be understood by people and processed by machines? although translation may be required Sufficient expressive power? can we say what needs to be said, at an appropriate level of abstraction? Slides borrowed from Instructor: Wajih Alouini

17 Slides borrowed from Instructor: Wajih Alouini
Translation Compilation Translate into instructions suitable for some other (lower level) machine During execution, that machine maintains program state information Interpretation May involve some translation Interpreter maintains program state Slides borrowed from Instructor: Wajih Alouini

18 Slides borrowed from Instructor: Wajih Alouini
Trade-offs Compilation lower level machine may be faster, so programs run faster compilation can be expensive examples: C (and Java?) Interpretation more ability to perform diagnostics (or changes) at run-time examples: Basic, UNIX shells, Lisp Slides borrowed from Instructor: Wajih Alouini


Download ppt "Introduction to programming languages, Algorithms & flowcharts"

Similar presentations


Ads by Google