Chapter 1: Introduction

CHAPTER 1: INTRODUCTIONCSC305 | PROGRAMMING PARADIGMS

Começar. É Gratuito
ou inscrever-se com seu endereço de e-mail
Chapter 1: Introduction por Mind Map: Chapter 1: Introduction

1. Programming Paradigm

1.1. Imperative paradigm

1.1.1. The sequential execution of instructions

1.1.2. The use of variables representing the memory locations

1.1.3. The use of assignment to change the values of variables

1.2. Object Oriented Paradigm

1.2.1. Allowing the programmers to write reusable, extensible code that operates in a way that mimics the real world, thus allowing programmer to use their natural intuition about the world to understand the behavior of a program and construct appropriate code.

1.2.2. Key Features

1.2.2.1. Abstraction

1.2.2.2. Encapsulation

1.2.2.3. Polymorphism

1.2.2.4. Inheritance

1.3. Functional paradigm

1.3.1. Alternative paradigms for describing computation come from mathematics

1.3.2. Lambda calculus forms the basis of almost all functional programming languages.

1.3.3. Key Features

1.3.3.1. No iteration

1.3.3.2. No Notation

1.3.3.3. No assignment variable

1.3.3.4. Function and Expression

1.3.3.5. Recursive

1.4. Logic Paradigm

1.4.1. Based on symbolic logic

1.4.2. Sometimes called declarative programming.

1.4.3. Example: PROLOG

1.5. Scripting Paradigm

1.5.1. A ‘script’ is code that acts upon some system in an external or independent manner and can be removed or disabled without disabling the system itself.

1.5.2. Key Features

1.5.2.1. Lightweight

1.5.2.2. Quickly constructed

2. Language design

2.1. Readability

2.2. Abstractions

2.3. Complexity

3. Programming Language Evolutionv

3.1. First Generation (1951 – 1957)

3.1.1. Machine language

3.1.2. Basic language (0 and 1)

3.2. Second Generation (1958 – 1963)

3.2.1. Assembly language

3.2.2. Using abbreviations or easy to remember words

3.3. Third Generation (1964 – 1969)

3.3.1. High level / Procedural Language

3.3.2. Fortran, COBOL, Pascal, PL/I, Ada, C.

3.4. Fourth Generation (1970 – 1990)

3.4.1. Very high level language

3.4.2. Or problem oriented language

3.5. Fifth Generation (1991 – 2000 and beyond)

3.5.1. Natural languages

3.5.2. Can be ordinary human language

3.5.3. Can be artificial intelligence field

4. Abstraction Programming languages

4.1. Key concepts

4.1.1. Computation

4.1.2. Machine Readability

4.1.3. Human Readability

4.2. Categories of Abstraction

4.2.1. Data abstraction

4.2.2. Control Abstraction

4.3. Level of Abstraction

4.3.1. Basic Abstraction

4.3.1.1. Refer to the collection of localized machine information.

4.3.1.2. Hide the internal representation of common data values in a computer.

4.3.2. Structured Abstraction

4.3.2.1. Collecting related data values into a single unit (allow the programmer to view the items as one thing)

4.3.3. Unit Abstraction

4.3.3.1. Collect information about entire pieces of program.

4.3.3.2. Similar to Abstract Data Type (ADT) concept

4.3.3.2.1. Abstract Data Type

5. Language definition

5.1. Language Syntax

5.1.1. Refer to the structure of the language.

5.2. Language Semantic

5.2.1. Refer to the meaning of the language.

6. Language Translation

6.1. The interpreter

6.1.1. The interpreter is a translator that executes a program directly.

6.2. The compiler

6.2.1. Compiler is a translator that produce an equivalent program in a form suitable for execution.

6.2.2. two-steps process:

6.2.2.1. The original program (source program) is the input to the compiler.

6.2.2.2. • A new program (target program) is output from the compiler.

6.3. Compilation process

6.4. Translation Process

6.5. Interpretation vs compilation

6.6. Properties of programming language

6.6.1. Static properties

6.6.2. Dynamic Properties

6.7. Errors

6.7.1. An important property of a language translator is its response to errors in a source program.

6.7.1.1. Class of error

6.7.1.1.1. Lexical error

6.7.1.1.2. Syntax error

6.7.1.1.3. Semantic error

6.7.1.1.4. Logic error