Diferencia entre revisiones de «Lenguaje de programación»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
m ¿Distinción entr estilo y tipo?
Sin resumen de edición
Línea 1: Línea 1:
Los equipos de [[Computadora electrónica|ordenador]] (el [[hardware]]) han pasado por cuatro generaciones, de las que las tres primeras (ordenadores con [[válvula termoiónica|válvulas]], [[transistor]]es y [[circuito integrado|circuitos integrados]]) están muy claras, la cuarta ([[circuito integrado|circuitos integrados]] a gran escala) es más discutible.
La '''programación declarativa''', en contraposición a la [[programación imperativa]], es un [[paradigma de programación]] que está basado en el desarrollo de [[software|programas]] especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solución. La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla (tan sólo se le indica a la [[computadora]] qué es lo que se desea obtener o qué es lo que se está buscando). No existen asignaciones destructivas, y las variables son utilizadas con [[transparencia referencial]].


Algo parecido ha ocurrido con la [[programación]] de los ordenadores (el [[software]]), que se realiza en [[lenguaje de programación|lenguajes]] que suelen clasificarse en cinco generaciones, de las que las tres primeras son evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas generaciones no coincidieron exactamente en el tiempo con las de [[hardware]], pero sí de forma aproximada, y son las siguientes:
== Diferencia entre imperativo y declarativo ==
En la [[programación imperativa]] se describe paso a paso un conjunto de instrucciones que deben ejecutarse para variar el estado del programa y hallar la solución, es decir, un [[algoritmo]] en el que se '''describen los pasos necesarios para solucionar el problema'''.


*'''[[Lenguaje de Primera Generación|Primera generación]]''': Los primeros ordenadores se programaban directamente en [[código de máquina]] (basado en sistema binario), que puede representarse mediante secuencias de ceros y unos [[sistema binario]]. Cada modelo de ordenador tiene su propio código, por esa razón se llama [[lenguaje de máquina]].
En la programación declarativa las sentencias que se utilizan lo que hacen es '''describir el problema''' que se quiere solucionar; se programa diciendo lo que se quiere resolver a nivel de usuario, pero no las instrucciones necesarias para solucionarlo. Esto último se realizará mediante mecanismos internos de [[inferencia]] de información a partir de la descripción realizada.


*'''[[Lenguaje de Segunda Generación|Segunda generación]]''': Los [[lenguaje simbólico|lenguajes simbólicos]], asimismo propios de la máquina, simplifican la escritura de las instrucciones y las hacen más legibles.
== Tipos ==
Existen varios tipos de lenguajes declarativos:
* Los lenguajes lógicos, como [[Prolog]].
* Los lenguajes algebraicos, como [[Maude (lenguaje de programación)|Maude]] y [[SQL]].
* Los lenguajes funcionales, como [[Haskell]] y [[Erlang]].


*'''[[Lenguaje de Tercera Generación|Tercera generación]]''': Los [[cacahuate de alto nivel]] sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de las [[Matemáticas]].
== Ventajas ==
Se ha dicho que los lenguajes declarativos tienen la ventaja de ser razonados matemáticamente, lo que permite el uso de mecanismos matemáticos para optimizar el rendimiento de los programas.<ref>http://ademirar.wordpress.com/2010/08/28/programacion-funcional-para-el-resto-de-nosotros/</ref>


*'''[[Lenguaje de programación de cuarta generación|Cuarta generación]]''': se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la [[programación orientada a objetos]].
Son fiables, elegantes y expresivos.


Estos lenguajes tienen una estructura lo más parecido al idioma inglés, algunas características son:
== Algunos lenguajes declarativos ==
*[[ASP]] ([[Answer Set Programming]])
* [[Haskell]] ([[Programación funcional]])
* [[ML]] ([[Programación funcional]])
* [[Lisp]] ([[Programación funcional]])
* [[Prolog]] ([[Programación lógica]])
* F-Prolog (Programación lógica difusa)
* [[Curry (lenguaje de programación)|Curry]] (Programación lógico-funcional)
* [[SQL]]
* [[QML]]


- Acceso a base de datos.
== Referencias ==

<references />
- Capacidades Gráficas.

- Generación de código automáticamente.

- Puede programarse visualmente como [[Visual Basic]] (Programación Visual).

*'''[[Lenguaje de Quinta Generación|Quinta generación]]''': se llama así a veces a los lenguajes de la [[inteligencia artificial]], aunque con el fracaso del [[Quinta generación de computadoras|proyecto japonés de la quinta generación]] el nombre ha caído en desuso.


[[Categoría:Lenguajes de programación]]
[[Categoría:Lenguajes de programación]]
[[Categoría:Paradigmas de programación]]

Revisión del 18:37 6 dic 2016

Los equipos de ordenador (el hardware) han pasado por cuatro generaciones, de las que las tres primeras (ordenadores con válvulas, transistores y circuitos integrados) están muy claras, la cuarta (circuitos integrados a gran escala) es más discutible.

Algo parecido ha ocurrido con la programación de los ordenadores (el software), que se realiza en lenguajes que suelen clasificarse en cinco generaciones, de las que las tres primeras son evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas generaciones no coincidieron exactamente en el tiempo con las de hardware, pero sí de forma aproximada, y son las siguientes:

  • Cuarta generación: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a objetos.

Estos lenguajes tienen una estructura lo más parecido al idioma inglés, algunas características son:

- Acceso a base de datos.

- Capacidades Gráficas.

- Generación de código automáticamente.

- Puede programarse visualmente como Visual Basic (Programación Visual).