Diferencia entre revisiones de «Lenguaje de programación»

Contenido eliminado Contenido añadido
SeroBOT (discusión · contribs.)
m Revertidos los cambios de 213.99.85.101 (disc.) a la última edición de 190.64.49.26
Etiqueta: Reversión
m Savh trasladó la página Lenguaje de programación a Paradigma de programación sin dejar una redirección: Fusionando Paradigma de programación en Lenguaje de programación.
Línea 39:
== Clasificación de los lenguajes de programación ==
 
Los lenguajes de programación han sido históricamente clasificados atendiendo a distintos criterios:
* '''Clasificación histórica'''
: A medida que surgian nuevos lenguajes que permitían nuevos estilos de programación más expresiva, se distinguieron dichos estilos en una serie de '''generaciones''', cada una representando lenguajes de programación surgidos en una época similar y con características genéricas comunes.
* '''Lenguajes de alto y de bajo nivel'''
: Los lenguajes de programación se suelen clasificar dentro de dos amplias categorías que se refieren a su "nivel de abstracción", es decir, en cuanto a lo específico o general que es respecto a la [[arquitectura de computación]] inherente al sistema que se está utilizando.
* '''Clasificación por paradigmas'''
: Los paradigmas de programación distinguen distintos modelos de cómputo y de estilos de estructurar y organizar las tareas que debe realizar un programa. Un lenguaje de programación puede ofrecer soporte a uno o varios paradigmas de programación, total o parcialmente.
* '''Clasificación por propósito'''
: Se distinguen los lenguajes de programación de '''propósito general''' de aquellos de '''propósito específico'''.
 
En algunas ocasiones los lenguajes de programación son también clasificados en '''familias''' que comparten ciertas características comunes como el estilo general de la [[Sintaxis (informática)|sintaxis]] que emplean. Habitualmente estas características suelen ser heredadas de lenguajes de programación anteriores que sirvieron de inspiración a los creadores de dicho lenguaje.
 
=== Clasificación histórica o por generaciones ===
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.
 
Línea 81 ⟶ 94:
* '''Programación declarativa''': está basada en describir el problema declarando propiedades y reglas que deben cumplirse, en lugar de instrucciones. Hay lenguajes para la [[programación funcional]], la [[programación lógica]], o la combinación lógico-funcional. La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla (tan solo 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]]. 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>{{cita web |url=http://ademirar.wordpress.com/2010/08/28/programacion-funcional-para-el-resto-de-nosotros/ |título=Copia archivada |fechaacceso=1 de mayo de 2011 |urlarchivo=https://web.archive.org/web/20110314190020/http://ademirar.wordpress.com/2010/08/28/programacion-funcional-para-el-resto-de-nosotros/ |fechaarchivo=14 de marzo de 2011 }}</ref> Unos de los primeros lenguajes funcionales fueron [[Lisp]] y [[Prolog]].
 
* [[Programación funcional]]: basada en la definición los predicados y es de corte más matemático, está representado por [[Scheme]] (una variante de [[Lisp]]) o [[Haskell]]. [[Python]] también representa este paradigma. <ref name=":0">{{Cita web|url=https://docs.python.org/3.5/howto/functional.html?highlight=paradigm|título=Functional Programming HOWTO — Python 3.5.3rc1 documentation|fechaacceso=13 de enero de 2017|sitioweb=docs.python.org}}</ref>
 
* [[Programación lógica]]: basado en la definición de relaciones lógicas, está representado por [[Prolog]].
Línea 303 ⟶ 316:
* [[Programación modular]]
* [[Programación funcional]]
* [[Programación estructurada]]
* [[Programación modular]]
* [[Programación orientada a aspectos]]
* [[Programación con restricciones]]