0% encontró este documento útil (0 votos)
57 vistas19 páginas

Programación Estructurada: Clave Histórica

https://www.merco.info/pe/ranking-merco-empresas Jwjsjsbsb

Cargado por

MATANE YT
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
57 vistas19 páginas

Programación Estructurada: Clave Histórica

https://www.merco.info/pe/ranking-merco-empresas Jwjsjsbsb

Cargado por

MATANE YT
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD PRIVADA ANTENOR ORREGO

FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA DE
COMPUTACIÓN Y SISTEMAS

Tema:

Paradigma de la programación estructurada


Asignatura:

Paradigmas de Programación
Docente:

Castañeda Saldaña, José Arturo


Integrantes:

1. Malca Delgado, Alba Solange

2024
2. Olazábal Ávila, Fernando David
3. Araujo Aguilar , Luis Fabiano
4. Gastañuadi Iturri, Efraín Judá
5. Rodriguez Toral, Jhon André
El paradigma de la programación estructurada, es uno de los pilares
fundamentales en la historia de la programación, ya que marcó un
hito en la evolución del desarrollo de software al establecer las bases
para prácticas de programación más eficientes y confiables. Surgido
en la década de 1960, este paradigma tenía como objetivo aminorar
los desafíos de las técnicas de programación anteriores, que en
muchos casos resultaba en un código desordenado, difícil de
mantener y modificar.
A lo largo de este trabajo se explorarán diversos aspectos
relacionados con este paradigma, comenzando con su definición y
evolución histórica, hasta los aportes de figuras clave como Corrado
Böhm, Giuseppe Jacopini, Edsger Dijkstra y Edward Yourdon.
Asimismo, se revisarán los primeros lenguajes de programación
basados en este paradigma, junto con los componentes esenciales
que lo definen, como los estructogramas, subrutinas y estructuras de
control. Finalmente, se examinará el concepto de bloques, su sintaxis
y su implementación en distintos lenguajes de programación.
DEFINICIÓN:
La programación estructurada es un paradigma que busca mejorar la
claridad, eficacia y tiempo de desarrollo de programas mediante el
uso de estilos de programación bien estructurados. Este enfoque
divide los programas en bloques o módulos con una única entrada y
salida, facilitando su desarrollo y mantenimiento (Madrigal, 2020).
Una ventaja principal de este paradigma es la organización del
código en secuencias lógicas lineales, evitando saltos incontrolados
como los causados por el uso excesivo de "goto". Esto mejora la
legibilidad y comprensión del código, reduciendo errores y
facilitando la detección de fallos (Madrigal, 2020).
EVOLUCIÓN:
La programación estructurada comenzó a ganar popularidad en las
décadas de 1960 y 1970 como una solución a los problemas que
presentaban los métodos de programación no estructurados. En este
período, los desarrolladores enfrentaban dificultades para mantener
y depurar programas que carecían de una estructura clara. Con la
introducción de la programación estructurada, se promovió un
enfoque más disciplinado, lo que permitió un desarrollo de software
más eficiente y menos propenso a errores (Madrigal, 2020). Este
paradigma marcó un cambio significativo, proporcionando un marco
que facilitaba la creación de programas más fáciles de entender y
mantener.
 Evolución hacia Paradigmas Multiparadigma
Con el tiempo, la programación estructurada no solo se
consolidó, sino que también se adaptó a nuevas necesidades
y enfoques. A medida que la tecnología avanzaba, surgieron
otros paradigmas, como la programación orientada a
objetos (POO) y la programación orientada a aspectos
(POA). Estos nuevos enfoques no reemplazaron a la
programación estructurada, sino que la integraron, creando
un enfoque multiparadigma. Por ejemplo, en la POO, los
principios de la programación estructurada son
fundamentales para organizar métodos dentro de las clases,
manteniendo así un código limpio y estructurado (De Giusti,
2019).
Transición a Entornos de Programación Modernos
A medida que la tecnología de la información continuó

evolucionando, la programación estructurada se adaptó a


entornos de desarrollo más complejos. Los lenguajes de
programación modernos, como Python y Java, aunque son
multiparadigma, siguen incorporando los principios de la
programación estructurada. Estos lenguajes permiten a los
desarrolladores combinar enfoques estructurados con
técnicas más avanzadas, como la orientación a objetos, lo
que ha permitido que la programación estructurada siga
siendo relevante y útil en la actualidad (Morocho, 2023).
Hoy en día, aunque existen muchos paradigmas de programación, la
programación estructurada sigue siendo un pilar fundamental en la
enseñanza de la programación. Se considera una base esencial que
prepara a los estudiantes para entender y manejar otros paradigmas
más avanzados. Además, sus principios siguen siendo aplicables en la
creación de software eficiente y mantenible, lo que demuestra que, a
pesar de los cambios y avances en la tecnología, la programación
estructurada continúa desempeñando un papel importante en el
desarrollo de software (Madrigal, 2020).
DESARROLLO HISTÓRICO:
Según Alexander (2013), la idea del paradigma de programación
surgió como una forma de clasificar y organizar diferentes estilos o
enfoques en la programación, presentando los siguientes:
1. Paradigmas Iniciales:
En los inicios de la programación, la mayoría de los
lenguajes y estilos de programación seguían un enfoque
o

imperativo. Este paradigma se basa en una secuencia de


comandos o instrucciones que cambian el estado del
programa de manera explícita. Lenguajes como
FORTRAN y COBOL, desarrollados en las décadas de
1950 y 1960, son ejemplos tempranos de este enfoque.
2. Paradigma de Programación Funcional:
La programación funcional tiene sus raíces en la lógica
matemática y el cálculo lambda, formalizado por Alonzo
o

Church en la década de 1930. Este paradigma se centra


en la evaluación de funciones matemáticas y evita el uso
de estados mutables y efectos secundarios. Lenguajes
como Lisp (1958) y Haskell (1990) son ejemplos de
lenguajes de programación funcionales.
3. Paradigma de Programación Orientada a Objetos (POO):
El paradigma orientado a objetos fue desarrollado para
manejar la complejidad de sistemas grandes y complejos.
o

Surgió a mediados de la década de 1960 con el lenguaje


Simula 67, diseñado por Ole-Johan Dahl y Kristen
Nygaard. POO se basa en la idea de "objetos" que
encapsulan datos y comportamientos, permitiendo la
modularidad y la reutilización de código (Github, 2024).
4. Paradigmas Emergentes:
Para Sebesta (2015), con el tiempo, otros paradigmas
han emergido o han sido formalizados, como la
o

programación lógica (Prolog, 1972), que se basa en la


lógica de predicados, y la programación declarativa, que
describe el "qué" en lugar del "cómo" se debe realizar
una tarea (ej., SQL para bases de datos).
Propósito del Paradigma:
El propósito de los paradigmas de programación es ofrecer
diferentes enfoques para resolver problemas. Cada paradigma trae
consigo una manera distinta de pensar sobre los problemas, lo que
puede ser más o menos adecuado dependiendo del tipo de problema
que se quiera resolver. La existencia de múltiples paradigmas refleja
la diversidad de problemas que los programadores
El primer paradigma en aparecer, primera mitad de los años 50, es el
imperativo, que se caracteriza por un nivel bajo de abstracción. Por
lo que, el código está enfocado en las instrucciones que la
computadora debe seguir, y no necesariamente en la lógica de la
funcionalidad que estamos implementando (Laboratorio, 2024).
El snippet de arriba, mostrado en la ilustración 1, es un "hello world"
escrito en Assembly (una versión moderna, pero muy parecido a lo
que hubieramos visto en los años 50). Lo único que hace este
programa es imprimir el string “Hello, world!”. El equivalente a todo
el código de arriba en JavaScript sería:

Ilustración 2: Código en lenguaje Assembly


Fuente: Laboratoria, 2024

JavaScript tiene un altísimo nivel de abstracción. Con lo cual, no


tenemos que preocuparnos de muchos detalles pues JavaScript ya
abstrae para nosotros. Ejm: manejo de memoria, instrucciones del
procesador, etc.
APORTES DE CORRADO BOHM Y GUSEPPE JACOPINI; ESDGER
DIJSKSTRA; EDWARD YOURDON
En mayo de 1996, Corrado Böhm y Giuseppe Jacopini demostraron
que un propio programa puede escribirse utilizando tan solo tres
tipos de estructuras de control: secuenciales, condicionales y
cíclicas. A esto se le conoce como teorema de la programación
estructurada (Lógica de programación, 2017).

Ilustración 3: Diagrama de Estructuras Lógicas


Fuente: Lógica de programación, 2017

Estas estructuras de control permiten modificar la secuencia de


ejecución de las instrucciones de un algoritmo y se clasifican
mediante su complejidad, tal y como se muestra en la ilustración 3.
Según el mismo Edsger Dijkstra (1989), contribuyó con “el algoritmo
de caminos mínimos”, también llamado “Algoritmo de Dijkstra”, y
haber sido el impulsor de un nuevo paradigma, “la programación
estructurada”. Era conocido por su baja opinión de la sentencia
GOTO en programación, que culminó en 1968 con su artículo “Go To
Statement Considered Harmful”, visto como un paso importante
hacia el rechazo de esta expresión y de su eficaz reemplazo por
estructuras de control como el bucle while.
Uno de los mayores expertos y defensores de los métodos
estructurados es Edward Yourdon, tanto que las expresiones
“Yourdon” y “métodos de análisis y diseño estructurado” son
sinónimos. Constantine y Yourdon definieron nuevos modelos de
control del flujo de datos implementando lo que llamaron
transacciones que en realidad son un patrón de diseño de
manejadores de eventos (Campus O, 2011).

Ilustración 4: Diagrama
Fuente: Campus O, 2011

En la ilustración 4 se presentan los siguientes procesos:


Un flujo de datos invoca eventos, lo que Constantine y Yourdon
llamaron “transacciones“.

Un disparador los envía a manejadores especializados, se llama


“centro de transacciones“.

Un conjunto de manejadores que se encargan de realizar


operaciones sobre el flujo de datos (Campus O, 2011).

PRIMEROS LENGUAJES BASADOS EN ESTE PROGRAMA:


La forma en la que organizamos el código ha influido en la evolución
de los lenguajes de programación a lo largo del tiempo. Estos
lenguajes, además de cambiar la forma en que pensamos sobre la
organización del codigo, también establecieron ciertas reglas que
aún usamos hoy en día. Los primeros lenguajes que adoptaron el
paradigma de la programación estructurada incluyen ALGOL, Pascal
y C. A estos lenguajes se les puede sumar FORTRAN y COBOL, que,
aunque más antiguos, también contribuyeron al desarrollo de buenas
prácticas en la programación.

ALGOL (Algorithmic Language): fue uno de los primeros


lenguajes en implementar estructuras de control bien

definidas. Este lenguaje influyó significativamente en el


desarrollo de muchos lenguajes posteriores y estableció una
base sólida para la programación estructurada (Backus et al.,
1958; Corvo, 2020). Lanzado en 1958, ALGOL fue creado para
mostrar algoritmos de una manera clara y rápida usando
bloques de código y teniendo un plan claro, que coincidía con
la idea de programación estructurada (Huertos, 2019;
Maldonado, 2024). Este lenguaje agregó estructuras de control
básicas como secuencia, decisión (if, else) y repetición (for,
while) que luego se volvieron comunes en otros lenguajes
(Corvo, 2020; Wirth, 1971). Finalmente podemos decir que
ALGOL también utiliza capas que le permiten agrupar código,
lo que facilita su administración y comprensión (Kernighan &
Ritchie, 1988; Wirth, 1971).
Pascal: fue diseñado específicamente para enseñar
programación estructurada. Introdujo conceptos claros y

estructurados que facilitaron la enseñanza y la práctica de este


paradigma (Wirth, 1971). Se utilizó ampliamente en la
educación y en el desarrollo de software en las décadas de
1970 y 1980. Es un lenguaje de programación que ayuda a
enseñar cómo escribir código estructurado y crear software de
sistema. Pascal le permite organizar su código configurando
diferentes tipos de datos, acciones y pasos ayudando a crear
programas modulares y legibles (Corvo, 2020; Maldonado,
2024). Las subrutinas le permiten dividir su código en partes
más pequeñas y manejables, lo que facilita su manejo y
actualización. Estructuras de control como if-then-else, case,
for, while y repeat-until que ayudan a gestionar el flujo del
programa (Wirth, 1971; Corvo, 2020).
C: El lenguaje C se convirtió en un estándar para la
programación estructurada, su diseño simple y eficiente

permitió su adopción en una amplia variedad de aplicaciones,


desde sistemas operativos hasta software de aplicación. C
sigue siendo uno de los lenguajes más influyentes y utilizados
en la actualidad (Kernighan & Ritchie, 1988; Huertos, 2019).
El lenguaje C fue ideado por Dennis Ritchie en Bell Labs en
1972 y es muy importante en el mundo de la codificación
organizada, también podemos decir que facilita la escritura de
código dividiéndolo en partes pequeñas, para que pueda
utilizar fragmentos una y otra vez. Toma decisiones con if,
switch, for, while y do- while. C es una opción popular para
crear sistemas operativos y softwares porque es muy bueno
manejando la memoria y es bastante rápido (Kernighan &
Ritchie, 1988; Corvo, 2020; Maldonado, 2024).
FORTRAN (FORmula TRANslation): fue desarrollado por John
Backus y su equipo en IBM en el año de 1957 (Fortran-

[Link], s.f.). Aunque FORTRAN fue inicialmente diseñado


para cálculos científicos y de ingeniería, sus versiones
posteriores incorporaron características de programación
estructurada, por ejemplo, introdujo estructuras de control
más claras y manejables. Este lenguaje está diseñado para
aplicaciones computacionalmente intensivas en ciencia e
ingeniería y es conocido por su capacidad para ejecutar
cálculos numéricos de manera eficiente. También permite al
compilador detectar muchos errores de programación
temprano, lo que también contribuye a la generación de código
binario eficiente. A pesar de ser un lenguaje poderoso, es
relativamente fácil de aprender y usar, especialmente para
expresar operaciones matemáticas y aritméticas sobre grandes
arreglos. Desde su creación en 1957, FORTRAN ha
evolucionado significativamente, incorporando características
de programación estructurada, modular, genérica, orientada a
objetos y concurrente ([Link], s.f.; Huertos, 2019).
COBOL (COmmon Business-Oriented Language): Desde su
creación en 1959, COBOL ha sido revisado y modernizado

varias veces, incorporando características de programación


estructurada y orientada a objetos en sus versiones más
recientes (IBM, 2024). COBOL fue diseñado para aplicaciones de
negocios. Aunque no fue inicialmente estructurado, las
versiones posteriores adoptaron principios de programación
estructurada, mejorando la claridad y mantenibilidad del
código. COBOL se asemeja al inglés y utiliza palabras sencillas
para codificar instrucciones, esto facilita la comprensión y el
mantenimiento del código. COBOL puede manejar grandes
cantidades de datos y es compatible con sistemas mainframe y
diversos sistemas operativos siendo uno de los primeros
lenguajes normalizados por ANSI e ISO. A lo largo de los años,
ha tenido varias revisiones y modernizaciones, como COBOL-
61, COBOL-68, COBOL-74 y COBOL-85. La versión más
reciente, COBOL 2002, introduce características orientadas a
objetos (IBM, 2024; Huertos, 2019).

COMPONENTES:
El paradigma de programación estructura posee diferentes
componentes, según Morales (2021):
Selectividad: Es la posibilidad de elegir entre dos
instrucciones, donde la decisión se toma en base a la

evaluación de una expresión a la que llamamos condición ( ver


ilustración 5).
Secuencialidad: Se refiere al orden en la que las instrucciones
de un programa son ejecutadas, tal y como se tienen en el

programa.
Los elementos 1, 2 y 3 pueden ser instrucciones o bloques que
indican que independientemente de su complejidad o tamaño,
su ejecución es realizada en el orden indicado (ver ilustración
5).
Iteración: Es una estructura que se utiliza para repetir alguna
instrucción o grupo de instrucciones siempre que se cumpla

una condición.
Si se cumple la condición 1, se avanza al punto 2 y se llega al
punto 3 donde se encuentra una nueva condición 3 que si se
cumple se regresa a la condición 1 y si no se cumple, se
continúa al punto 4 (ver ilustración 5).

ESTRUCTOGRAMAS: Ilustración 5: Ejemplo de selección

Llamados también diagramas de Chapin o Nassi-Shneiderman (N-S),


Fuente: Morales, N. M. R. ; 2021

son representaciones gráficas que muestran el diseño de un


programa estructurado.
Fue desarrollado en 1972 por Isaac Nassi y Ben Shneiderman. Este
diagrama también es conocido como estructograma, ya que sirve
para representar la estructura de los programas. Combina la
descripción textual del pseudocódigo con la representación gráfica
del diagrama de flujo. Ecured (2014)
Está basado en un diseño top-down (de lo complejo a lo simple), el
problema que se debe resolver se divide en subproblemas cada vez
más pequeños y simples hasta que solo queden instrucciones simples
y construcciones para el control de flujo. Refleja la descomposición
del problema en una forma simple usando cajas anidadas para
representar cada uno de los subproblemas. Ecured (2014)

Ilustración 6: Diagrama N-S del valor absoluto de un número


Fuente: Gonzalez, (n.d.)

Los diagramas Nassi-Shneiderman se utilizan muy raramente en las


tareas de programación formal. Su nivel de abstracción es muy
cercano al código de la programación estructurada y ciertas
modificaciones requieren que se redibuje todo el diagrama. Ecured
(2014)
SUBRUTINAS:
Según Chaves (2023) una subrutina es una sección de código o una
función independiente dentro de un programa que realiza una tarea
específica. Las subrutinas también se conocen como procedimientos,
funciones, métodos o subprogramas, dependiendo del lenguaje de
programación que se utilice. El propósito principal de las subrutinas
es permitir que los programadores dividan un programa en partes
más pequeñas y manejables, lo que facilita el desarrollo, la
depuración y el mantenimiento del código.
Además, según IBM Corporation (2021) Una subrutina es un
conjunto de instrucciones que realizan una tarea concreta. Es un
pequeño programa que puede incorporarse en un programa y
accederse a él con una sentencia GOSUB, o puede ser externo al
programa y accederse a él con una sentencia CALL. Los procesos
comunes a menudo se guardan como subrutinas externas. Este
método permite al programador acceder a ellos desde muchos
programas distintos sin tener que volver a escribirlos.
Ambas definiciones destacan la importancia de las subrutinas como
herramientas para organizar y reutilizar código. Mientras que
Chaves (2023) se enfoca en la división del programa en partes
manejables para facilitar el desarrollo, IBM Corporation (2021)
enfatiza el uso de subrutinas externas como una forma eficiente de
reutilizar procesos comunes en múltiples programas
Conceptos relacionados con las subrutinas:
Las subrutinas están vinculadas a varios conceptos clave que, según
Chaves (2023) son esenciales para comprender su importancia en la
programación:
Reutilización de código: Las subrutinas permiten encapsular
código que se puede reutilizar en diferentes partes de un

programa, mejorando la eficiencia y reduciendo errores.


Modularidad: Dividen un programa en módulos más pequeños
y manejables, facilitando el desarrollo colaborativo y la

organización del código.


Parámetros y argumentos: Estas subrutinas pueden recibir
valores que influyen en su comportamiento, lo que les otorga

flexibilidad.
Devolver resultados: Pueden devolver valores al programa
principal, como datos procesados, lo que es esencial para

funciones complejas.
Llamada y retorno: Una subrutina es invocada y luego retorna
el control al programa principal, siguiendo un flujo ordenado.

BLOQUES:
Un bloque es un conjunto de declaraciones delimitadas que se
ejecutan en secuencia. En la mayoría de los lenguajes, estos bloques
están delimitados por llaves {} o por la sangría del código (Kernighan
& Ritchie, 1988).
La sintaxis de los bloques depende del lenguaje de programación,
pero su función es agrupar una serie de declaraciones que se
ejecutan en secuencia(Sebesta, 2016).
Usos comunes de los bloques:
1. Condicionales y Bucles: En estructuras de control, como
condicionales y bucles, los bloques permiten que una serie de
instrucciones se ejecuten en conjunto, asegurando que el flujo
de control se mantenga claro y coherente(Stroustrup, 2013).
2. Funciones y Procedimientos: Los bloques dentro de funciones y
procedimientos encapsulan operaciones específicas, lo que
permite la modularidad y la reutilización del código, aspectos
clave en la programación estructurada (Knuth, 1997).
Beneficios de Usar Bloques:
1. Legibilidad y Mantenimiento: El uso de bloques de código
mejora significativamente la legibilidad y el mantenimiento del
software, ya que permite que las instrucciones relacionadas se
agrupen y se presenten de manera lógica y
coherente(Kernighan & Ritchie, 1988).
2. Estructura y Control del Flujo: Los bloques proporcionan un
marco claro para el control del flujo de ejecución en un
programa, lo que es esencial para la creación de software
robusto y libre de errores(Flanagan, 2020).
Ejemplos en diversos lenguajes:
 C/C++:
En C, los bloques de código se delimitan con llaves {}. Este
ejemplo muestra un bloque dentro de un condicional if, que
solo se ejecuta si la condición es verdadera.

Ilustración 7: Código en C/C++

Python:
Imagen propia

En Python, los bloques de código se delimitan mediante la
indentación (espacios o tabulaciones). Este ejemplo muestra un
bloque dentro de una función y un condicional if, que se
ejecuta solo si la condición es verdadera.

Ilustración 8: Código en Python

JavaScript
Imagen propia


En JavaScript, los bloques de código se delimitan mediante
llaves {}. Los bloques se utilizan comúnmente en estructuras de
control, funciones, y más.

Ilustración 9 Código en JavaScript


Imagen propia
ESTRUCTURAS DE CONTROL:
Las estructuras de control son los bloques básicos de construcción
en la programación estructurada, ya que permiten al programador
definir cómo y cuándo se ejecutan las declaraciones, lo que es
esencial para el control del flujo del programa (Sebesta, 2016).
Tipos Principales de Estructuras de Control
1. Estructura Secuencial:
La estructura secuencial es el modo más directo de ejecución,
donde las instrucciones se realizan en el orden en que están
escritas, sin desviaciones (Kernighan & Ritchie, 1988).
Ejemplo en C:
int x = 10;
int y = 20;
int z = x + y;
2. Estructura Condicional (if-else):
La estructura condicional if-else permite a los programadores
tomar decisiones dentro de un programa, ejecutando
diferentes bloques de código en función de condiciones
específicas (Flanagan, 2020).
Ejemplo en Python:
if x > y:
print("x es mayor que y")
else:
print("x no es mayor que y")
3. Estructura de Repetición (bucles):
Los bucles permiten la repetición controlada de un bloque de
código, lo que es crucial para tareas iterativas y procesamiento
de datos en la programación estructurada(Knuth, 1997).
Ejemplo en JavaScript:
for (let i = 0; i < 5; i++) {
[Link]("Iteración " + i);
}
Importancia de las Estructuras de Control
Las estructuras de control no solo permiten la toma de decisiones y
la repetición en los programas, sino que también contribuyen a la
claridad, modularidad y eficiencia del código (Stroustrup, 2013).
Referencias:
Backus, J., Bauer, F. L., Katz, R. C., & Naur, P. (1958). Revised

Report on the Algorithmic Language ALGOL 58.

Communications of the ACM, 1(12).

Campos, O. (2011, July 21). Introducción a la programación dirigida

por eventos. Genbeta dev.

[Link]

programacion-dirigida-por-eventos

Chaves, J. (2023, October 3). ¿Qué son subrutinas? Jeffry Chaves |

Soporte Técnico.

[Link]

Corvo, H. S. (2020). Programación estructurada: características,

ejemplos, ventajas, aplicaciones. Lifeder.

[Link]

De Giusti, L. C., Sanz, V., & De Giusti, A. (2019). Evolución de un

curso inicial de programación a un enfoque multiparadigma:

Análisis y resultados. Revista Iberoamericana de Tecnología en

Educación y Educación en Tecnología, (24), 7-14.

Dijkstra, E. W. (1989). On the cruelty of really teaching computing

science. Communications of the ACM, 32(12), 1398-1404.

Ecured. (2014). Diagrama Nassi-Shneiderman.

[Link]
Evolución de los paradigmas de la programación. (2013, August 13).

Alexander. [Link]

de-los-paradigmas-de-la-programacion/

Flanagan, D. (2020). JavaScript: The Definitive Guide (7th ed.).

O'Reilly Media.

Github. (2024). Paradigma de la programación orientada a objetos.

[Link]

o/poo_teoria/[Link]

Gonzalez, R. P. M. (n.d.). Estructogramas.

[Link]

Huertos, A. A. (2019). La historia de los lenguajes de programación.

Computer Hoy.

[Link]

lenguajes-programacion-428041

IBM Corporation. (2021, February 28). Subrutinas.

[Link]

IBM Corporation. (2024). What is COBOL?

[Link]

Kernighan, B. W., & Ritchie, D. M. (1988). The C Programming

Language (2nd ed.). Prentice Hall.

Knuth, D. E. (1997). The Art of Computer Programming, Volume 1:

Fundamental Algorithms (3rd ed.). Addison-Wesley.


Laboratoria Bootcamp. (n.d.).

[Link]

s/history

Madrigal Chaves, W. (2020). Programación estructurada.

[Link]

046/LEC%20ING%20SIST%200014%[Link]?

sequence=1&isAllowed=y

Maldonado, R. (2024). Evolución de la programación estructurada.

KeepCoding Bootcamps. [Link]

de-la-programacion-estructurada/

Montealegre Luis. (n.d.). Lógica de programación.

[Link]

[Link]

Morales, N. M. R. (2021, June 18). Características del paradigma de

la programación estructurada.

[Link]

paradigma-de-la-programacion-estructurada/

Morocho Tenelema, D. P. (2023). Estudio comparativo entre la

programación orientada a objetos y la programación orientada

a aspectos (Bachelor's thesis). Universidad Técnica de

Babahoyo.

Sebesta, R. W. (2015). Concepts of programming languages.

Pearson.
Sebesta, R. W. (2016). Concepts of Programming Languages (11th

ed.). Pearson.

Stroustrup, B. (2013). The C++ Programming Language (4th ed.).

Addison-Wesley.

The FORTRAN programming language. (n.d.). [Link]

[Link]/

Wirth, N. (1971). Program Development by Stepwise Refinement.

Communications of the ACM, 14(4).

También podría gustarte