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

juanbryanc 4,171 views 19 slides May 31, 2015
Slide 1
Slide 1 of 19
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19

About This Presentation

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


Slide Content

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 d e 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.

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.

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

4


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

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.

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

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.

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

9

 Eiffel
 Perl
 Power Builder
 Modula
 BASIC
 SQL
 ALGOL
 C
 C++
 C#
 Entre otros.

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

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

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

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

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

15

5. Quinta Generación
Estos lenguajes de programación son aplicados en el manejo de la
inteligencia artificial.
 Lisp
 PROLOG
 OPS5

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

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

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

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
Tags