Fundamentos de Programación: Algoritmos, Lenguajes y Estilos
Clasificado en Informática
Escrito el en español con un tamaño de 39,47 KB
Fundamentos de la Programación
La programación es la base para la creación de software y la resolución de problemas mediante computadoras. A continuación, se detallan los conceptos esenciales y los diferentes enfoques que conforman este campo.
Conceptos Clave
- Algoritmo: Es un método sistemático y finito diseñado para resolver un problema específico.
- Programar: Consiste en escribir un conjunto de instrucciones que una computadora debe seguir para realizar una tarea particular.
- Lenguaje de Programación: Es el medio formal que permite a los programadores escribir instrucciones comprensibles para una computadora.
Clasificación de Lenguajes de Programación
Lenguajes de Bajo Nivel
- Lenguaje de Máquina: Utiliza exclusivamente combinaciones de 0s y 1s.
- Ensamblador: Emplea etiquetas o mnemónicos para representar las instrucciones de máquina, facilitando su lectura.
Lenguajes de Alto Nivel
Estos lenguajes se asemejan más al lenguaje humano. Cada instrucción en un lenguaje de alto nivel generalmente se traduce en una o más instrucciones en lenguaje de máquina o ensamblador.
Estilos de Programación
Programación Imperativa o Procedimental
El programador detalla explícitamente cada paso que la computadora debe ejecutar. Los lenguajes representativos incluyen C, Pascal, Fortran, Cobol y PLI.
La estructura típica de un programa imperativo es:
- Encabezamiento del programa.
- Declaraciones (variables, constantes, etc.).
- Cuerpo del programa (instrucciones ejecutables).
Programación Estructurada
Se enfoca en dividir problemas complejos en subproblemas más pequeños y manejables, resolviéndolos de forma independiente para integrar las soluciones.
Programación Orientada a Objetos (POO)
Este paradigma se acerca a la forma en que conceptualizamos el mundo real, basándose en Objetos y Clases. Los objetos encapsulan datos (Atributos) y funcionalidades (Métodos).
El concepto central de la POO son los Objetos, que pueden definirse como un conjunto de datos y funciones relacionadas.
Ejemplos de Objetos:
- Perro: Posee propiedades como nombre, color, raza, altura, y comportamientos como ladrar, cavar, llorar, dormir, comer. También puede tener relaciones con otros objetos como Dueño, Casa, Veterinario.
- Carro: Tiene propiedades como marca, cantidad de puertas, color, tamaño, y comportamientos como encender, acelerar, frenar, girar.
Los comportamientos de los objetos se denominan Métodos, los datos/propiedades son Atributos, y las relaciones entre objetos son Mensajes.
Conceptos Fundamentales en POO
- Atributos: Se almacenan en variables. Una variable es un elemento de datos referenciado por un identificador (puede ser de tipo entero, real, carácter, cadena, etc.).
- Método: Es una función o procedimiento asociado a un objeto, representando las operaciones que se pueden realizar sobre él.
- Mensaje (entre objetos): Son los enlaces que permiten a un objeto interactuar con otros dentro de una organización.
- Herencia: Es una relación entre clases donde una clase (SubClase) hereda características de otra clase (Clase de Mayor Jerarquía).
- Encapsulamiento: Oculta el estado interno de un objeto, permitiendo que sus datos y atributos solo se modifiquen a través de sus métodos definidos.
- Polimorfismo: Permite que objetos de diferentes clases, pero con una clase de origen común, respondan al mismo mensaje de manera distinta.
Programación Lógica
Se basa en la formulación de hechos y reglas. Ejemplos de lenguajes son Prolog y Lisp.
Programación Funcional
Se centra en estructuras de datos tipo lista. Haskell es un ejemplo destacado.
Traductores de Lenguajes
Los traductores son programas que convierten el código escrito en lenguajes de alto nivel a código de máquina.
- Intérpretes: Convierten y ejecutan un programa sentencia por sentencia, realizando una comprobación en cada paso.
- Compiladores: Traducen el programa completo (código fuente) a código de máquina o código ejecutable. Este proceso implica una fase de compilación y una fase de ejecución.
Elementos del Lenguaje
- Sintaxis: Define las reglas para escribir correctamente las instrucciones en un lenguaje de programación específico.
- Semántica: Especifica el significado de las construcciones que se pueden crear con el lenguaje.
Diseño y Estructura en POO
Diagrama de Clase
Representa las relaciones entre clases y objetos en un sistema. Es fundamental para definir y documentar la estructura del software a implementar.
Visibilidad de Atributos y Métodos
+
: Indica visibilidad pública.#
: Indica visibilidad protegida.-
: Indica visibilidad privada.
Relaciones entre Objetos
- Composición: Expresa que un objeto está formado por otros objetos.
- Agregación: Indica que un objeto agrupa o contiene otros objetos.
Ventajas de la Programación Orientada a Objetos
- Uniformidad y Comprensión: Facilita la organización y el entendimiento del código.
- Flexibilidad y Reusabilidad: Permite adaptar y reutilizar componentes de software de manera eficiente.