evolución y clasificación de los lenguajes de programación
Post on 17-Aug-2015
201 Views
Preview:
TRANSCRIPT
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.
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
top related