18

Programming

Embed Size (px)

Citation preview

Index

Which is the programming?

Programs and algorithms

Programming languages

Trend programming languages

Types of programs

Which is the programming?

In computer science, programming is a process which is written (in a programming language), is tested,

purified and remains the source code of a computer program. Within information technology, computer

programs are the elements that make up the software, which is the set of instructions that run the hardware of

a computer to perform a certain task. Therefore, programming is one of the major areas within

computer science.

Programs and Algorithms

An algorithm is a sequence of unambiguous, finite and ordered instructions to be followed to solve a problem. Usually implements a program (translated to a programming language specific) algorithm. Note that the instruction sequence itself (execution) which must be finite, not the number of steps taken.

The programs are usually divided into smaller parts (modules) so that the algorithmic complexity of each of the parties is less than the full program, which helps the development of the program.

According to Niklaus Wirth, a program consists of algorithms and data structure.

Various techniques have been proposed program whose goal is to improve the process of creating and maintaining software. Among them are the following:

Programming languages

Machine Language

Low-level Language (assembly)

High-level Language

Machine Language

Microprogrammes circuits are digital, which means working with only two voltage levels. These levels, abstraction, are symbolized with zero 0 and a 1, so the machine language uses only those signs. This allows the use of the theories of Boolean algebra and the binary system in the design of such circuits and their programming.

Claude Elwood Shannon, in his Analysis of Relay and Switching Circuits, and their experiences in switching networks, laying the groundwork for the implementation of Boolean algebra to switching networks.

Low-level Language

The low-level languages are programming languages that are close to the operation of a computer. The lowest level of language par excellence is the machine code. This was followed by the assembly language, as when programming in assembler is working with the memory registers of the computer directly.

Key high-level language: Ada, ALGOL, Basic, C++, C #, Clipper, COBOL, Fortran, Foxpro or Visual Foxpro, Java, Terms, Logo, PHP (PHP Hypertext Preprocessor), PL / SQL, RPG and Matlab. file:///home/pptfactory/temp/Mis%20imágenes/logo_cpp.jpg

High-level Language

Programming languages high-level feature to express algorithms in a way appropriate to the human cognitive ability, rather than executing the capacity of the machines.

In the first high-level language that the limitation was aimed at a specific area and its installation required a predefined syntax. Are classified as procedural languages.

Another limitation of the high-level language is that it requires some programming skills to perform the logical sequence of instructions. The very high level languages were created so that users could solve this common problem of a data processing easier and faster.

For this reason, in the late 1950s came a new kind of programming language that avoids these drawbacks at the expense of giving a little on the benefits. These languages are called "third generation" or "high level", as opposed to "low" or "close to the machine."

Trend of programming Languages

The growth of Ruby and Javascript, due to the growth of Web 2.0 applications is a fact.This is causing a gradual decline of Java and C / C + +.

As can be seen from the graph the introduction of Rails is the start of an upward trend of Ruby.

Trend of programming languages

Types of Programs

Structured programming Origins of the estructured programming

Advantages and Disadvantages of structured programming

Modular programming

Object-oriented programming (OOP)

Declarative programming

Structured Programming 1

In the late 1960s came a new way of programming which not only resulted in reliable and efficient programs,but alsowere written so as to facilitatecomprehension later.

Origin of the Structured Programming

Advantages and DisadvantagesWith structured programming can get the following benefits:

Structured Programming 2

1. The programs are easier to understand, since they can be read in sequence, without the need of monitoring newlines (GOTO) within blocks of code to understand the logic.

2. The program's structure is clear, since the instructions are more connected or related.

3. Reduced effort in testing. The monitoring of faults or errors of the program ( "debugging") is provided due to the structure more visible, so that errors can be detected and corrected more easily.

4. Reduced maintenance costs of the programs.

5. Programs simpler and faster (since it is easier to optimize).

Structured Programming 3

6. The blocks of code are self explanatory, which makes the documentation.7. GOTO the reserve to build the basic instructions. Although not used directly,

they are banned for use, are implicitly included in the instructions for selection and iteration.

8. A program written according to these principles not only have a better structure but also an excellent presentation.

9. Structured programming provides these benefits, but should not be regarded as a panacea and that software development is primarily a task of dedication, effort and creativity.

The main drawback of this method of programming is that you get a single block of program, when it becomes too big can be problematic handling and this is solved using modular programming, defining interdependent modules programmed and compiled separately

Modular programming

Modular programming is a programming paradigm that consists of dividing a program into modules or sub-programs in order to make it more readable and manageable.

Is presented as a historically evolving programming structured programming problems to solve large, complex as it can solve.

On having applied implement modular programming, a complex problem should be divided into several simpler subproblems, and these in turn into other simpler subproblems. This must be done to get simple enough subproblems to be solved easily with any programming language. This technique is called successive refinement, or divide-and-down analysis (Top-Down).

A module is each part of a program that solves one of the subproblems which divides the original complex problem. Each of these modules is a task well defined and some others need to operate. If a module requires another, can communicate with it via a communication interface must also be well defined.

Object-oriented Programming

Object-oriented programming is a program as a set of objects that collaborate among themselvesto perform tasks. This allows the programs and modules are easier to write, maintain and reuse.It is a paradigm that uses objects as key elements in building the solution. Surge in 70 years. An object is an abstraction of some fact or thing in the real world that has attributes that represent characteristics or properties and methods that represent their behavior or actions they perform. All properties and methods common to the objects are encapsulated into classes or groups. ¨ A class is a template or a prototype to create objects, so it is said that the objects are instances of classes. Programming Language: C + +, Java, C #, VB.Net, etc.

file:///home/pptfactory/temp/Mis%20imágenes/java.png

Declarative Programming

Declarative programming is a programming paradigm that is based on programs specifying or "declaring" a set of terms, propositions, assertions, constraints, equations or transformations that describe the problem and its detailed solution. The solution is obtained by internal control mechanisms, without specifying exactly how to find it. There are no destructive assignments, and variables are used with referential transparency

Some languages declarative:

* Haskell (Functional Programming) * Prolog (Logic Programming) * Lisp (functional programming) * F-Prolog (Fuzzy Logic Programming) * Curry (Functional-Logic Programming)