19

Click here to load reader

Evolución y clasificación de los lenguajes de programación

Embed Size (px)

Citation preview

Page 1: Evolución y clasificación de los lenguajes de programación

1

OBJETIVO GENERAL

“Conocer el proceso de evolución de los lenguajes de programación

con el fin de poder identificarlos y clasificarlos según los datos

obtenidos”

OBJETIVOS ESPECÍFICOS

1. Indagar acerca del proceso de evolución de los lenguajes de

programación.

2. Identificar los lenguajes de programación.

3. Reconocer cuáles son los cambios que han tenido los lenguajes de

programación durante su evolución y clasificarlos según los datos

obtenidos.

4. Definir y ejemplificar el paradigma de la programación orientada a

aspectos.

Page 2: Evolución y clasificación de los lenguajes de programación

2

INTRODUCCIÓN

Durante varias décadas, los programadores han tenido que realizar su trabajo

usando un lenguaje muy particular conocido como lenguaje máquina que, como

su nombre lo indica, solamente puede ser interpretado por estas mismas.

Este tipo de lenguaje era bastante propenso a hacer que los programadores

cometieran errores ya que tenía cierto grado de complejidad en cuanto a la

capacidad del entendimiento humano, sin tomar en cuenta que un programa

escrito en tal lenguaje no puede ser ejecutado en otra máquina que no sea en la

que se escribió dicho programa debido a que cada máquina dependía de su

hardware para funcionar y por tanto ejecutar tales programas. Es por esto que al

cabo de unos cuantos años más, se desarrolló un lenguaje conocido como

ensamblador o también llamado lenguaje de nivel medio, el cual era mucho más

fácil de manejar que el lenguaje máquina, evitando así tales errores a la hora de

programar.

Tiempo después surgen lo que se conoce como lenguajes de alto nivel que fue

una innovación en la programación puesto que su sintaxis era bastante similar a

la de los humanos.

Todo este proceso de evolución hizo que los programas escritos sean mucho

más legibles y fáciles de modificar.

Ahora en este punto del tiempo han surgido los paradigmas de programación

que son complementos elementales para los programadores. El paradigma de

programación más utilizado en la actualidad es el Orientado a Objetos.

Algunos de los lenguajes de programación de alto nivel se enfocan en un área

específica, por ejemplo tenemos los empresariales, los de inteligencia artificial,

los que crean aplicaciones para móviles, etc.

Cada uno de estos lenguajes de alto nivel puede ser compilado o interpretado.

Page 3: Evolución y clasificación de los lenguajes de programación

3

INDICE

Contenido INDICE ............................................................................................................................................ 3

EVOLUCIÓN Y CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN ..................................... 5

Según su nivel de abstracción ................................................................................................... 5

Lenguaje máquina ................................................................................................................. 5

Lenguaje ensamblador .......................................................................................................... 6

Lenguaje de alto nivel ........................................................................................................... 6

Según los niveles de programación ........................................................................................... 8

Bajo nivel ............................................................................................................................... 8

Alto nivel ............................................................................................................................... 8

Según su paradigma de programación .................................................................................... 10

1. Programación Orientada a Objetos ................................................................................. 10

2. Programación Estructurada ............................................................................................. 10

3. Programación Modular ................................................................................................... 11

5. Programación imperativa ................................................................................................ 11

6. Programación Declarativa ............................................................................................... 12

7. Programación Orientada a Aspectos ............................................................................... 13

Según las generaciones de las computadoras ........................................................................ 14

1. Primera Generación ........................................................................................................ 14

2. Segunda Generación ....................................................................................................... 14

3. Tercera Generación ......................................................................................................... 14

4. Cuarta Generación .......................................................................................................... 14

5. Quinta Generación .......................................................................................................... 15

Según su uso ............................................................................................................................ 16

Cálculo Numérico ................................................................................................................ 16

Empresariales ...................................................................................................................... 16

BASE DE DATOS ................................................................................................................... 16

PÁGINAS DE INTERNET ........................................................................................................ 16

SISTEMAS ............................................................................................................................. 17

DESARROLLO DE APLICACIONES PARA DISPOSITIVOS MÓVILES (celulares): ...................... 17

APLICACIONES PARA ESCRITORIO ....................................................................................... 17

INTELIGENCIA ARTIFICIAL .................................................................................................... 17

Según su traducción ................................................................................................................ 18

1. Lenguajes compilados ..................................................................................................... 18

Page 4: Evolución y clasificación de los lenguajes de programación

4

2. Lenguajes interpretados .................................................................................................. 18

Page 5: Evolución y clasificación de los lenguajes de programación

5

EVOLUCIÓN Y CLASIFICACIÓN DE LOS LENGUAJES DE

PROGRAMACIÓN

Los lenguajes de programación han sufrido una serie de cambios

durante su proceso de evolución.

En la actualidad los lenguajes de programación se encuentran

clasificados de muchas maneras. En este escrito procederemos a

clasificar y analizar cada uno de los lenguajes de programación más

destacados.

Según su nivel de abstracción

Lenguaje máquina

Lenguaje ensamblador

Lenguaje de alto nivel

En este apartado encontramos que desde los inicios, la programación

ha tenido cierto cambio en cuanto al desarrollo de software. Este

cambio está enfocado en la forma en cómo se realizaba este

procedimiento.

Lenguaje máquina

El primer lenguaje que se empleó para programar fue el lenguaje

máquina, el cual, como sabemos utilizaba el lenguaje binario para

escribir las instrucciones que la computadora debía ejecutar para

realizar su trabajo. Esta forma de programar era bastante lenta y muy

propensa a tener errores, puesto que, este tipo de lenguaje no era

común en el lenguaje humano y su comprensión requería tiempo.

Además, este tipo de programación dependía bastante del hardware

de la máquina con la que se esté trabajando, por ejemplo un

programa escrito en una máquina de cierta marca y modelo no podía

ser ejecutado en otra máquina de diferentes características.

Las ventajas de este tipo de programación es que los programas al

estar escritos directamente en el lenguaje que las computadoras

entienden tienen la capacidad de ejecutarse rápidamente,

aprovechando completamente los recursos de la máquina.

Una desventaja podría ser que debido a que todo programa escrito

en una computadora no puede ser ejecutado en otra, no se tiene la

opción de portabilidad.

Page 6: Evolución y clasificación de los lenguajes de programación

6

Lenguaje ensamblador

Luego de haber pasado por muchos inconvenientes debido a la

programación utilizando el lenguaje máquina surge un lenguaje

conocido como ensamblador. Este nuevo lenguaje consistía en

utilizar mnemotécnicos para escribir las instrucciones, lo cual

facilitaba el trabajo del programador.

Las ventajas están en que sus instrucciones eran expresadas en un

lenguaje cercano al que el humano puede entender. Sin embargo, la

tarea de programar sigue teniendo cierto grado de complejidad

debido a que aún es un lenguaje más cercano al que pueden

entender las máquinas que de los humanos. En estos casos el

programador debía conocer las características de la computadora

con la que iba a realizar su trabajo y por tanto había que hacer ciertos

trabajos que dependían de la máquina como: ubicar los registros de

memoria tal y como se lo hacía con el lenguaje máquina.

Para poder ejecutar un programa escrito en lenguaje ensamblador

primero era necesario realizar un proceso de traducción al lenguaje

máquina que, como ya se lo ha dicho es el único lenguaje que

entienden las computadoras. Este procedimiento se lo realiza con la

ayuda de un programa traductor llamado “ensamblador”, igual al

lenguaje con el que se está trabajando. Este programa lo que hace

es traducir el código fuente escrito en lenguaje ensamblador a

lenguaje máquina, convirtiendo una expresión en su equivalente en

lenguaje máquina.

El código escrito directamente en lenguaje ensamblador se denomina

“código fuente” mientras que el programa traducido toma el nombre

de “código objeto”, el cual será ejecutado por la computadora.

Lenguaje de alto nivel

Esta nueva forma de programar fue muy innovadora. Aquí las

instrucciones ya eran más fáciles de manejar por el cerebro humano.

Estas instrucciones que por lo general eran palabras en inglés,

describían los procedimientos que deben ejecutar las computadoras.

Una de las ventajas de esta nueva etapa de programación fue que

los programas escritos ya no dependían del hardware de cada

máquina. Los programas podían ya ejecutarse en cualquier

computadora con muy pocas o incluso ninguna modificación a su

Page 7: Evolución y clasificación de los lenguajes de programación

7

código fuente. Los programas en esta etapa ya se caracterizaban por

ser portables.

Una de las desventajas de este tipo de programación era de que

como los programas eran más claros para el lenguaje humano que el

de las máquinas su ejecución era más lenta por el motivo de que no

se aprovechaban completamente los recursos de la computadora.

Además estos programas pesaban mucho más que los programas

escritos en lenguaje máquina y ensamblador por lo que al momento

de su ejecución consumían gran cantidad de memoria.

Para poder ejecutar un lenguaje de alto nivel era necesario pasar por

un procedimiento de traducción.

El programa que se utiliza para traducir este tipo de lenguajes es

conocido como compilador y es el encargado de traducir un lenguaje

de alto nivel a un lenguaje de bajo nivel.

En la actualidad existen muchos lenguajes de programación de alto

nivel y para cada uno de ellos existe un compilador diferente.

Page 8: Evolución y clasificación de los lenguajes de programación

8

Según los niveles de programación

Existen dos tipos de niveles por los que ha pasado la programación.

Bajo nivel

Alto nivel

Bajo nivel

Los lenguajes de bajo nivel son los que se encuentran un paso más

adelante al lenguaje máquina y brinda sus beneficios a la hora de

programar aunque con ciertos límites como la portabilidad.

El lenguaje ensamblador es clasificado como un lenguaje de bajo

nivel pues es más cercano al lenguaje máquina y cumple

características similares.

Alto nivel

Desde la aparición de FORTRAN, el primer lenguaje de

programación de alto nivel se han venido una serie de cambios en

cuanto a la programación.

Como ya sabemos la programación utilizando los lenguajes de alto

nivel es mucho más fácil que con los lenguajes que se utilizaban

antes (lenguaje máquina y ensamblador) y además de ello se han ido

incorporando paradigmas que facilitan aún más este trabajo.

Actualmente existen muchos lenguajes de alto nivel los cuales

presentaremos a continuación. Entre los más destacados están:

FORTRAN

Java

Ada-95

Visual Basic.NET

Euclid

Lisp

Borland Delphi

Pascal

COBOL

PHP

PROLOG

Phyton

SmallTalk

Matlab

Page 9: Evolución y clasificación de los lenguajes de programación

9

Eiffel

Perl

Power Builder

Modula

BASIC

SQL

ALGOL

C

C++

C#

Entre otros.

Page 10: Evolución y clasificación de los lenguajes de programación

10

Según su paradigma de programación

Muchos lenguajes de programación de alto nivel utilizan un

paradigma de programación para un mejor desarrollo de software.

La siguiente lista muestra los paradigmas de programación más

utilizados:

1. Programación Orientada a Objetos

2. Programación Estructurada

3. Programación Modular

4. Programación Dinámica

5. Programación Imperativa

6. Programación Declarativa

6.1. Programación Lógica

6.2. Programación Funcional

7. Programación Orientada a Aspectos

1. Programación Orientada a Objetos

La programación Orientada a Objetos es un paradigma de

programación muy utilizado en la actualidad y es debido a que

permite una representación de las entidades del mundo real a algo

equivalente en lenguaje de programación denominado “objeto”.

SmallTalk

Java

Lisp

Simula

PHP

Ada

C++

2. Programación Estructurada

La programación estructurada consiste en el desarrollo de software

utilizando subrutinas y tres estructuras de control que son:

1. Secuencial

2. Selectiva

3. Repetición

Page 11: Evolución y clasificación de los lenguajes de programación

11

Algunos de los lenguajes que permiten aplicar la programación

estructurada son los siguientes:

Java

ALGOL

Pascal

PL/1

Ada

3. Programación Modular

La programación modular es considerada como la evolución de la

programación estructurada y consiste en desarrollar software

dividiendo el problema en problemas más pequeños los cuales

pasarán a ser codificados como módulos independientes. Esto hace

que los programas sean mucho más legibles y por lo tanto fáciles de

manejar.

Algunos de los lenguajes de programación que permiten esto son:

Java

Perl

Ruby

Modula

5. Programación imperativa

Los lenguajes de programación imperativos son…

COBOL

C

Ada

BASIC

Pascal

FORTRAN

D

Perl

PHP

Lua

Java

Page 12: Evolución y clasificación de los lenguajes de programación

12

Phyton

Go

6. Programación Declarativa

La programación Declarativa se divide en:

Programación Lógica

Programación Funcional

Programación con restricciones

Programas DSL

6.1. Programación Lógica

La Programación Lógica es un paradigma de programación enfocado

en la parte lógica de los programas y gira en torno al concepto de

predicado.

PROLOG

6.2. Programación Funcional

Basado en el empleo de funciones aritméticas que no manejan datos

propenso a mutaciones.

Los programas en esta categoría son:

FORTH

Scheme

Haskell

Miranda

Rust

Erlang

Objective Caml

Perl

JavaScript

Java

Phyton

Entre otros

Page 13: Evolución y clasificación de los lenguajes de programación

13

7. Programación Orientada a Aspectos

La programación Orientada a Aspectos es una extensión de la

programación Orientada a Objetos, en otras palabras, es un

complemento de esta misma.

Tiene un enfoque estructurado: que son los procedimientos o

también conocidos como acciones.

Además tiene un enfoque orientado a objetos: que son los datos que

se encuentran encapsulados en una determinada clase.

Un aspecto es definido como una unidad modular que vendría a ser

la base de la programación orientada a aspectos y que se disemina

por la estructura de otras unidades funcionales.

Todo aspecto tiene un propósito definido, este es el trabajo que ellos

deben de hacer. El trabajo del cual está encargado un aspecto es

denominado “advice”.

El programa orientado a aspectos está formado por tres bloques

compactos.

1. Funcionabilidad básica

2. Sincronización

3. Distribución

En este caso la sincronización vendría a ser el aspecto 1 mientras

que la distribución, el aspecto 2.

Una de las ventajas de este nuevo paradigma de programación es

que permite un diseño sistemático además de la reutilización de

software.

Una desventaja es que existen conceptos que no pueden

encapsularse dentro de una función debido a que atraviesan todo el

sistema o varias partes de él, como lo son: la sincronización, perfiles

de seguridad o redes, manejo de errores, manejo de memoria, etc

Los lenguajes de programación que soportan este paradigma son:

AspectJ

Page 14: Evolución y clasificación de los lenguajes de programación

14

Según las generaciones de las computadoras

Esta clasificación se la ha realizado de acuerdo a la evolución que

han tenido las computadoras y los lenguajes de programación que se

utilizaban para realizar el proceso de programación.

Las generaciones de las computadoras se dividen en:

1. Primera Generación

2. Segunda Generación

3. Tercera Generación

4. Cuarta Generación

5. Quinta Generación

1. Primera Generación

Lenguaje máquina

Lenguaje ensamblador

2. Segunda Generación

Lenguajes de programación de alto nivel. Paradigma de

programación imperativo.

FORTRAN

COBOL

3. Tercera Generación

Por lo general son los lenguajes de programación de alto nivel más

utilizados y que utilizan el paradigma de programación imperativo.

ALGOL

PL/1

Pascal

Modula

4. Cuarta Generación

Son los lenguajes de programación más utilizados en aplicaciones de

gestión (administrar) y el manejo de bases de datos.

SQL

NATURAL

Page 15: Evolución y clasificación de los lenguajes de programación

15

5. Quinta Generación

Estos lenguajes de programación son aplicados en el manejo de la

inteligencia artificial.

Lisp

PROLOG

OPS5

Page 16: Evolución y clasificación de los lenguajes de programación

16

Según su uso

La siguiente clasificación es de acuerdo al uso que se hace de los

lenguajes de programación de alto nivel en las diferentes áreas de

trabajo.

Cálculo Numérico

FORTRAN

R

Matlab

Mathematicas

APL

ALGOL

Empresariales

COBOL

Natural

SQL

RPG

BASE DE DATOS

SQL

CLIPPER

ACCESS

Delphi

Dbase

PÁGINAS DE INTERNET

Lingo

Java

HTML

JavaScript

PHP

ASP

ASP.NET

JSP

Phyton

Ruby

Entre otros

Page 17: Evolución y clasificación de los lenguajes de programación

17

SISTEMAS

C

C++

Ada

Ensamblador

DESARROLLO DE APLICACIONES PARA DISPOSITIVOS

MÓVILES (celulares):

App Inventor

Java

Live Code

JavaScript

Objetive C

Phyton

Ruby

Basic 4 Android

HTML 5

Lua

APLICACIONES PARA ESCRITORIO

INTELIGENCIA ARTIFICIAL

Lisp

PROLOG

OPS5

Page 18: Evolución y clasificación de los lenguajes de programación

18

Según su traducción

La clasificación según su traducción se divide en:

1. Lenguajes compilados

2. Lenguajes interpretados

1. Lenguajes compilados

Los lenguajes compilados son aquellos que necesitan un proceso de

traducción previo a la ejecución del programa escrito en un

determinado lenguaje.

Este proceso por lo general traduce un lenguaje de alto nivel a uno

de bajo nivel para que así la máquina pueda entender dichas

instrucciones y poderlas ejecutar sin problemas.

Algunos de los lenguajes que necesitan ser compilados para su

ejecución:

Pascal

FORTRAN

COBOL

FLOWMATIC

C

C++

Delphi

Eiffel

D

FORTH

Haskell

Go

BASIC

Java(compilado a bytecode)

Entre otros

2. Lenguajes interpretados

Los lenguajes interpretes por lo general son traductores de un

lenguaje de alto nivel a uno de bajo nivel y luego de su respectiva

traducción son ejecutados, tal es el caso del lenguaje Java el cual

luego de ser compilado a un lenguaje intermedio, conocido como

bytecode necesita de su máquina virtual para que ese bytecode sea

Page 19: Evolución y clasificación de los lenguajes de programación

19

traducido línea a línea según se vaya ejecutando el programa en

tiempo real.

Algunos de los lenguajes interpretados son:

BASIC

Logo

Java

SHORT CODE

Phyton

APL

J

ECMAScript

JavaScript

Matlab

FORTH

Perl

PHP

PostScript

Ruby

REXX

Lisp

Entre otros