El documento resume la evolución de la programación desde los lenguajes de máquina hasta los lenguajes de programación modernos. Explica que inicialmente solo existía el lenguaje binario, luego surgieron los lenguajes simbólicos como el ensamblador para simplificar la programación. Más tarde aparecieron los lenguajes de alto nivel como FORTRAN y COBOL que introdujeron expresiones matemáticas y estructuras de control. Finalmente, el documento describe la transición hacia la programación estructurada y la aparición de paradigmas como la programación modular
La programación estructurada es una forma de escribir programas de computadora deforma clara, utilizando únicamente tres estructuras: secuencia, selección e interacción; siendo innecesario y no permitiéndose el uso de la instrucción o instrucciones de transferencia incondicional.
Capítulo 6 - Procesadores RISC
Juan Guerrero Martínez, Jose Vicente Francés Villora
http://ocw.uv.es/ingenieria-y-arquitectura/sistemas-electronicos-para-el-tratamiento-de-la-informacion/material-de-clase/
Anna Lucia Alfaro Dardón, Harvard MPA/ID.
Opportunities, constraints and challenges for the development of the small and medium enterprise (SME) sector in Central America, with an analytical study of the SME sector in Nicaragua. - focused on the current supply and demand gap for credit and financial services.
Anna Lucía Alfaro Dardón
Dr. Ivan Alfaro
Guía para hacer un Plan de Negocio para tu emprendimiento.pdfpppilarparedespampin
Esta Guía te ayudará a hacer un Plan de Negocio para tu emprendimiento. Con todo lo necesario para estructurar tu proyecto: desde Marketing hasta Finanzas, lo imprescindible para presentar tu idea. Con esta guía te será muy fácil convencer a tus inversores y lograr la financiación que necesitas.
Anna Lucia Alfaro Dardón, Harvard MPA/ID. The international successful Case Study of Banco de Desarrollo Rural S.A. in Guatemala - a mixed capital bank with a multicultural and multisectoral governance structure, and one of the largest and most profitable banks in the Central American region.
INCAE Business Review, 2010.
Anna Lucía Alfaro Dardón
Dr. Ivan Alfaro
Dr. Luis Noel Alfaro Gramajo
1. INSTITUTO TECNOLÓGICO
DE CIUDAD ALTAMIRANO
Carrera:
Ingeniería En Informática
Portafolio De Evidencias
Materia:
Fundamentos De Programación
Facilitadora: L.I Verónica Reyes Reyes
Alumna: Isela de Jesús Martínez Carachure
Semestre: 1
Periodo Agosto 2012 A Enero 2013
Fecha: 31/08/12
2. EVOLUCIÓN DE LA PROGRAMACIÓN
En el comienzo de la informática, sólo había una forma de programar
(en binario), que consistía en la ejecución secuencial (una tras otra) de
instrucciones de la máquina, con posibles cambios de secuencia
basados en dos tipos especiales de instrucciones de control:
instrucciones de transferencia e instrucciones de llamada de subrutina.
En el comienzo de la informática, sólo había una forma de programar
(en binario), que consistía en la ejecución secuencial (una tras otra) de
instrucciones de la máquina, con posibles cambios de secuencia
basados en dos tipos especiales de instrucciones de control.
Las instrucciones de control se dividieron en dos tipos:
instrucciones de transferencia
instrucciones de llamada de subrutina.
Las instrucciones de transferencia dan lugar a un salto sin retorno
en la ejecución, y a su vez pueden ser condicionales (si el salto se
produce únicamente cuando se cumple una condición determinada) o
incondicionales.
La instrucción de llamada de subrutina guarda la dirección de
retorno para que la secuencia de ejecución original se reanude cuando
termina la ejecución de la subrutina (momento en el que se ejecutará
una instrucción de retorno).
En la década de los años cincuenta surgió un nuevo tipo da lenguajes
(llamados simbólicos, o de segunda generación: assembler), que
trataban de simplificar la programación: ya que, a medida que los
programas eran cada vez más complejos, se hacía impracticable utilizar
directamente el lenguaje de la máquina, en el que las instrucciones
estaban formadas por secuencias de ceros y unos.
Un lenguaje simbólico no es más que una representación codificada del
lenguaje de la máquina, donde cada instrucción simbólica se traduce
(en principio) por una sola instrucción de la máquina equivalente, y el
código de operación y la dirección de memoria asociados a cada
3. instrucción de la máquina se representan mediante símbolos
alfanuméricos. En particular, dependiendo del lenguaje simbólico
utilizado, las instrucciones de cambio de secuencia se suelen
representar mediante los siguientes símbolos:
La instrucción de transferencia incondicional: JMP
(jump, es decir, salto); B (branch, ramificación); GOTO (go to, ir
a); etc.
Las instrucciones de transferencia condicional: JZ (jump
on zero, salto si el resultado anterior es cero); BC (branch on
condition, ramificación condicional); etc.
La instrucción de llamada de subrutina: CALL (llamar, en
inglés); BAL (branch and link, es decir, ramificación con enlace);
etc.
La instrucción de retorno de subrutina: RET (return,
retorno); etcétera.
A finales de los años cincuenta, y a medida que las aplicaciones iban
creciendo en tamaño y en complicación, la programación en los
lenguajes simbólicos resultaba aún demasiado compleja, por lo que se
inventaron los lenguajes de alto nivel o de tercera generación, tales
como FORTRAN, LISP, COBOL, ALGOL, APL, PL/I, BASIC, Pascal, C,
etc., que hacían más legibles los programas mediante expresiones de
aspecto matemático, como X + Y * Z (que significa, en muchos de los
lenguajes citados, sumar el valor de la variable X al resultado de
multiplicar el valor de la variable Y por el de la variable Z).
Todos estos lenguajes, y muchos más que no voy a mencionar por el
momento, no son totalmente independientes entre sí, sino que unos
influyeron en el diseño de los otros, por lo que forman una jerarquía
histórica. Además de simplificar la sintaxis de las expresiones, los
lenguajes de alto nivel introdujeron una serie de instrucciones de
control para hacer más simple la definición de la estructura de los
programas. Estas instrucciones pueden agruparse en las siguientes
clases:
4. Una instrucción de transferencia incondicional (siempre
se produce un salto sin retorno en la ejecución), generalmente
representada mediante el símbolo GOTO, GO TO, u otro
equivalente.
Instrucciones de transferencia condicional, como las
sentencias GO TO calculada y asignada de FORTRAN, o la
sentencia IF del mismo lenguaje, en su forma original.
Instrucciones de ejecución condicional, como el conjunto
IF- THEN-ELSE de ALGOL y Pascal, la instrucción CASE de
Pascal o el conjunto if-else y la instrucción switch de C.
Instrucciones de ejecución en bucle, en sus formas DO-
UNTIL, DO-WHILE y FOR.
La instrucción de llamada de subrutina, representada
mediante el símbolo CALL, o implícitamente, especificando sólo
el nombre de la subrutina que se invoca, junto con un conjunto
de argumentos entre paréntesis.
La instrucción de retorno de subrutina: RETURN o equivalente.1
11
http://www.todo-programacion.com.ar/archives/2005/04/evolucion_histo.html
5. Inicialmente los programas seguían una ejecución similar a la del
código ensamblador, es decir, existía un control sobre qué línea de
instrucción se ejecutaría a continuación, que se podía cambiar
mediante ciertas redirecciones (GOTO y GOSUB en BASIC, por
ejemplo). Sin embargo, poco a poco se tendió hacia lo que se llama la
programación estructurada.
La programación estructurada sigue tres reglas: la secuencia, la
iteración y la decisión. La primera de ellas indica que las instrucciones
del código se leerán de principio a fin; la segunda indica que, según
cierta condición, un número de instrucciones podrían repetirse un
numero determinado de veces, y la tercera indica que según unas
ciertas condiciones se ejecutarán o no un conjunto de instrucciones. En
el siguiente algoritmo para limpiar platos se aprecian estas tres
características. La indentación de las instrucciones indican cuáles son
englobadas y cuáles no por sus predecesoras.
mientras haya platos coger plato mientras haya suciedad
echar jabon pasar el estropajo por el plato si plato es azul
ponerlo con los azules
En código no estructurado, quedaría algo más lioso.
1 coger plato 2 echar jabon 3 pasar el estropajo por el plato 4 si hay
suciedad ir a la instrucción 2 5 si el plato no es azul ir a la instrucción
7 6 ponerlo con los azules 7 si hay más platos ir a la instrucción 1
En programas más grandes, esto es muchísimo más lioso.
Ahora conocemos la ejecución de los algoritmos. Sin embargo, un
programa se compone tanto de algoritmos como de una estructura de
datos sobre los que operar. 2
2
http://www.wikilearning.com/monografia/fundamentos_de_programacion-
evolucion_de_la_programacion/3650-2