Lenguajes de programacion estructurados

Lenguajes de programacion estructurados

Lenguajes de programacion estructurados

Programación funcional…

La programación no estructurada es el paradigma de programación históricamente más antiguo capaz de crear algoritmos Turing-completos[cita requerida]. A menudo se contrasta con el paradigma de la programación estructurada, en particular con el uso del flujo de control no estructurado mediante sentencias goto o equivalentes. La distinción se acentuó especialmente con la publicación de la influyente carta abierta «Go To Statement Considered Harmful» en 1968 por el informático holandés Edsger W. Dijkstra, que acuñó el término «programación estructurada»[1].
Existen lenguajes de programación de alto y bajo nivel que utilizan la programación no estructurada. Algunos lenguajes comúnmente citados como no estructurados son JOSS, FOCAL, TELCOMP, los lenguajes ensambladores, los archivos por lotes de MS-DOS y las primeras versiones de BASIC, Fortran, COBOL y MUMPS.
Un programa en un lenguaje no estructurado utiliza saltos no estructurados a etiquetas o direcciones de instrucciones. Las líneas suelen estar numeradas o pueden tener etiquetas: esto permite que el flujo de ejecución salte a cualquier línea del programa. Esto contrasta con la programación estructurada, que utiliza construcciones estructuradas de selección (if/then/else) y repetición (while y for).

Comparación de la multiplicidad de par…

Este artículo incluye una lista de referencias generales, pero permanece en gran medida sin verificar porque carece de suficientes citas en línea correspondientes. Por favor, ayude a mejorar este artículo introduciendo citas más precisas. (Marzo de 2015) (Aprende cómo y cuándo eliminar este mensaje de la plantilla)
La programación estructurada es un paradigma de programación cuyo objetivo es mejorar la claridad, la calidad y el tiempo de desarrollo de un programa informático mediante el uso extensivo de las construcciones de flujo de control estructurado de selección (if/then/else) y repetición (while y for), estructuras de bloques y subrutinas.
Surgió a finales de los años 50 con la aparición de los lenguajes de programación ALGOL 58 y ALGOL 60,[1] este último con soporte para estructuras de bloques. Entre los factores que contribuyeron a su popularidad y aceptación generalizada, primero en el mundo académico y más tarde entre los profesionales, se encuentran el descubrimiento de lo que ahora se conoce como el teorema del programa estructurado en 1966,[2] y la publicación de la influyente carta abierta «Go To Statement Considered Harmful» en 1968 por el informático holandés Edsger W. Dijkstra, que acuñó el término «programación estructurada»[3].

Comentarios

¿Qué son los lenguajes de programación en general? No son más que un conjunto de reglas semánticas y sintácticas como los lenguajes normales. La única diferencia es que describen cómo construir instrucciones adecuadas que produzcan una aplicación correcta. Son instrucciones tanto para el usuario como para el ordenador. El lenguaje especifica cómo debe entender el ordenador ciertas instrucciones.
Como hay muchos lenguajes, hay muchas técnicas de programación. ¿Cómo agruparlas en categorías? Seguro que te has encontrado con el término «paradigma de programación». ¿Qué significa? En pocas palabras, es un estilo de programación. Más concretamente, es un conjunto de técnicas utilizadas para crear un programa y la definición de cómo lo ejecuta un ordenador. Los paradigmas son la forma de clasificar los lenguajes de programación en función del tipo de técnicas que admiten. Los distintos lenguajes pueden basarse en un único paradigma o soportar muchos. Veamos cuáles son los 5 paradigmas más populares.
Es el paradigma que corresponde a las técnicas de programación más antiguas. También es el más básico. Según la filosofía de este paradigma, el código es sólo una serie de instrucciones que cambian el estado de la máquina. Por ejemplo, al definir la variable se cambia el estado de los registros, así como de la memoria y, por tanto, el estado de todo el ordenador. La máquina sólo ejecuta órdenes, nada más. Esencialmente, usted describe al ordenador lo que debe hacer, no lo que quiere conseguir. Este paradigma está estrictamente relacionado con la arquitectura de los ordenadores von Neumann. La mayoría de los lenguajes de programación habituales son imperativos.

Programación imperativa…

GoTo (goto, GOTO, GO TO u otras combinaciones de mayúsculas y minúsculas, según el lenguaje de programación) es una sentencia que se encuentra en muchos lenguajes de programación informática. Realiza una transferencia de control en un solo sentido a otra línea de código; en cambio, una llamada a una función normalmente devuelve el control. Las ubicaciones a las que se salta suelen identificarse mediante etiquetas, aunque algunos lenguajes utilizan números de línea. A nivel de código máquina, un goto es una forma de sentencia de bifurcación o salto, en algunos casos combinada con un ajuste de pila. Muchos lenguajes soportan la sentencia goto, y otros no (véase § soporte del lenguaje).
El teorema del programa estructurado demostró que la sentencia goto no es necesaria para escribir programas que puedan expresarse como diagramas de flujo; alguna combinación de las tres construcciones de programación de secuencia, selección/elección y repetición/iteración son suficientes para cualquier cálculo que pueda realizar una máquina de Turing, con la advertencia de que puede ser necesario introducir duplicación de código y variables adicionales[1].
En el pasado hubo un considerable debate en el mundo académico y en la industria sobre los méritos del uso de las sentencias goto. El uso de goto era antiguamente común, pero desde la llegada de la programación estructurada en los años 60 y 70 su uso ha disminuido significativamente. La principal crítica es que el código que utiliza las sentencias goto es más difícil de entender que las construcciones alternativas. Goto sigue utilizándose en ciertos patrones de uso comunes, pero generalmente se utilizan alternativas si están disponibles. Los debates sobre sus usos (más limitados) continúan en los círculos académicos y de la industria del software.