¿Qué es un lenguaje de programación?
Resolución de Problemas
- La programación es una herramienta para resolver problemas de forma automática usando un ordenador.
- Todo programa surge de un problema o una necesidad concreta.
- Resolver un problema implica seguir varias fases:
Fases de desarrollo de una solución informática
-
Análisis del problema:
- Entender bien qué se quiere resolver.
- Identificar entradas (datos de partida), procesos y salidas (resultados esperados).
-
Diseño de la solución:
- Elaborar una estrategia o plan para resolver el problema.
- Usar representaciones como:
- Pseudocódigo
- Diagramas de flujo
- Algoritmos
-
Codificación:
- Traducir el diseño a un lenguaje de programación (C++, Python, Java…).
- Se escribe el programa en un archivo de texto con una sintaxis concreta.
-
Prueba y depuración:
- Ejecutar el programa con diferentes datos.
- Verificar que la salida es correcta.
- Corregir errores (bugs) de lógica o de sintaxis.
Algoritmos
- Un algoritmo es una secuencia finita de pasos que resuelven un problema. Características:
- Finito: tiene un número limitado de pasos.
- Preciso: cada paso debe ser claro y no ambiguo.
- Efectivo: cada paso debe poder llevarse a cabo.
Lenguajes de programación
- Un lenguaje de programación es un lenguaje formal que permite escribir instrucciones comprensibles para una computadora.
- Se utilizan para crear algoritmos ejecutables.
Tipos de lenguajes de programación:
-
Lenguajes de bajo nivel:
- Muy cercanos al hardware (como el ensamblador).
- Más difíciles de escribir y entender.
-
Lenguajes de alto nivel:
- Más fáciles de leer y escribir para los humanos.
- Más portables y productivos.
- Ejemplos: C++, Python, Java, JavaScript, etc.
Paradigmas de programación
- Imperativa: describe cómo se hace algo (C++, Python, Java).
- Declarativa: describe qué se quiere hacer (SQL, Prolog).
- Orientada a objetos: organiza el programa en objetos que interactúan (C++, Java).
- Funcional: basada en funciones matemáticas sin efectos secundarios (Haskell, Lisp).
Proceso de ejecución: compilación e interpretación
-
Compilación:
- Traduce todo el código fuente a código máquina antes de ejecutar.
- Produce un archivo ejecutable.
- Ejemplos: C, C++, Rust.
- Ventajas: más rápido en tiempo de ejecución.
- Inconvenientes: más lento de compilar; menos flexible en tiempo real.
-
Interpretación:
- Traduce y ejecuta línea por línea al mismo tiempo.
- No genera un ejecutable final.
- Ejemplos: Python, JavaScript.
- Ventajas: más flexible y portable.
- Inconvenientes: más lento que un programa compilado.
-
Mixtos (compilación intermedia + máquina virtual):
- Se realiza una compilación inicial, generando un código intermedio que se interpreta con un intérprete.
- Ejemplo: Java (compila a bytecode que se ejecuta en la JVM).
- Balance entre rendimiento y portabilidad.
Herramientas de programación
- Editores de texto / IDEs: VS Code, CLion, Code::Blocks.
- Compiladores:
g++,clang,javac. - Intérpretes:
python,node, etc. - Depuradores: herramientas para encontrar errores.