Presentation is loading. Please wait.

Presentation is loading. Please wait.

Why study programming languages?

Similar presentations


Presentation on theme: "Why study programming languages?"— Presentation transcript:

1 Why study programming languages?
Increased capacity to express ideas Constructs we can express can be constrained by the language we know Improved background for choosing appropriate language Should choose language appropriate for task not just the one that we know Increased ability to learn new languages Learning new languages and learning language fundamentals enables us to learn other languages more easily Better understanding of the significance of implementation Aids in finding bugs Enables us to write more efficient code Better use of languages that are already known looking at the concept of languages (threads, exceptions, polymorphism) encourages uses of those things in languages already known (Java) Overall advancement of computing Educated people will encourage use of good languages Section 1.1

2 Computer Applications & Languages
Scientific Number crunching, weather forecasting, codebreaking, plane/missile trajectories Language requirements: Real numbers Large amount of calculations (hence efficient) Arrays, matrices Selection, Counting loops Languages: Assembly, Fortran, Algol and descendants of Algol (Pascal, Modula, Ada, PL/I) Section 1.2

3 Computer Applications & Languages
Scientific Applications Language requirements: reals, efficiency, arrays, loops Languages: Fortran, assembly, Algol Business Financial transactions Language requirements: Report production Exact (but low) precision (e.g., money) Character data Languages: COBOL, RPG Section 1.2

4 Computer Applications & Languages
Scientific Applications: reals, efficiency, arrays, loops Fortran, assembly, Algol Business Applications: reports, decimal precision, characters COBOL, RPG Artificial Intelligence Deductive systems, reasoning, machine learning Language requirements: Symbolic computation (“names” not numbers) Lists of data (not arrays) Recursion Languages: LISP, Scheme, Prolog Section 1.2

5 Computer Applications & Languages
Scientific Applications: reals, efficiency, arrays, loops Fortran, assembly, Algol Business Applications: reports, decimal precision, characters COBOL, RPG AI Applications: Symbolic computation, Lists of data, Recursion LISP, Scheme, Prolog Systems Programming Operating systems, compilers, debuggers, etc. Language requirements: FAST execution External device interfaces Languages: C, Assembly Section 1.2

6 Computer Applications & Languages
Scientific Applications: reals, efficiency, arrays, loops Fortran, assembly, Algol Business Applications: reports, decimal precision, characters COBOL, RPG AI Applications: Symbolic computation, Lists of data, Recursion LISP, Scheme, Prolog Systems Programming: fast, external devices C, Assembly Web Software Language requirements: dynamic web content, database access Languages: XHTML, JavaScript, PHP, Ruby, Java Section 1.2

7 Language Influences Architecture Programming Methodologies von Neumann
Memory CPU ALU Programming Methodologies Unstructured Procedure-oriented (top-down, functions, …) Data-oriented (ADT, OO) Section 1.4

8 Language Categories (most important ones)
Imperative Functional Logic Object oriented (extension of imperative) Section 1.5

9 Imperative Programming Languages
Central features are variables and assignment statements Design based on the von Neumann architecture Variables model memory cells Assignment statement models the “piping operation” – operands piped from memory to CPU; result piped from CPU to memory Section 1.5

10 Functional Programming Languages
Main features are functions and function calls (recursion instead of iteration) Design is based upon mathematical functions Section 1.5

11 Logic programming languages
Also called rule-based languages and declarative languages Programmer gives rules that specify what a solution looks like and not how desired solution is achieved Section 1.5

12 Object Oriented Programming Languages
Provides a feature for building objects Provides a method for specifying inheritance Provides polymorphism Same name for different functions (method overriding) Dynamic binding of function call to function body Section 1.5

13 Implementation methods
Compilation Interpretation Hybrid Section 1.7

14 Compilation Compiler translates program into machine language that is executed on the computer Execution is fast Section 1.7

15 Compilation source machine code Lexical analyzer Linker Syntax
executable Semantic analyzer/ Intermediate code generation Optimizer Code generator machine code Section 1.7

16 Interpreter Pure interpretation means there is no translation of the source program Program called an interpreter is executed by the computer Interpreter fetches/decodes/executes source program Slower and requires more space than the compilation process Section 1.7

17 Hybrid Source program is translated into an intermediate code that is then interpreted Examples Java is translated into byte code that can be interpreted Perl is compiled before execution in order to detect compilation errors (unlike shell languages) Section 1.7


Download ppt "Why study programming languages?"

Similar presentations


Ads by Google