Fundamentos de la programación I: Conceptos básicos

in #developer5 years ago

Portada del dia

Es común que al tratar de aprender un lenguaje de programación, seas novato o ya cuentas con experiencia en el desarrollo, te sumerjas de lleno en conocer el lenguaje y su uso, luego apresuradamente desarrollamos un proyecto sin conocer los conceptos mas básicos de la programación. A medida que avanzamos, encontramos muchos impedimentos que nos limitan a la hora de desarrollar ciertas aplicaciones, al no tener claro ciertos conceptos que son elementales en este mundo.

En este apartado vamos a exponer un conjunto de conceptos que debes conocer como programador, que muchas veces ignoramos. No pretendo llenarte de teoría por lo que vamos a analizar un poco mejor de que tratan cada uno de ello y sus utilidades.

Introducción

Al hablar de programación informática generalmente siempre nos venden la definición que “es la acción de programar” o “una secuencia de pasos para resolver un problema informático”, aplican para cualquier ámbito que se refiera a programar, ya sea cuando planificamos un itinerario o cuando designamos roles y tareas en una organización, la programación es simplemente describir un conjunto de pasos para lograr un objetivo.

Cuando hablamos de programación en informática, hay que tener presente que el resultado de la acción de programar es un programa, el programa le indica al computador las instrucciones que debe realizar para completar un objetivo.

El computador no puede realizar una tarea por si solo porque es un tonto analfabeta.

El computador no posee capacidad de aprendizaje autónoma, por lo que no puede ejecutar ciertas funciones por si misma, si no posee un agente externo que ordene las instrucciones, es allí donde entra el programador.

Programa

Un programa es una secuencia de instrucciones que comprenden el computador para resolver un problema, los ordenadores son capaces de ejecutar dichas instrucciones mediante una secuencia de compuertas lógicas representadas en binario.

Para que un programa informático pueda completar su objetivo requiere de una memoria temporal y/o almacenamiento permanente, una entrada y una salida, para poder interactuar con otros actores, sean usuarios u otros ordenadores.

Esquema de un programa

Figura 1. Ejemplo de un programa: sumar dos números aleatorios.

Memoria temporal

La memoria temporal en informática es la capacidad de almacenamiento de información volátil en el computador, durante la ejecución de las instrucciones de un programa, el computador asigna un espacio determinado de memoria que puede ser usado y desechado tantas veces sea necesario por el programa durante su ejecución.

Un programa es inútil si no posee memoria, la memoria hace el aprendizaje de un programa.

Si no somos capaces de retener información de manera temporal durante la ejecución de un programa, el resultado no sera el deseado, ahora bien observemos un ejemplo.

Vamos a simular que nuestro cerebro es un ordenador, para ello ejecutaremos el programa de la figura 1, el cual consiste en sumar dos números aleatorios, donde “x” y “y” son la entrada, la suma es el procedimiento y el resultado será la salida, para ello una persona debe mencionar dos números aleatorios y otra representará el programa mencionando el resultado.

Esquema de un programa

Figura 2. Ingresando una salida obteniendo un resultado.

El primer usuario menciona dos números donde x = 48, y = 36, entonces el programa menciona el resultado f(x, y) = 84, pero si el programa no posee memoria al recibir las entradas “x” y “y” no puede retener su valor por lo que no puede realizar la operación.

Esquema de un programa

Figura 3. Programa sin memoria

Lo mismo ocurre si un programa se queda sin espacio de memoria, el programa deja de funcionar al no poder retener los valores entrantes.

Almacenamiento permanente

Cuando hablamos de almacenamiento permanente podemos asociar el termino persistencia de datos, consiste en pasar cierta información relevante de la memoria temporal a un espacio determinado, de manera permanente (hasta su eliminación).

Siguiendo el ejemplo anterior de un programa que sume dos números aleatorios, vamos a incrementar el nivel de dificultad un poco, si el usuario menciona múltiples números aleatorios el programa se ejecutará en cada entrada y retornará su valor limpiando en si su memoria temporal, y si entre sus números vuelve a repetir dos veces el mismo par (x, y), pues el programa al no posee el resultado en su memoria temporal vuelve a ser ejecutado y retorna su valor, limpiando nuevamente su memoria temporal. Ahora que pasaría si el programa le agregamos un cuaderno de anotaciones.

Esquema de un programa

Figura 4. Programa con un registro permanente.

Mientras el programa recibe nuevas entradas el programa realiza la operación y almacena en su cuaderno o registro la clave de las entrada y el resultado, así cuando vuelva a repetirse el mismo par de números accede a su cuaderno o registro y obtiene el valor sin realizar el esfuerzo de operarlo.

Esquema de un programa

Figura 5. Programa usando el almacenamiento permanente.

Hay que tener presente que para un programa es mas fácil y rápido acceder a su memoria temporal que a su almacenamiento permanente, ya que estos son generalmente externos a la unidad central de procesos, por lo que en la práctica encontraras que se usa la memoria temporal para almacenar información que se procesa continuamente y el resto de ellos en el almacenamiento permanente, esto debido a las limitaciones de espacio de una memoria temporal en comparación con una permanente.

Espero que te haya gustado este resumen sobre los conceptos básicos de la programación, para el próximo tutorial hablaremos sobre los algoritmos y como funcionan los lenguajes de programación. No olviden votar para hacer crecer este proyecto y suscribete si deseas seguir obteniendo nuevo contenido.

Sort:  

Congratulations @matajm! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You got a First Reply

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:

New japanese speaking community Steem Meetup badge
Vote for @Steemitboard as a witness to get one more award and increased upvotes!