Lógica de programación

 


Lógica de programación

Para ayudarte a que des el primer paso y comiences a acercarte al inmenso mundo de la informática y la programación. Entérate de la importancia de la lógica de programación y los algoritmos.

Es importante que tengas en cuenta que practicar y aprender de los errores son aspectos esenciales para aprender sobre lógica de programación, y bueno… una cierta afinidad con las matemáticas y el inglés te vendrían como anillo al dedo, ya te diré por qué.

El estudio de la programación está conectado directamente al área de las ciencias exactas; y las matemáticas, con sus reglas, estarán presentes en diversos momentos. Por otro lado el inglés, hoy fundamental en cualquier profesión, también será importante, ya que al programar encontrarás una mayor variedad de cursos y materiales en este idioma. Y además, la mayoría de los lenguajes de programación utilizan el inglés como base.

Primeros pasos en la lógica de programación

Lo que te puede generar más confusión al inicio de este camino es escoger el lenguaje de programación indicado. Sin embargo, déjame decirte que el lenguaje en sí no importa mucho al inicio, puesto que la lógica es la misma para todos, por esta razón no te preocupes, comenzar aprendiendo la lógica de programación es el mejor camino.

La lógica es la base de todo el conocimiento en programación, ya que es posible aprender a escribir un código para que la computadora interprete correctamente. Es decir que aprendes a comunicarte con la máquina a partir de un lenguaje.

¿Qué es exactamente la lógica de programación?

Lógica es la técnica utilizada para desarrollar instrucciones en una secuencia para lograr determinado objetivo.

Es la organización y planificación de instrucciones en un algoritmo, con el objetivo de tornar visible la implementación de un programa o software.

La lógica de la programación es la organización coherente de las instrucciones del programa para que su objetivo sea alcanzado.

Desafío del programador:

El gran desafío del programador es entonces montar la estructura del programa para que este sea ejecutado por la computadora. Y es necesario partir del principio de que la computadora no piensa de la misma forma que el ser humano, y no es inteligente para saber qué es lo que tiene que hacer, ni comprender mensajes subjetivos.

Por eso organizar la información de forma clara y en el orden adecuado es primordial para que la acción sea ejecutada correctamente.

¿Qué es un algoritmo en lógica de programación?

El algoritmo es la propia secuencia de instrucciones para la ejecución de una tarea. De una forma más simple, el algoritmo es una receta o ruta que indica todos los procedimientos necesarios para realizar algo o resolver un problema

La información en un algoritmo no puede ser redundante o subjetiva. Tiene que ser clara y detallada para que la computadora interprete correctamente. Ejemplificando mejor vamos a hacer un algoritmo para hacer fideos de una forma bien simple y didáctica.

Algoritmo “fideos”



¡Este es un algoritmo! Es importante que estés pendiente de tener una secuencia correcta y bien definida de las acciones, porque como en el ejemplo, no podríamos colocar los fideos sin antes abrir el paquete.

Hay diversas formas de representar un algoritmo, como formas gráficas, flujogramas, formas textuales o en pseudocódigo. La diferencia entre el algoritmo que creamos y el que es utilizado en la programación, es el lenguaje para que la computadora entienda.

Es importante resaltar que el flujo puede seguir diferentes caminos y convertirse en algo más complejo con cada información que se agrega. Por ejemplo, podríamos sumarle la condición de que si el agua estuviera fría es necesario esperar, y si no, (si estuviera caliente) podría colocar los fideos para hervir. Pero de esta forma entramos en otros factores y variables que pueden ser asunto para otros artículos.

Tengamos en cuenta también que para comprender instrucciones subjetivas, es importante tener algunas reglas o indicaciones para entender la tarea “hervir fideos” y ejecutarla correctamente. De igual manera en el caso de las computadoras; necesitamos saber algunos conceptos para mejorar nuestros algoritmos, facilitando la comprensión y ejecución de los mismos.

Variables y constantes

Seguramente ya has escuchado hablar sobre variables y constantes cuando se trata de programación, ¿no es verdad? Son valores que componen cálculos o condiciones y están presentes en todas las partes del programa.

Una variable es un espacio para almacenar un tipo de dato que puede ser modificado cuando sea necesario. En cambio la constante posee un dato definido al inicio del programa y no podrá ser alterado.

Utilizando el ejemplo de los fideos, podemos decir que el agua es una variable, ya que puede estar caliente o fría. Y el tiempo que demoran los fideos en estar listos es una constante; pues siempre serán 10 minutos, por ejemplo.

Lógica de programación en la rutina diaria

Creamos este ejemplo para mostrar la importancia de escribir la secuencia correcta de las acciones, y para entrenar el razonamiento. Eso es algo que ya utilizas en la vida cotidiana sin percibirlo. Detente y piensa un momento en tu rutina al despertar. Si lo escribes en un papel verás que es más compleja de lo que parece, pero la ejecución es automática. Imagina entonces comenzar a pensar en lo que podría ser variable y constante en esa rutina. Este es un excelente ejercicio para entrenar la lógica de programación y el uso de algoritmos. Ahora sólo tienes que entrar de lleno en el mundo de la programación e ir descubriendo los otros elementos importantes para programar.

Dónde aprender y entrenar lógica de programación

Gracias a los avances tecnológicos de hoy en día, estudiar programación o cualquier otro tipo de disciplina, es posible a través de internet. Existe una gran cantidad de cursos, videos y comunidades digitales donde puedes aprender a programar y conocer las herramientas necesarias que te ayudarán en esta tarea.

Uno de los cursos más famosos para aprender programación desde cero, es el curso gratuito de desarrollo de juegos y animaciones del MIT, llamado Scratch. Si ya hiciste clic en el link, seguramente habrás visto, parece un sitio web para niños y en verdad lo es, pero muy excelente para aprender.

Scratch es un motor de videojuegos desarrollado por MIT Media Lab. Su principal característica consiste en que permite el desarrollo de habilidades mentales mediante el aprendizaje de la programación sin tener conocimientos profundos sobre el código. Así que ya sabes, aprender programación y jugar puede ser una combinación exitosa.

Lenguaje de programación

Un lenguaje de programación es un lenguaje formal, que le proporciona a una persona, en este caso el programador, la capacidad de escribir (o programar) una serie de instrucciones o secuencias de órdenes en forma de algoritmos con el fin de controlar el comportamiento físico o lógico de un sistema informático, de manera que se puedan obtener diversas clases de datos o ejecutar determinadas tareas. A todo este conjunto de órdenes escritas mediante un lenguaje de programación se le denomina programa informático.

Programar viene a ser el proceso de crear un software fiable mediante la escritura, prueba, depuración, compilación o interpretación, y mantenimiento del código fuente de dicho programa informático. Básicamente, este proceso se define aplicando lógicamente los siguientes pasos:

El desarrollo lógico del programa, para resolver un problema en particular.

Escritura de la lógica del programa, empleando un lenguaje de programación específico (codificación del programa).

Compilación o interpretación, del programa hasta convertirlo en lenguaje de máquina.

Prueba y depuración del programa.

Desarrollo de la documentación.

¿Qué es un intérprete?

Un intérprete es un programa informático que procesa el código fuente de un proyecto de software durante su tiempo de ejecución, es decir, mientras el software se está ejecutando, y actúa como una interfaz entre ese proyecto y el procesador. Un intérprete siempre procesa el código línea por línea, de modo que lee, analiza y prepara cada secuencia de forma consecutiva para el procesador. Este principio también se aplica a las secuencias recurrentes, que se ejecutan de nuevo cada vez que vuelven a aparecer en el código. Para procesar el código fuente del software, el intérprete recurre a sus propias bibliotecas internas: en cuanto una línea de código fuente se ha traducido a los correspondientes comandos legibles por máquina, esta se envía directamente al procesador.

El proceso de conversión no finaliza hasta que se ha interpretado todo el código. Solo se interrumpe prematuramente si se produce un fallo durante el procesamiento, lo que simplifica mucho la resolución de los errores, ya que la línea de código problemática se detecta inmediatamente después de ocurrir el fallo.

JavaScript se clasifica principalmente como un lenguaje de scripting o interpretado. El código JavaScript es interpretado, es decir, directamente traducido a código de lenguaje de máquina subyacente mediante un motor de JavaScript.

¿Qué es un compilador?

Un compilador es un programa informático que traduce todo el código fuente de un proyecto de software a código máquina antes de ejecutarlo. Solo entonces el procesador ejecuta el software, obteniendo todas las instrucciones en código máquina antes de comenzar. De esta manera, el procesador cuenta con todos los componentes necesarios para ejecutar el software, procesar las entradas y generar los resultados. No obstante, en muchos casos, durante el proceso de compilación tiene lugar un paso intermedio fundamental: antes de generar la traducción final en código máquina, la mayoría de los compiladores suelen convertir el código fuente en un código intermedio (también llamado código objeto) que, a menudo, es compatible con diversas plataformas y que, además, también puede ser utilizado por un intérprete.

Al producir el código, el compilador determina qué instrucciones van a enviarse al procesador y en qué orden. Si las instrucciones no son interdependientes, incluso es posible que puedan procesarse en paralelo.

Nota: Entre los lenguajes compilados puros se incluyen, entre otros, los veteranos C, C++ y Pascal.

Diferencia intérprete y compilador

Si observamos las diferencias entre compilador e intérprete, vemos claramente los puntos fuertes y débiles de cada solución para traducir el código fuente: con el intérprete, los programas se pueden ejecutar de inmediato y, por lo tanto, se inician mucho más rápido. Además, el desarrollo es mucho más fácil que con un compilador, porque el proceso de depuración (es decir, la corrección de errores) se lleva a cabo igual que la traducción, línea por línea. En el caso del compilador, primero debe traducirse todo el código antes de poder resolver los errores o iniciar la aplicación. Sin embargo, una vez que se ejecuta el programa, los servicios del compilador ya no son necesarios, mientras que el intérprete continúa utilizando los recursos informáticos.

Lenguajes de bajo y alto nivel

Por supuesto, los programadores apreciamos escribir código que podamos entender fácilmente. Si no fuera así, a poco que una aplicación comenzase a complicarse, sería imposible de desarrollar. Los lenguajes de programación modernos han llegado a un nivel en el que se pueden estructurar los programas en muchas piezas pequeñas y de fácil comprensión, para que consigamos hacer nuestras aplicaciones de una manera fácil y, sobre todo, con alta capacidad para su mantenimiento.

Entonces, aquí encontramos la clasificación de lenguajes que creemos más importante de entender cuando estamos comenzando, el bajo y alto nivel: Los lenguajes más próximos a la arquitectura hardware se denominan lenguajes de bajo nivel y los que se encuentran más cercanos a los programadores y usuarios se denominan lenguajes de alto nivel.

Lenguajes de bajo nivel

Los lenguajes de bajo nivel son totalmente dependientes de la máquina, es decir, dependen directamente del hardware donde van a ejecutarse. Por ello, los programas que se realizan con este tipo de lenguajes no se pueden migrar o utilizar en otras máquinas, con otros tipos de procesadores.

Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las características del mismo. Son extremadamente rápidos, aunque las operaciones que les podemos pedir también son extremadamente simples.

Lenguajes de alto nivel

Son aquellos que se encuentran más cercanos al lenguaje natural de las personas, que al lenguaje máquina. Están dirigidos a solucionar problemas mediante el uso de EDD's. EDD's son las abreviaturas de Estructuras Dinamicas de Datos, algo muy utilizado en todos los lenguajes de programación. Son estructuras que pueden cambiar de tamaño durante la ejecución del programa. Nos permiten crear estructuras de datos que se adapten a las necesidades reales de un programa.

Se tratan de lenguajes independientes de la arquitectura del ordenador y de su hardware. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin ningún tipo de problema. Depende del lenguaje pueden existir unas u otras limitaciones, pero siempre que exista un intérprete o compilador para ese lenguaje en el lugar donde lo quieras ejecutar, funcionará.

Por supuesto, los lenguajes de alto nivel son los que se usan hoy en día y hay una gran variedad de ellos. De hecho decenas o cientos de lenguajes, siendo que aparecen nuevos todos los años. Ellos también tienen sus propias clasificaciones, por ejemplo hay lenguajes de propósito general (mediante los cuales podemos desarrollar cualquier tipo de aplicación) y de propósito específico (que nos sirven principalmente para un cometido determinado, como FORTRAN para trabajos científicos).

JavaScript es un lenguaje de alto nivel, dinámico e interpretado. Se define como orientado a objetos, basado en prototipos, imperativo y débilmente tipado.

Paradigma de programación

Un paradigma de programación consiste en un método para llevar a cabo cómputos y la forma en la que deben estructurarse y organizarse las tareas que debe realizar un programa. Se trata de una propuesta tecnológica adoptada por una comunidad de programadores, y desarrolladores cuyo núcleo central es incuestionable en cuanto que únicamente trata de resolver uno o varios problemas claramente delimitados Representa un enfoque particular o filosofía para diseñar soluciones. Los paradigmas difieren unos de otros, en los conceptos y la forma de abstraer los elementos involucrados en un problema, así como en los pasos que integran su solución del problema, en otras palabras, el cómputo. Tiene una estrecha relación con la formalización de determinados lenguajes en su momento de definición. Es un estilo de programación empleado.

Los más comunes son

Programación por procedimientos: es el más usado en general, se basa en dar instrucciones al ordenador de cómo hacer las cosas en forma de algoritmos, en lugar de describir el problema o la solución. Las recetas de cocina y las listas de revisión de procesos, a pesar de no ser programas de computadora, son también conceptos familiares similares en estilo a la programación imperativa; donde cada paso es una instrucción. Es la forma de programación más usada y la más antigua,

La Programación Orientada a Objetos: es un paradigma de programación, esto es, un modelo o un estilo de programación que proporciona unas guías acerca de cómo trabajar con él y que está basado en el concepto de clases y objetos.

La programación dirigida por eventos; es un paradigma de programación en el que tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen

Puedes escribir JavaScript en el paradigma declarativo o el paradigma imperativo. Esto es lo que la gente quiere decir cuando dice que es un lenguaje de paradigmas múltiples. Es solo que el código funcional sigue el paradigma declarativo. JavaScript es un lenguaje de programación multiplataforma orientado a objetos que se utiliza para hacer que las páginas web sean interactivas.

Lenguajes no tipados vs Tipado fuerte.

No tipados Los lenguajes de programación no tipados no controlan los tipos de las variables que declaran, de este modo, es posible usar variables de cualquier tipo en un mismo escenario. Por ejemplo, una función puede recibir como parámetro un valor entero, cadena de caracteres, flotante, etc.

Tipado fuerte Un lenguaje de programación es fuertemente tipado si no se permiten violaciones de los tipos de datos, es decir, dado el valor de una variable de un tipo concreto, no se puede usar como si fuera de otro tipo distinto a menos que se haga una conversión. No hay una única definición de este término.

Conclusión: Muchas gracias a todos por leer. Expliqué lo básico de la teoría de programación. Te animo fuertemente a leer más artículos relacionados. Por ejemplo, qué significa DRY: ¡no te repitas! y el término divide y vencerás (DYV). Espero que este artículo te haya ayudado. Gracias. ¡Feliz Programación.

Subir

No hay comentarios.:

Publicar un comentario