SlideShare una empresa de Scribd logo
1 de 2
Descargar para leer sin conexión
Evolución de la programación


Si se consulta en Wiki pedía la definición de algoritmo, se entiende que éste es un conjunto
finito de instrucciones a seguir para resolver un problema, //grosso modo//. Cada tipo de
microprocesador contiene un conjunto de instrucciones que realizan ciertas operaciones
sobre una o más palabras de bits; las instrucciones van también codificadas en bits. No
queremos hacer aquí una discusión sobre arquitectura de ordenadores, por lo que con esto
debe                          valer                         por                       ahora.

Se entiende que escribir sólo con dos teclas, el 0 y el 1, es incómodo. Históricamente, a la
hora de diseñar un algoritmo para que el ordenador ejecutara, se escribía mediante unas
etiquetas mnemotécnicas; éste fue el origen del lenguaje ensamblador. Por ejemplo quizás
en una cierta arquitectura la instrucción de borrado de memoria (Memory Clear, en inglés)
corresponda al código 010. Pronto surgieron programas que leían, siguiendo el ejemplo, MC,
y                  lo                  sustituían                  por                 010.

Sobre este lenguaje ensamblador inicial se fueron construyendo otros lenguajes de
programación de más alto nivel; esto significa que ocultan ciertos aspectos de manera que el
programador no se ha de preocupar sobre si en la máquina que quiere que se ejecute el
algoritmo el MC corresponde a la instrucción 101 o 010. Se produce, por tanto, una
abstracción de datos, muy deseable para poder utilizar el trabajo de otros para avanzar un
paso más en vez de tener que "reinventar la rueda", como se suele decir. Estos textos en los
que se codifican los algoritmos són los códigos fuente; siguen las reglas sintácticas de un
determinado lenguaje de programación. Existen numerosos lenguajes de programación, y se
utiliza uno u otros según sus características se adecúen más o menos a la resolución de
nuestro                                                                           problema.

Tras la escritura del algoritmo, un compilador o un intérprete (otros programas)
transformarán el texto en código máquina que el procesador es capaz de ejecutar.

Toda esta abstracción permite resolver problemas alejados de sumar números binarios, como
pueden ser la consulta de esta misma enciclopedia o jugar a un videojuego en 3D.

Tras la escritura del algoritmo, un compilador o un intérprete (otros programas)
transformarán el texto en código máquina que el procesador es capaz de ejecutar.

Toda esta abstracción permite resolver problemas alejados de sumar números binarios, como
pueden ser la consulta de esta misma enciclopedia o jugar a un videojuego en 3D.

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.

Como hemos visto, el ordenador sigue una serie de instrucciones. Pero esas instrucciones
tienen que operar sobre una serie de datos. El ordenador típico solo procesa una instrucción
a la vez, por lo que necesita 'espacios de memoria' donde guardar o depositar, a modo de
cajones, por usar un símil conocido, los diversos datos con los que trabaja. Aquí es donde
entran          en         juego         las         variables         y         constantes.

En los inicios, con el ensamblador, se podía decir al ordenador, por ejemplo: 'Ejecuta la
instrucción de esa posición de memoria' o también 'En esa posición de memoria está guardada
mi edad, imprímela por pantalla'. Todo esto se deriva del hecho de que los programas
también son datos. Esta ambigüedad presenta numerosos inconvenientes cuando se producen
errores, como el lector se imaginará fácilmente: de ahí que, a medida que los lenguajes
promocionan hacia niveles superiores, se impida el tratamiento indistinto de los datos. A
partir de entonces, un programa tiene que decirle al sistema operativo los cajones que
necesita    y éste se        los proporciona    independientemente      de   cuáles sean.

Quizás suene más complicado de lo que es. Un ejemplo: Queremos sumar dos números.
Nuestro programa tendrá que tener tres cajones: Uno para cada número y otro para el
resultado. Cada cajón tiene un nombre en vez de una posición de memoria, de manera que
sólo                       hay                     que                       nombrarlo:

  Necesito cajones A, B y Resultado Lee un número y guárdalo en A Lee un número y
guárdalo en B Suma A y B y guárdalo en Resultado Imprime el contenido de Resultado

He aquí nuestro programa. Como cabe pensar, un procesador no tiene la instrucción "Imprime
por pantalla"; esto es una llamada a otra porción de código que, gracias a la abstracción,
nosotros o no hemos escrito, o hemos escrito una sóla vez; a partir de lo cual podemos
imprimir       todo     el     texto      que      queramos      en        la     pantalla.

Las posiciones de memoria A y B son Variables. Si queremos leerlas o escribirlas, podemos
hacerlas. Típicamente, existirán datos que no pensamos modificar; no querremos que el
usuario tenga que introducirlos cada vez, pues son de naturaleza más constante que otros
(como puede ser el valor Pi para calcular el perímetro o área de un círculo). Para evitar
modificarlos por error, podemos pedir al sistema variables especiales, que no puedan ser
reescritas.          Son          las          Constantes.          Un            ejemplo:

 Comentario: Este programa calcula el área de un círculo Constante PI = 3'14159265
Variable R Variable Resultado Leer número y guardar en R Calcular PI * (R * R) y guardar en
Resultado                               Imprimir                                  Resultado

Introducimos también el útil concepto del comentario: son líneas del código que el
compilador o el intérprete no consideran, con lo cual no están sujetas a restricciones de
sintaxis y sirven para aclarar partes de código en posteriores lecturas y, en general, para
anotar      cualquier     cosa     que     el     programador      considere     oportuno.

Más contenido relacionado

La actualidad más candente

5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas5154 Tema3 Jose Rojas
5154 Tema3 Jose RojasJose Rojas
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorjoseruiz_66
 
Lenguaje de ensamblador
Lenguaje de ensambladorLenguaje de ensamblador
Lenguaje de ensambladorluisbeltran861
 
Temario lenguaje ensamblador
Temario lenguaje ensambladorTemario lenguaje ensamblador
Temario lenguaje ensambladorFrancisco Cardona
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfazLuiS YmAY
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensambladorDeisyVilchez
 
Lenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPULenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPUromo91
 
programacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASMprogramacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASMフ乇丂ひ丂
 
Lenguaje maquina
Lenguaje maquinaLenguaje maquina
Lenguaje maquinaErnes 28
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assemblerangel
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskJohann Chambilla
 
Manual de programacion en el lenguaje c
Manual de programacion en el lenguaje cManual de programacion en el lenguaje c
Manual de programacion en el lenguaje cvictdiazm
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensambladoriagardea
 
Clase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorClase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorInfomania pro
 

La actualidad más candente (20)

03.Programación en ensamblador
03.Programación en ensamblador03.Programación en ensamblador
03.Programación en ensamblador
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje de ensamblador
Lenguaje de ensambladorLenguaje de ensamblador
Lenguaje de ensamblador
 
Temario lenguaje ensamblador
Temario lenguaje ensambladorTemario lenguaje ensamblador
Temario lenguaje ensamblador
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Lenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPULenguaje ensamblador y Estructura del CPU
Lenguaje ensamblador y Estructura del CPU
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
programacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASMprogramacion en lenguaje ensamblador con NASM
programacion en lenguaje ensamblador con NASM
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje maquina
Lenguaje maquinaLenguaje maquina
Lenguaje maquina
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assembler
 
Programacion ensamblador-procesadoresk
Programacion ensamblador-procesadoreskProgramacion ensamblador-procesadoresk
Programacion ensamblador-procesadoresk
 
Manual de programacion en el lenguaje c
Manual de programacion en el lenguaje cManual de programacion en el lenguaje c
Manual de programacion en el lenguaje c
 
Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Clase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensambladorClase10 2-lenguaje ensamblador
Clase10 2-lenguaje ensamblador
 

Destacado

Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionBryangfa
 
Procedimientos de programacion
Procedimientos de programacionProcedimientos de programacion
Procedimientos de programacionDila0887
 
Las funciones del lenguaje se clasifican en
Las funciones del lenguaje se clasifican enLas funciones del lenguaje se clasifican en
Las funciones del lenguaje se clasifican ennalgoncito
 
Tipos Y Clasificacion Lenguajes
Tipos Y Clasificacion LenguajesTipos Y Clasificacion Lenguajes
Tipos Y Clasificacion Lenguajesguesta31946
 
Lenguajes de programacion alejandra salvador bartolon
Lenguajes de programacion alejandra salvador bartolonLenguajes de programacion alejandra salvador bartolon
Lenguajes de programacion alejandra salvador bartolonalejandritasalva
 
Clasificación de los lenguajes de programación
Clasificación de los lenguajes de programaciónClasificación de los lenguajes de programación
Clasificación de los lenguajes de programaciónd3m3nt3
 
Clasificación de lenguajes
Clasificación de lenguajesClasificación de lenguajes
Clasificación de lenguajesmafer3388
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De ProgramacionROSA859
 
Lenguaje De Programación
Lenguaje De ProgramaciónLenguaje De Programación
Lenguaje De Programacióndenisse176
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacionfcolauravel
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programaciónKarol
 
tipos de lenguaje de programación
tipos de lenguaje de programacióntipos de lenguaje de programación
tipos de lenguaje de programaciónpefrayo5
 

Destacado (15)

Progrmacion
ProgrmacionProgrmacion
Progrmacion
 
Lenguaje de Programacion
Lenguaje de ProgramacionLenguaje de Programacion
Lenguaje de Programacion
 
Progrmacion 5 sec
Progrmacion 5 secProgrmacion 5 sec
Progrmacion 5 sec
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Procedimientos de programacion
Procedimientos de programacionProcedimientos de programacion
Procedimientos de programacion
 
Las funciones del lenguaje se clasifican en
Las funciones del lenguaje se clasifican enLas funciones del lenguaje se clasifican en
Las funciones del lenguaje se clasifican en
 
Tipos Y Clasificacion Lenguajes
Tipos Y Clasificacion LenguajesTipos Y Clasificacion Lenguajes
Tipos Y Clasificacion Lenguajes
 
Lenguajes de programacion alejandra salvador bartolon
Lenguajes de programacion alejandra salvador bartolonLenguajes de programacion alejandra salvador bartolon
Lenguajes de programacion alejandra salvador bartolon
 
Clasificación de los lenguajes de programación
Clasificación de los lenguajes de programaciónClasificación de los lenguajes de programación
Clasificación de los lenguajes de programación
 
Clasificación de lenguajes
Clasificación de lenguajesClasificación de lenguajes
Clasificación de lenguajes
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacion
 
Lenguaje De Programación
Lenguaje De ProgramaciónLenguaje De Programación
Lenguaje De Programación
 
Lenguajes De Programacion
Lenguajes De ProgramacionLenguajes De Programacion
Lenguajes De Programacion
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
tipos de lenguaje de programación
tipos de lenguaje de programacióntipos de lenguaje de programación
tipos de lenguaje de programación
 

Similar a Evolución de la programación

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

Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Visual basic terminado[1]
Visual basic terminado[1]Visual basic terminado[1]
Visual basic terminado[1]
 
Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33
 
Introduccion al assembler[1]
Introduccion al assembler[1]Introduccion al assembler[1]
Introduccion al assembler[1]
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assembler
 
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
 
Curso MATLAB
Curso MATLABCurso MATLAB
Curso MATLAB
 
TADS.PDF
TADS.PDFTADS.PDF
TADS.PDF
 
CONSULTA
CONSULTACONSULTA
CONSULTA
 
Lenguaje Ensamblador00
Lenguaje Ensamblador00Lenguaje Ensamblador00
Lenguaje Ensamblador00
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
151442532 tutorial-de-c
151442532 tutorial-de-c151442532 tutorial-de-c
151442532 tutorial-de-c
 
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTMLPASOS PARA LA SOLUCION DE PROBLEMAS - HTML
PASOS PARA LA SOLUCION DE PROBLEMAS - HTML
 
Informatica
InformaticaInformatica
Informatica
 
Lectur act 3
Lectur act 3Lectur act 3
Lectur act 3
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Consulta
ConsultaConsulta
Consulta
 
taller anexo.pdf
taller anexo.pdftaller anexo.pdf
taller anexo.pdf
 
Manual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaManual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky Bonilla
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 

Evolución de la programación

  • 1. Evolución de la programación Si se consulta en Wiki pedía la definición de algoritmo, se entiende que éste es un conjunto finito de instrucciones a seguir para resolver un problema, //grosso modo//. Cada tipo de microprocesador contiene un conjunto de instrucciones que realizan ciertas operaciones sobre una o más palabras de bits; las instrucciones van también codificadas en bits. No queremos hacer aquí una discusión sobre arquitectura de ordenadores, por lo que con esto debe valer por ahora. Se entiende que escribir sólo con dos teclas, el 0 y el 1, es incómodo. Históricamente, a la hora de diseñar un algoritmo para que el ordenador ejecutara, se escribía mediante unas etiquetas mnemotécnicas; éste fue el origen del lenguaje ensamblador. Por ejemplo quizás en una cierta arquitectura la instrucción de borrado de memoria (Memory Clear, en inglés) corresponda al código 010. Pronto surgieron programas que leían, siguiendo el ejemplo, MC, y lo sustituían por 010. Sobre este lenguaje ensamblador inicial se fueron construyendo otros lenguajes de programación de más alto nivel; esto significa que ocultan ciertos aspectos de manera que el programador no se ha de preocupar sobre si en la máquina que quiere que se ejecute el algoritmo el MC corresponde a la instrucción 101 o 010. Se produce, por tanto, una abstracción de datos, muy deseable para poder utilizar el trabajo de otros para avanzar un paso más en vez de tener que "reinventar la rueda", como se suele decir. Estos textos en los que se codifican los algoritmos són los códigos fuente; siguen las reglas sintácticas de un determinado lenguaje de programación. Existen numerosos lenguajes de programación, y se utiliza uno u otros según sus características se adecúen más o menos a la resolución de nuestro problema. Tras la escritura del algoritmo, un compilador o un intérprete (otros programas) transformarán el texto en código máquina que el procesador es capaz de ejecutar. Toda esta abstracción permite resolver problemas alejados de sumar números binarios, como pueden ser la consulta de esta misma enciclopedia o jugar a un videojuego en 3D. Tras la escritura del algoritmo, un compilador o un intérprete (otros programas) transformarán el texto en código máquina que el procesador es capaz de ejecutar. Toda esta abstracción permite resolver problemas alejados de sumar números binarios, como pueden ser la consulta de esta misma enciclopedia o jugar a un videojuego en 3D. 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
  • 2. 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. Como hemos visto, el ordenador sigue una serie de instrucciones. Pero esas instrucciones tienen que operar sobre una serie de datos. El ordenador típico solo procesa una instrucción a la vez, por lo que necesita 'espacios de memoria' donde guardar o depositar, a modo de cajones, por usar un símil conocido, los diversos datos con los que trabaja. Aquí es donde entran en juego las variables y constantes. En los inicios, con el ensamblador, se podía decir al ordenador, por ejemplo: 'Ejecuta la instrucción de esa posición de memoria' o también 'En esa posición de memoria está guardada mi edad, imprímela por pantalla'. Todo esto se deriva del hecho de que los programas también son datos. Esta ambigüedad presenta numerosos inconvenientes cuando se producen errores, como el lector se imaginará fácilmente: de ahí que, a medida que los lenguajes promocionan hacia niveles superiores, se impida el tratamiento indistinto de los datos. A partir de entonces, un programa tiene que decirle al sistema operativo los cajones que necesita y éste se los proporciona independientemente de cuáles sean. Quizás suene más complicado de lo que es. Un ejemplo: Queremos sumar dos números. Nuestro programa tendrá que tener tres cajones: Uno para cada número y otro para el resultado. Cada cajón tiene un nombre en vez de una posición de memoria, de manera que sólo hay que nombrarlo: Necesito cajones A, B y Resultado Lee un número y guárdalo en A Lee un número y guárdalo en B Suma A y B y guárdalo en Resultado Imprime el contenido de Resultado He aquí nuestro programa. Como cabe pensar, un procesador no tiene la instrucción "Imprime por pantalla"; esto es una llamada a otra porción de código que, gracias a la abstracción, nosotros o no hemos escrito, o hemos escrito una sóla vez; a partir de lo cual podemos imprimir todo el texto que queramos en la pantalla. Las posiciones de memoria A y B son Variables. Si queremos leerlas o escribirlas, podemos hacerlas. Típicamente, existirán datos que no pensamos modificar; no querremos que el usuario tenga que introducirlos cada vez, pues son de naturaleza más constante que otros (como puede ser el valor Pi para calcular el perímetro o área de un círculo). Para evitar modificarlos por error, podemos pedir al sistema variables especiales, que no puedan ser reescritas. Son las Constantes. Un ejemplo: Comentario: Este programa calcula el área de un círculo Constante PI = 3'14159265 Variable R Variable Resultado Leer número y guardar en R Calcular PI * (R * R) y guardar en Resultado Imprimir Resultado Introducimos también el útil concepto del comentario: son líneas del código que el compilador o el intérprete no consideran, con lo cual no están sujetas a restricciones de sintaxis y sirven para aclarar partes de código en posteriores lecturas y, en general, para anotar cualquier cosa que el programador considere oportuno.