SlideShare una empresa de Scribd logo
1 de 2
Descargar para leer sin conexión
Evolución histórica 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 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:

      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.

Más contenido relacionado

La actualidad más candente (14)

Turbo Pascal 7
Turbo Pascal 7Turbo Pascal 7
Turbo Pascal 7
 
Programacin estructurada
Programacin estructuradaProgramacin estructurada
Programacin estructurada
 
Pascal [modo de compatibilidad]
Pascal [modo de compatibilidad]Pascal [modo de compatibilidad]
Pascal [modo de compatibilidad]
 
Manual De Pascal
Manual De PascalManual De Pascal
Manual De Pascal
 
Principios basicos de la programacion (pc)
Principios basicos de la programacion (pc)   Principios basicos de la programacion (pc)
Principios basicos de la programacion (pc)
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Parcial (estructuras repetitivas"for y while" - herrmanientas case)
Parcial (estructuras repetitivas"for y while" - herrmanientas case)Parcial (estructuras repetitivas"for y while" - herrmanientas case)
Parcial (estructuras repetitivas"for y while" - herrmanientas case)
 
Matematicos
MatematicosMatematicos
Matematicos
 
Practica 09
Practica 09Practica 09
Practica 09
 
2 poo u1 2 Hola mundo
2 poo u1 2 Hola mundo2 poo u1 2 Hola mundo
2 poo u1 2 Hola mundo
 
2 poo u1 1 Introduccion
2 poo u1 1 Introduccion2 poo u1 1 Introduccion
2 poo u1 1 Introduccion
 
Analisis sintactico
Analisis sintacticoAnalisis sintactico
Analisis sintactico
 
Manual fortran
Manual fortranManual fortran
Manual fortran
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 

Similar a Evolución histórica de la programación

Especialidad
EspecialidadEspecialidad
EspecialidadDilan19
 
Especialidad
EspecialidadEspecialidad
Especialidadbecew
 
Lenguajes De ProgramacióN
Lenguajes De ProgramacióNLenguajes De ProgramacióN
Lenguajes De ProgramacióNpablo
 
Lenguajes De ProgramacióN
Lenguajes De ProgramacióNLenguajes De ProgramacióN
Lenguajes De ProgramacióNpablo
 
Sintaxis de lenguajes de programacion entre pic16 f887 y atmega328p
Sintaxis de lenguajes de programacion entre pic16 f887 y atmega328pSintaxis de lenguajes de programacion entre pic16 f887 y atmega328p
Sintaxis de lenguajes de programacion entre pic16 f887 y atmega328pIng. Iean Isai Palacios Olivares
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivasyance1
 
C:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladoresC:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladoresNancyandRegina317
 
Organizacion de la unidad central de procesamiento
Organizacion de la unidad central de procesamientoOrganizacion de la unidad central de procesamiento
Organizacion de la unidad central de procesamientoHarold Torres
 
Programacinenshell linux
Programacinenshell linuxProgramacinenshell linux
Programacinenshell linuxusupr2014
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a ObjetosManuel Antonio
 

Similar a Evolución histórica de la programación (20)

Evolucion
EvolucionEvolucion
Evolucion
 
Evolucion
EvolucionEvolucion
Evolucion
 
Evolucion
EvolucionEvolucion
Evolucion
 
UNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICAUNIDAD 2 PROGRAMACIÓN BASICA
UNIDAD 2 PROGRAMACIÓN BASICA
 
Especialidad
EspecialidadEspecialidad
Especialidad
 
Especialidad
EspecialidadEspecialidad
Especialidad
 
Lenguajes De ProgramacióN
Lenguajes De ProgramacióNLenguajes De ProgramacióN
Lenguajes De ProgramacióN
 
Lenguajes De ProgramacióN
Lenguajes De ProgramacióNLenguajes De ProgramacióN
Lenguajes De ProgramacióN
 
Sintaxis de lenguajes de programacion entre pic16 f887 y atmega328p
Sintaxis de lenguajes de programacion entre pic16 f887 y atmega328pSintaxis de lenguajes de programacion entre pic16 f887 y atmega328p
Sintaxis de lenguajes de programacion entre pic16 f887 y atmega328p
 
cap2.pdf
cap2.pdfcap2.pdf
cap2.pdf
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Estructuras repetitivas
Estructuras repetitivasEstructuras repetitivas
Estructuras repetitivas
 
C:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladoresC:\documents and settings\clientea\mis documentos\compiladores
C:\documents and settings\clientea\mis documentos\compiladores
 
Trabajo maxi unidad i
Trabajo maxi unidad iTrabajo maxi unidad i
Trabajo maxi unidad i
 
Lenguaje de máquina
Lenguaje de máquinaLenguaje de máquina
Lenguaje de máquina
 
Organizacion de la unidad central de procesamiento
Organizacion de la unidad central de procesamientoOrganizacion de la unidad central de procesamiento
Organizacion de la unidad central de procesamiento
 
Programacinenshell linux
Programacinenshell linuxProgramacinenshell linux
Programacinenshell linux
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Presentación1.pptx
Presentación1.pptxPresentación1.pptx
Presentación1.pptx
 
Linux Programacion en Shell
Linux Programacion en ShellLinux Programacion en Shell
Linux Programacion en Shell
 

Evolución histórica de la programación

  • 1. Evolución histórica 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 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.
  • 2. 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:  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.