You are on page 1of 10

Programacin lgica y

funcional

Lenguajes de programacin
03/09/2015

LENGUAJES DE PROGRAMACIN

Un lenguajes de programacin Es un Lenguaje artificial utilizado para desarrollar


programas informticos. Es un conjunto de reglas, notaciones, smbolos y/o
caracteres que permiten a un programador poder expresar el procesamiento de
datos y sus estructuras en la computadora.
Evolucin
Durante varias dcadas, los programadores han tenido que realizar su trabajo
usando un lenguaje muy particular conocido como lenguaje mquina 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 tena 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 mquina que no sea en la
que se escribi dicho programa debido a que cada mquina dependa de su
hardware para funcionar y por tanto ejecutar tales programas. Es por esto que al
cabo de unos cuantos aos ms, se desarroll un lenguaje conocido como
ensamblador o tambin llamado lenguaje de nivel medio, el cual era mucho ms
fcil de manejar que el lenguaje mquina, evitando as tales errores a la hora de
programar.
Tiempo despus surgen lo que se conoce como lenguajes de alto nivel que fue una
innovacin en la programacin puesto que su sintaxis era bastante similar a la de
los humanos.
Todo este proceso de evolucin hizo que los programas escritos sean mucho ms
legibles y fciles de modificar.
Ahora en este punto del tiempo han surgido los paradigmas de programacin que
son complementos elementales para los programadores. El paradigma de
programacin ms utilizado en la actualidad es el Orientado a Objetos.
Algunos de los lenguajes de programacin de alto nivel se enfocan en un rea
especfica, por ejemplo tenemos los empresariales, los de inteligencia artificial, los
que crean aplicaciones para mviles, etc.
Cada uno de estos lenguajes de alto nivel puede ser compilado o interpretado.

Los lenguajes de programacin han sufrido una serie de cambios durante


su proceso de evolucin.

En la actualidad los lenguajes de programacin se encuentran clasificados de


muchas maneras:
Segn su nivel de abstraccin
Lenguaje mquina
Lenguaje ensamblador
Lenguaje de alto nivel
Lenguaje mquina
El primer lenguaje que se emple para programar fue el lenguaje mquina, el cual,
como sabemos utilizaba el lenguaje binario para escribir las instrucciones que la
computadora deba 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 comn en el lenguaje humano y su comprensin requera tiempo. Adems,
este tipo de programacin dependa bastante del hardware de la mquina con la
que se est trabajando, por ejemplo un programa escrito en una mquina de cierta
marca y modelo no poda ser ejecutado en otra mquina de diferentes
caractersticas.

Lenguaje ensamblador

Luego de haber pasado por muchos inconvenientes debido a la programacin


utilizando el lenguaje mquina surge un lenguaje conocido como ensamblador.
Este nuevo lenguaje consista en utilizar mnemotcnicos para escribir las
instrucciones, lo cual facilitaba el trabajo del programador.
Las ventajas estn 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 an es un lenguaje ms
cercano al que pueden entender las mquinas que de los humanos. En estos casos
el programador deba conocer las caractersticas de la computadora con la que iba
a realizar su trabajo y por tanto haba que hacer ciertos trabajos que dependan de
la mquina como: ubicar los registros de memoria tal y como se lo haca con el
lenguaje mquina.

El cdigo escrito directamente en lenguaje ensamblador se denomina cdigo


fuente mientras que el programa traducido toma el nombre de cdigo 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 ms fciles de manejar por el cerebro humano. Estas instrucciones que por lo
general eran palabras en ingls, describan los procedimientos que deben ejecutar
las computadoras.
Una de las ventajas de esta nueva etapa de programacin fue que los programas
escritos ya no dependan del hardware de cada mquina. Los programas podan ya
ejecutarse en cualquier computadora con muy pocas o incluso ninguna
modificacin a su cdigo fuente. Los programas en esta etapa ya se caracterizaban
por ser portables.
Una de las desventajas de este tipo de programacin era de que como los
programas eran ms claros para el lenguaje humano que el de las mquinas su
ejecucin era ms lenta por el motivo de que no se aprovechaban completamente
los recursos de la computadora.

Existen dos tipos de niveles por los que ha pasado la programacin

Bajo nivel
Los lenguajes de bajo nivel son los que se encuentran un paso ms adelante al
lenguaje mquina y brinda sus beneficios a la hora de programar aunque con
ciertos lmites como la portabilidad.
El lenguaje ensamblador es clasificado como un lenguaje de bajo nivel pues es
ms cercano al lenguaje mquina y cumple caractersticas similares.
Alto nivel
Desde la aparicin de FORTRAN, el primer lenguaje de programacin de alto nivel
se han venido una serie de cambios en cuanto a la programacin.
Como ya sabemos la programacin utilizando los lenguajes de alto nivel es mucho
ms fcil que con los lenguajes que se utilizaban antes (lenguaje mquina y

ensamblador) y adems de ello se han ido incorporando paradigmas que facilitan


an ms este trabajo.

PARADIGMAS DE PROGRAMACION.

El concepto de paradigma en la programacin provee (y determina) la visin y


mtodos de un programador en la construccin de un programa o subprograma.
Diferentes paradigmas resultan en diferentes estilos de programacin y en
diferentes formas de pensar la solucin de problemas.

Muchos lenguajes de programacin de alto nivel utilizan un paradigma de


programacin para un mejor desarrollo de software.
La siguiente lista muestra los paradigmas de programacin ms utilizados:
1.
2.
3.
4.
5.
6.

Programacin Orientada a Objetos


Programacin Estructurada
Programacin Modular
Programacin Dinmica
Programacin Imperativa
Programacin Declarativa
a. Programacin Lgica
b. Programacin Funcional
7. Programacin Orientada a Aspectos

Programacin Orientada a Objetos


La programacin Orientada a Objetos es un paradigma de programacin muy
utilizado en la actualidad y es debido a que permite una representacin de las
entidades del mundo real a algo equivalente en lenguaje de programacin
denominado objeto.

SmallTalk

Java

Lisp

PHP

Ada

C++

Programacin Estructurada

Simula

La programacin estructurada consiste en el desarrollo de software utilizando


subrutinas y tres estructuras de control que son:
1. Secuencial
2. Selectiva
3. Repeticin
Algunos de los lenguajes que permiten aplicar la programacin estructurada son
los siguientes:

Java

ALGOL

Pascal

PL/1

Ada

Programacin Modular
La programacin modular es considerada como la evolucin de la programacin
estructurada y consiste en desarrollar software dividiendo el problema en
problemas ms pequeos los cuales pasarn a ser codificados como mdulos
independientes. Esto hace que los programas sean mucho ms legibles y por lo
tanto fciles de manejar.
Algunos de los lenguajes de programacin que permiten esto son:

Java

Perl

Ruby

Modula

PROGRAMACIN IMPERATIVA
Son los lenguajes orientados a sentencias. La unidad de trabajo es la sentencia.
Los efectos de las sentencias individuales se combinan en un programa para
obtener los resultados deseados. Todos estos lenguajes
se basan
fundamentalmente en la arquitectura tradicional de la computadora. Esto se puede
ver en tres caractersticas principales:
variables: un elemento que se utilizara en el desarrollo del programa que
ocupa un espacio de memoria que se le designa mediante su tipo de dato a
trabajar.

operacin de asignacin: (Estrechamente ligado a la arquitectura de la


memoria se encuentra la idea de que el valor calculado debe ser
almacenado).
repeticin: (un programa en un lenguaje imperativo, normalmente realiza su
tarea ejecutando repetidamente una secuencia de pasos elementales).

La programacin en el paradigma imperativo consiste en determinar qu datos son


requeridos para el clculo, asociar a esos datos unas direcciones de memoria, y
efectuar paso a paso una secuencia de transformaciones en los datos
almacenados, de forma que el estado final represente el resultado correcto.
Los lenguajes de programacin imperativos son
COBOL

Ada

BASIC

Pascal

FORTRAN

Perl

PHP

Lua

java

Programacin procedural

Uso de procedimientos y subrutinas


Los cambios de estado se localizan en estos procedimientos
Los procedimientos especifican parmetros y valores devueltos (un primer
paso hacia la abstraccin y los modelos funcionales y declarativos)
Lenguajes: ALGOL

Programacin estructurada
Artculo a finales de los 60 de Edsger W. Dijkstra: GOTO statement
considered harmful en el que se arremete contra la sentencia GOTO de
muchos lenguajes de programacin de la poca
La programacin estructurada mantiene la programacin imperativa, pero
haciendo nfasis en la necesidad de que los programas sean correctos (debe
ser posible de comprobar formalmente los programas), modulares y
mantenibles.
Lenguajes: Pascal, ALGOL 68, Ada

Programacin Orientada a Objetos

La POO tambin utiliza la programacin imperativa, aunque extiende los


conceptos de modularidad, mantenibilidad y estado local
Se populariza a finales de los 70 y principios de los 80

Programacin Orientada a Aspectos


La programacin Orientada a Aspectos es una extensin de la programacin
Orientada a Objetos, en otras palabras, es un complemento de esta misma.
Tiene un enfoque estructurado: que son los procedimientos o tambin conocidos
como acciones.
Adems 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 vendra a ser la base de la
programacin orientada a aspectos y que se disemina por la estructura de otras
unidades funcionales.
Todo aspecto tiene un propsito 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 bsica
2. Sincronizacin
3. Distribucin
En este caso la sincronizacin vendra a ser el aspecto 1 mientras que la
distribucin, el aspecto 2.
Una de las ventajas de este nuevo paradigma de programacin es que permite un
diseo sistemtico adems de la reutilizacin de software.
Una desventaja es que existen conceptos que no pueden encapsularse dentro de
una funcin debido a que atraviesan todo el sistema o varias partes de l, como lo
son: la sincronizacin, perfiles de seguridad o redes, manejo de errores, manejo de
memoria, etc
Los lenguajes de programacin que soportan este paradigma son:
AspectJ

Caractersticas principales
Idea principal de la programacin imperativa: La computacin se realiza
cambiado el estado del programa por medio de sentencias que definen
pasos de ejecucin del computador
Estado del programa modificable
Sentencias de control que definen pasos de ejecucin

PROGRAMACIN DECLARATIVA
La programacin Declarativa se divide en:

Programacin Lgica
Programacin Funcional
Programacin con restricciones
Programas DSL

A la programacin imperativa se le contrapone la programacin declarativa en la


que se describe la lgica de computacin necesaria para resolver un
problema sin describir un flujo de control de ningn tipo. Efectivamente, en la
programacin declarativa no es necesario definir algoritmos puestos que se
detalla la solucin del problema en lugar de como llegar a esa solucin.
La principal diferencia entre ambos paradigmas es que en la programacin
declarativa se describe paso a paso un conjunto de instrucciones que han de
ejecutarse con la finalidad de variar el estado del programa y resolver un problema
para hallar una solucin. Es decir, se describe un algoritmo en el que se detallan
los pasos secuenciales necesarios a seguir para la resolucin de un problema.
Y en la programacin imperativa solo se describe el problema pero no los pasos
necesarios para llegar a su solucin, la cual es hallada mediante mecanismos
internos de inferencia de informacin a partir de la descripcin del problema en s.

Programacin Lgica
La Programacin Lgica es un paradigma de programacin enfocado en la parte
lgica de los programas y gira en torno al concepto de predicado.
PROLOG

Programacin Funcional
Basado en el empleo de funciones aritmticas que no manejan datos propenso a
mutaciones.
Los programas en esta categora son:
FORTH

Scheme

Rust

Erlang

JavaScript

Java

Haskell

Miranda

Objective Caml
Phyton

Perl

Entre otros

Lenguajes de representacin y consulta

Los lenguajes de representacin se refieren a aquellos que sirven como


herramientas para la construccin, representacin y diseo de documentos,
ejemplos: html y xml, mientras que los lenguajes de consulta son utilizados para
consultar en bases de datos o en sistemas de informacin, ejemplos: SQL.

You might also like