Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. Lenguajes de Programación
Para definir un lenguaje de programación es necesario especificar: Conjunto de símbolos y palabras clave
utilizables y las reglas gramaticales para construir sentencias (instrucciones, ordenes) sintáctica y
semánticamente correctas.
2. Desarrollo de software
Una vez construido el código fuente del programa, debemos compilarlo para que sea posible ejecutarlo a
través de un sistema operativo, que es el elemento de unión del usuario con la máquina. Todas las
aplicaciones se ejecutan en un sistema operativo que les sirve de base.
Por lo tanto, es importante considerar en qué Sistema Operativo ejecutaremos nuestro programa. Hay
lenguajes sólo para plataformas Windows (C#, VisualBasic, ASP, etc), para iOS (Objetive-C, Swift, etc),
para Linux (Shell Script, etc) o multiplataforma (Java, PHP, R, C, Python, etc).
2.1 El IDE
• Editor de Código: Permite escribir, editar y formatear el código fuente con resaltado de sintaxis y
funcionalidades como autocompletado para facilitar la escritura.
• Depurador (Debugger): Facilita la identificación y corrección de errores en el código mediante la
ejecución paso a paso, establecimiento de puntos de interrupción y visualización de variables.
• Gestión de Proyectos: Ofrece herramientas para organizar y gestionar proyectos de desarrollo de
software, incluyendo la capacidad de trabajar con múltiples archivos y estructuras de carpetas.
• Compilación/Interpretación: Algunos IDEs pueden compilar automáticamente el código a lenguaje
de máquina o interpretarlo, compilación línea a línea, según el lenguaje de programación utilizado.
• Integración con Herramientas Externas: Puede integrar herramientas de control de versiones,
gestión de bases de datos, pruebas unitarias y otras utilidades que son útiles para el desarrollo de
software.
• Ayuda y Documentación: Proporciona acceso rápido a la documentación del lenguaje, sugerencias de
código y otras ayudas contextuales para facilitar el desarrollo.
1. Edición
2. Compilación
Código máquina > CPU
Esta es la etapa pura de traducción del código fuente a código máquina o
programa objeto, si no se produce ningún error en dicho proceso. En caso Linkado
de errores, el compilador emite una serie de mensajes que ayudan al Biblioteca S.O.
programador a corregirlos, para proceder nuevamente a la compilación.
Programa Ejecutable
Un traductor es un programa que toma como entrada un programa escrito
en un lenguaje fuente y lo transforma en un programa escrito en lenguaje
máquina. El proceso de conversión se denomina traducción, que puede realizarse de dos formas diferentes:
Intérprete: Es un programa que toma como entrada un programa escrito en lenguaje fuente y lo va
traduciendo y ejecutando instrucción por instrucción (de una en una).
Compilador: Es un programa que toma como entrada un programa fuente y genera un programa equivalente
llamado código máquina o código objeto.
3. Linkado
El programa obtenido en la etapa anterior (programa objeto) debe ser montado o linkado, uniendo el
programa objeto con las funciones de librería que en él se han referenciado o enlazando módulos para
conseguir el programa ejecutable.
4. Ejecución
Esta última etapa consiste en la llamada, por parte del sistema operativo, del programa ejecutable. De esta
forma el usuario o sistema, a partir de unos datos de entrada, obtendrá los resultados correspondientes.
3. Paradigmas de programación
Estructurada. Los programas se componen de un conjunto de sentencias que cambian su estado. Son
secuencias de comandos que ordenan acciones a la computadora. De forma secuencial: una instrucción
detrás de otra y en orden.
Reactiva. El problema se modela con enunciados de lógica de primer orden. En este caso, un programa
consiste en declarar una serie de hechos (elementos conocidos, relación de objetos concretos) y reglas
(relación general entre objetos que cumplen unas propiedades).
Orientado a objetos. El comportamiento del programa es llevado a cabo por objetos, entidades que
representan elementos del problema a resolver y tienen atributos y comportamiento.
Un lenguaje de programación orientado a objetos (LOO) puede ser tanto imperativo como funcional o
estructurado. Lo que caracteriza un LOO es la forma de manejar la información que está basada en tres
conceptos:
• Clase.- Tipo de dato con unas determinadas propiedades y una determinada funcionalidad (ejemplo: clase
‘persona’).
• Objeto.- Entidad de una determinada clase con un determinado estado (valores del conjunto de sus
propiedades) capaz de interactuar con otros objetos (ejemplos: ‘Pedro’, ‘Sonia’, ...).
Algoritmo: Conjunto de instrucciones que especifican la secuencia ordenada de operaciones a realizar para
resolver un problema. En otras palabras, un algoritmo es un método o fórmula para la resolución de un
problema. Un algoritmo es independiente tanto del lenguaje de programación en que se exprese como del
ordenador en el que se ejecute.
Programa: Secuencia de operaciones especificadas en un determinado lenguaje de programación, cada una
de las cuales determina las operaciones que debe realizar el ordenador para la resolución de un problema.
Se trata pues de una implementación concreta (en un tipo de ordenador concreto y con un lenguaje de
programación concreto) de un algoritmo diseñado con anterioridad.
Enfoque Top-Down: También conocida como de arriba-abajo y consiste en establecer una serie de niveles
de mayor a menor complejidad (arriba-abajo) que den solución al problema. Consiste en efectuar una
relación entre las etapas de la estructuración de forma que una etapa jerárquica y su inmediato inferior se
relacionen mediante entradas y salidas de información. La utilización de la técnica de diseño Top-Down
tiene los siguientes objetivos básicos: Simplificación del problema y de los subprogramas de cada
descomposición, las diferentes partes del problema pueden ser programadas de modo independiente e
incluso por diferentes personas y conseguir que el programa final quede estructurado en forma de bloque
o módulos lo que hace más sencilla su lectura y mantenimiento.
8. Control de versiones.
Un control de versiones una herramienta para el desarrollo de software que facilita principalmente dos
funciones: Ayuda a que varios programadores pueden trabajar en paralelo y permite mantener varias
versiones de un mismo programa a la vez. (De ahí “control de versiones”)